lib/veritas/tuple.rb in veritas-0.0.6 vs lib/veritas/tuple.rb in veritas-0.0.7

- old
+ new

@@ -2,13 +2,15 @@ module Veritas # A set of objects representing a unique fact in a relation class Tuple - extend Comparator + extend Aliasable, Comparator include Immutable + inheritable_alias(:[] => :call) + compare :data # The tuple header # # @return [Header] @@ -39,19 +41,19 @@ end # Lookup a value in the tuple given an attribute # # @example - # value = tuple[attribute] + # value = tuple.call(attribute) # # @param [Attribute] attribute # # @return [Object] # # @api public - def [](attribute) - data.fetch(header[attribute]) + def call(attribute) + data.fetch(header.call(attribute)) end # Return a tuple with only the specified attributes # # @example @@ -109,11 +111,11 @@ # @return [Function] # # @api private def predicate header.reduce(Function::Proposition::Tautology.instance) do |predicate, attribute| - predicate.and(attribute.eq(self[attribute])) + predicate.and(attribute.eq(attribute.call(self))) end end # Convert the Tuple into an Array # @@ -182,9 +184,9 @@ # @api private def self.coerce(header, object) object.kind_of?(Tuple) ? object : new(header, object) end - memoize :hash, :predicate, :to_ary + memoize :predicate, :to_ary end # class Tuple end # module Veritas