Sha256: 8300549feb824f2733fe695b46093e68d723dc1a74480f0bcaabe14a462ab152
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true # class FooBar < GenericModel # # values [1, 'LinkedIn'], # [2, 'Facebook'], # [3, 'Twitter'], # [4, 'Google'], # [5, 'Email'], # [6, 'Mobile'] # # def ico # %{<img src="/images/type/#{code}.png" style="width:16px; height:16px; vertical-align:middle; " />} # end # # end class GenericModel @@values = {} class << self def values(vals) @@values[self.to_s] = [] vals.map { |el| add_value(el) } end def add_value(val) o = new(val) for key in val.keys eval %[def o.#{key}; @_vals[:#{key}]; end] end @@values[self.to_s].push(o) end def find(id) for el in all return el if el.id == id end nil end def all @@values[self.to_s] end def where(opts) @@values[self.to_s].select{ |el| el[opts.keys[0]] == opts.values[0] } end end ### def initialize(vals) @_vals = vals end def [](key) @_vals[key] end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lux-fw-0.1.35 | ./lib/common/generic_model.rb |
lux-fw-0.1.17 | ./lib/common/generic_model.rb |