Printfection/printfection-ruby

View on GitHub
lib/printfection/resource.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Printfection
  class Resource < Hashie::Trash
    include Hashie::Extensions::IndifferentAccess
    include Hashie::Extensions::Coercion

    property :object

    attr_accessor :relation

    def initialize(*args)
      super
      @_old = self.dup
    end

    def uri
      base = self.relation.nil? ? self.class.uri : self.relation.uri
      Util.join_uri(base, self.id)
    end

    def changes
      keys.inject({}) do |diff, key|
        unless self[key] == @_old[key]
          diff[key] = self[key]
        end
        diff
      end
    end

  end
end