Sha256: b7cfb4e0062a51e9c5d7355d76c4cd284c5692dc3998f5702edd6f5f86daeeea

Contents?: true

Size: 606 Bytes

Versions: 3

Compression:

Stored size: 606 Bytes

Contents

module GreyscaleRecord
  class Relation

    delegate :present?, :empty?, :==, to: :all

    def initialize( base, params )
      @base   = base
      @params = params.dup.merge!( _table: @base.name )
    end

    def where( params )
      self.class.new @base, @params.merge( params )
    end

    def and( params )
      self.class.new @base, @params.merge( params )
    end

    def all
      @all ||= @base.data_store.find( @params.dup ).map do | result |
        @base.new result
      end
    end

    def method_missing( method, *args, &block )
      all.send method, *args, &block
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
greyscale_record-1.0.2 lib/greyscale_record/relation.rb
greyscale_record-1.0.1 lib/greyscale_record/relation.rb
greyscale_record-1.0.0 lib/greyscale_record/relation.rb