Sha256: 1a500c4481285bc6574b012efd770dfee35df48eb361aee4186679c61377c562
Contents?: true
Size: 851 Bytes
Versions: 1
Compression:
Stored size: 851 Bytes
Contents
# Converts {'model[attribute]' => value} into {'model' => {'attribute' => value}} module Rad module Processors class ScopedParams < Processor def call if workspace.params? to_delete = [] to_add = {} workspace.params.each do |name, value| name.to_s.scan /(.+)\[(.+)\]/ do |scope_name, name_in_scope| logger.warn "Owerriding :#{scope} param!" if workspace.params.include? scope_name scope = to_add[scope_name.to_sym] ||= {} scope[name_in_scope] = value to_delete << name end end workspace.params.merge! to_add to_delete.each{|n| workspace.params.delete n} end next_processor.call end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rad_core-0.0.13 | lib/rad/html/processors/scoped_params.rb |