Sha256: caca1423d1a0699e326607a3a8201c88f7205646f077c644bb4b9640a2a652ff
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
# frozen_string_literal: true module LazyRecord # This module gives the Base class its functionality, and can be included # in any class as an alternative to inheriting from LazyRecord::Base module BaseModule def self.included(base) base.extend ClassMethods base.extend Scopes base.extend Attributes base.extend Associations base.extend Callbacks base.extend Validations base.extend Methods base.extend DynamicModules end attr_writer :id def initialize(opts = {}) opts.each do |k, v| send("#{k}=", v) if respond_to?("#{k}=") end yield self if block_given? end def instance_attrs_to_s [] end def instance_attr_accessors [] end def collection_counts_to_s [] end def inspect "#<#{self.class} id: #{id ? id : 'nil'}"\ "#{instance_attrs_to_s.unshift('').join(', ')}"\ "#{collection_counts_to_s.unshift('').join(', ')}>" end def id @id.freeze end def stringify_value(value) if value.is_a?(String) "\"#{value}\"" elsif value.nil? 'nil' else value end end private :id=, :stringify_value, :instance_attrs_to_s, :instance_attr_accessors, :collection_counts_to_s # Class methods provided to all LazyRecord classes module ClassMethods attr_reader :all def count @all.count end def first @all.first end def last @all.last end def where(condition = nil, &block) @all.where(condition, &block) end def destroy_all @all.send(:clear) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lazy_record-0.2.2 | lib/lazy_record/base_module.rb |