Sha256: 51cb8989dca51e1115e6f9ab4e4b31758c56f3a25b6ae16c0eb9664bd467ce92
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
module StaticRecord # Class that immutable model instances can inherit from class Base include StaticRecord::Querying include StaticRecord::SqliteStoringConcern RESERVED_ATTRIBUTES = [ :@@_columns, :@@_primary_key, :@@_path_pattern, :@@_store ].freeze def self.attribute(name, value) err = RESERVED_ATTRIBUTES.include?("@@#{name}".to_sym) raise StaticRecord::ReservedAttributeName, "#{name} is a reserved name" if err class_variable_set("@@#{name}", value) end def self.primary_key(name) err = RESERVED_ATTRIBUTES.include?("@@#{name}".to_sym) raise StaticRecord::ReservedAttributeName, "#{name} is a reserved name" if err class_variable_set('@@_primary_key', name) end def self.pkey class_variable_defined?(:@@_primary_key) ? class_variable_get('@@_primary_key') : nil end def self.table(store) class_variable_set('@@_store', store.to_s) end def self.store class_variable_get('@@_store') end def self.path(path) class_variable_set('@@_path_pattern', path) end def self.path_pattern class_variable_get('@@_path_pattern') end def attributes attrs = {} klass = self.class klass.class_variables.each do |var| next if RESERVED_ATTRIBUTES.include?(var) attrs[var.to_s.sub(/@@/, '').to_sym] = klass.class_variable_get(var) end attrs end def self.columns(cols) class_variable_set('@@_columns', cols) create_store end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
static-record-1.0.0.pre.1 | lib/static_record/models/base.rb |
static-record-1.0.0.pre | app/models/static_record/base.rb |