Sha256: e9d236f2cced8f5d8a8145bec46f24be68e3a1683e2b9e4d7d9fe66b7d411a48
Contents?: true
Size: 845 Bytes
Versions: 3
Compression:
Stored size: 845 Bytes
Contents
# frozen_string_literal: true module Beaconable class BaseBeacon attr_reader :object, :object_was def initialize(object, object_was) @object = object @object_was = object_was end def field_changed(field) @field = field @result = field_changed? field self end def from(*values) return self unless @result @result = values.include? object_was.send(@field) self end def to(*values) @result && values.include?(object.send(@field)) end private def field_changed?(field) object.send(field) != object_was.send(field) end def any_field_changed?(*fields) fields.each do |field| return true if field_changed?(field) end false end def new_entry? object_was.created_at.nil? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
beaconable-0.3.1 | lib/beaconable/base_beacon.rb |
beaconable-0.2.3 | lib/beaconable/base_beacon.rb |
beaconable-0.2.2 | lib/beaconable/base_beacon.rb |