Sha256: 2c492167a2ec86935464aff919ca368aebe483e42fd50c488c32b5c202d0d710
Contents?: true
Size: 1.37 KB
Versions: 70
Compression:
Stored size: 1.37 KB
Contents
module HammerCLIForeman class AbstractParamsFilter def for_action(action) filter(action.params) end def filter(params) [] end end class ParamsFlattener < AbstractParamsFilter def filter(params) flatten_params(params) end private def flatten_params(params) result = params params.each do |p| result += flatten_params(p.params) end result end end class IdParamsFilter < AbstractParamsFilter def initialize(options={}) @required = !(options[:only_required] == false) end def filter(params) params = ParamsFlattener.new.filter(params) params = params.select{ |p| p.name.end_with?("_id") } params = params.select{ |p| p.required? } if @required params end end class IdArrayParamsFilter < AbstractParamsFilter def initialize(options={}) @required = !(options[:only_required] == false) end def filter(params) params = ParamsFlattener.new.filter(params) params = params.select{ |p| p.name.end_with?("_ids") } params = params.select{ |p| p.required? } if @required params end end class ParamsNameFilter < AbstractParamsFilter def initialize(name) @name = name end def filter(params) ParamsFlattener.new.filter(params).select{ |p| p.name == @name } end end end
Version data entries
70 entries across 70 versions & 1 rubygems