Sha256: 2f3bd8d821e8f1828af43256e4ab6265f752e8404feac0442b2472a42d92c57d
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
# This class can be used as a stand-in for an ActiveRecord class, while # using the ActionPack input tag helpers and standard ActionPack::Controller # idiom. # module UserQuery class Parameters @active_record_errors = false begin # Kernel.require 'active_record' @@active_record_errors = ActiveRecord::Errors rescue Object => err @@active_record_errors = false end unless @@active_record_errors # Emulate ActiverRecord::Base errors support class Errors def initialize(obj) @obj = obj @name_errors = { } @errors = nil end def add(name, err) (@name_errors[name] ||= []).push(err) (@errors ||= []).push([name, err]) end def [](name) (@name_errors[name] || []).join('\n') end def empty? (! @errors) || @errors.empty? end end @@active_record_errors = Errors end def initialize(*opts) @hash = opts.empty? ? {} : opts[0] @hash ||= { } end def _value_hash @hash end # Emulate ActiverRecord::Base errors support def errors # See ActiveRecord::Validations @errors ||= @@active_record_errors.new(self) end def self.human_attribute_name(x) x # PUNT end def [](key) @hash[key] end # OVERIDE Object def id @hash[:id] end def id=(x) @hash[:id] = x end def respond_to?(meth) true end def method_missing(method, *args) m = method.to_s.clone if m.sub!(/=$/, '') && args.size == 1 $stderr.puts "set #{method.inspect} #{args[0].inspect}" if @verbose result = @hash[m.intern] = args[0] elsif m.sub!(/_before_type_cast$/, '') && args.size == 0 $stderr.puts "get #{method.inspect}" if @verbose result = @hash[m.intern] elsif args.size == 0 $stderr.puts "get #{method.inspect}" if @verbose result = @hash[method] else raise NotImplementedError, method end result end end end # module
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
user_query-0.1.0 | lib/user_query/parameters.rb |