module Flextures::ARGS
parse arguments functions.
Public Class Methods
exist()
click to toggle source
check exist filename block
# File lib/flextures/flextures.rb, line 129 def self.exist return ->(name) { File.exist?(File.join(Flextures::Configuration.load_directory, "#{name}.csv")) or File.exist?(File.join(Flextures::Configuration.load_directory, "#{name}.yml")) } end
parse(env={}, option={})
click to toggle source
parse rake ENV parameters
# File lib/flextures/flextures.rb, line 84 def self.parse(env={}, option={}) table_names = [] if v = (env["T"] or env["TABLE"]) table_names = v.split(',').map{ |name| { table: name, file: name } } end if v = (env["M"] or env["MODEL"]) table_names = v.split(',').map do |name| name = name.constantize.table_name { table: name, file: name } end end table_names = Flextures::deletable_tables.map{ |name| { table: name, file: name } } if table_names.empty? # parse env["FIXTURES"] parameter fixtures_args_parser = ->(s){ names = s.split(',') if env["TABLE"] or env["T"] or env["MODEL"] or env["M"] [ table_names.first.merge(file: names.first) ] else names.map{ |name| { table: name, file: name } } end } # parse filename and define parameters. table_names = fixtures_args_parser.call(env["FIXTURES"]) if env["FIXTURES"] table_names = fixtures_args_parser.call(env["FILE"]) if env["FILE"] table_names = fixtures_args_parser.call(env["F"]) if env["F"] table_names = table_names.map{ |option| option.merge(dir: env["DIR"]) } if env["DIR"] table_names = table_names.map{ |option| option.merge(dir: env["D"]) } if env["D"] table_names = table_names.map{ |option| option.merge(minus: env["MINUS"].to_s.split(",")) } if env["MINUS"] table_names = table_names.map{ |option| option.merge(plus: env["PLUS"].to_s.split(",")) } if env["PLUS"] table_names = table_names.map{ |option| option.merge(silent: true) } if env["OPTION"].to_s.split(",").include?("silent") table_names = table_names.map{ |option| option.merge(unfilter: true) } if env["OPTION"].to_s.split(",").include?("unfilter") table_names = table_names.map{ |option| option.merge(strict: true) } if env["OPTION"].to_s.split(",").include?("strict") table_names = table_names.map{ |option| option.merge(stair: true) } if env["OPTION"].to_s.split(",").include?("stair") # if mode is 'read mode' and file is not exist, value is not return. table_names.select!(&exist) if option[:mode] && option[:mode] == 'read' table_names end