Sha256: 5cb167c8d6af2c52865881f239e6b217fb397a85014e9cd843ebc6a0eb3eb6bc

Contents?: true

Size: 471 Bytes

Versions: 8

Compression:

Stored size: 471 Bytes

Contents

Rad::Controller::Abstract::ClassMethods.class_eval do
  def prepare_model aclass, opt = {}
    opt = opt.symbolize_keys
    id = opt.delete(:id) || :id    
    variable = opt.delete(:variable) || aclass.alias.underscore
    
    finder = opt.delete(:finder) || :find!
    
    method = "prepare_#{variable}"
    define_method method do
      model = aclass.send finder, params[id]
      instance_variable_set "@#{variable}", model
    end
    before method, opt
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
rad_kit-0.0.8 lib/kit/misc/prepare_model.rb
rad_kit-0.0.7 lib/kit/misc/prepare_model.rb
rad_ext-0.0.6 lib/rad_ext/extensions/prepare_model.rb
rad_ext-0.0.5 lib/rad_ext/extensions/prepare_model.rb
rad_ext-0.0.4 lib/rad_ext/extensions/prepare_model.rb
rad_ext-0.0.3 lib/rad_ext/extensions/prepare_model.rb
rad_ext-0.0.2 lib/rad_ext/extensions/prepare_model.rb
rad_ext-0.0.1 lib/rad_ext/extensions/prepare_model.rb