Sha256: e821e78b7ef27dff6a61285a9459285d7e1b2c8da7c6eeb7d50bf6634875b149
Contents?: true
Size: 1.9 KB
Versions: 17
Compression:
Stored size: 1.9 KB
Contents
class Marty::Base < ActiveRecord::Base self.table_name_prefix = 'marty_' self.abstract_class = true class << self attr_accessor :struct_attrs def get_struct_attrs self.struct_attrs ||= attribute_names - Mcfly::COLUMNS.to_a - (const_defined?('MCFLY_UNIQUENESS') && const_get('MCFLY_UNIQUENESS') || []).map(&:to_s) end def mcfly_pt(pt) tb = table_name where("#{tb}.obsoleted_dt >= ? AND #{tb}.created_dt < ?", pt, pt) end def get_final_attrs final_attrs = get_struct_attrs return final_attrs if final_attrs.present? # otherwise raise with error line raise "Marty::Base: no attributes for #{self}" # for more detailed debugging use this code instead # st = caller.detect{|s|s.starts_with?('DELOREAN__')} # re = /DELOREAN__([A-Z][a-zA-Z0-9]*)[:]([0-9]+)[:]in `([a-z_0-9]+)__D'/ # m = re.match(st) # if !m # st = "No attributes #{st} #{self}" # puts st unless File.readlines(Rails.root.join('tmp','dlchk')). # map(&:chop).detect{|l|l==st} # else # loc = "#{m[1]}::#{self}::#{m[2]}" # str = "*** No attributes %-40s %-20s %s" % [loc, m[3], attr] # puts str unless File.readlines(Rails.root.join('tmp','dlchk')). # map(&:chop).detect{|l|l==str} # end end def make_hash(inst) fa = get_final_attrs inst.attributes.slice(*fa) end def make_openstruct(inst) return nil unless inst fa = get_final_attrs os = OpenStruct.new(inst.attributes.slice(*fa)) if self == Marty::DataGrid def os.lookup_grid_distinct_entry(pt, params) dgh = to_h.stringify_keys.slice( 'id', 'group_id', 'created_dt', 'metadata', 'data_type') Marty::DataGrid.lookup_grid_distinct_entry_h(pt, params, dgh) end end os end end end
Version data entries
17 entries across 17 versions & 1 rubygems