Class: Ixtlan::Babel::ParamsFilter
- Inherits:
-
Object
- Object
- Ixtlan::Babel::ParamsFilter
- Defined in:
- lib/ixtlan/babel/params_filter.rb
Instance Method Summary collapse
- #filter_it(data) ⇒ Object
-
#initialize(model_class) ⇒ ParamsFilter
constructor
A new instance of ParamsFilter.
- #new(data) ⇒ Object
- #use(context_or_options) ⇒ Object
Constructor Details
#initialize(model_class) ⇒ ParamsFilter
Returns a new instance of ParamsFilter.
28 29 30 |
# File 'lib/ixtlan/babel/params_filter.rb', line 28 def initialize( model_class ) @model_class = model_class end |
Instance Method Details
#filter_it(data) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/ixtlan/babel/params_filter.rb', line 63 def filter_it( data ) filter. = self.class.config.( @context_or_options ) data = data.dup data = data[ filter.[ :root ] ] if filter.[ :root ] keeps = {} ( filter.[ :keep ] || [] ).each do |k| keep = data[ k.to_s ] || data[ k.to_sym ] keeps[ k.to_s ] = data.delete( k.to_s ) || data.delete( k.to_sym ) unless keep.is_a? Hash end filtered_data = filter.filter( data ) ( filter.[ :keep ] || [] ).each do |k| keeps[ k.to_s ] = filtered_data.delete( k.to_s ) || filtered_data.delete( k.to_sym ) unless keeps.member?( k.to_s ) end [ filtered_data, keeps ] end |
#new(data) ⇒ Object
79 80 81 |
# File 'lib/ixtlan/babel/params_filter.rb', line 79 def new( data ) @model_class.new( filter( data ) ) end |
#use(context_or_options) ⇒ Object
58 59 60 61 |
# File 'lib/ixtlan/babel/params_filter.rb', line 58 def use() @context_or_options = self end |