class PrintReleaf::Resource

Attributes

copy[R]
owner[RW]

Public Class Methods

action(sym) click to toggle source
# File lib/printreleaf/resource.rb, line 21
def action(sym)
  actions.tap { |list|
    list.add(sym)
  }.each { |action|
    include Actions.const_get(action.to_s.capitalize)
  }
end
actions() click to toggle source
# File lib/printreleaf/resource.rb, line 17
def actions
  @actions ||= Set.new
end
new(*args) click to toggle source
Calls superclass method
# File lib/printreleaf/resource.rb, line 36
def initialize(*args)
  super
  @copy = self.dup.freeze
end
path(value=nil) click to toggle source
# File lib/printreleaf/resource.rb, line 8
def path(value=nil)
  @path = value if value
  @path or raise "Path not declared."
end
uri() click to toggle source
# File lib/printreleaf/resource.rb, line 13
def uri
  path
end

Public Instance Methods

changes() click to toggle source
# File lib/printreleaf/resource.rb, line 59
def changes
  keys.map(&:to_sym).inject({}) do |diff, key|
    unless self[key] == copy[key]
      diff[key] = self[key]
    end
    diff
  end
end
compact_inspect() click to toggle source
# File lib/printreleaf/resource.rb, line 84
def compact_inspect
  "".tap do |str|
    str << "#<#{self.class} "
    str << "id='#{self.id}'" if respond_to?(:id)
    str << ">"
  end
end
delete() click to toggle source
# File lib/printreleaf/resource.rb, line 50
def delete
  raise DoesNotImplement, "Resource does not implement `delete`"
end
deleted?() click to toggle source
# File lib/printreleaf/resource.rb, line 68
def deleted?
  !!deleted
end
find(*args) click to toggle source
# File lib/printreleaf/resource.rb, line 46
def find(*args)
  raise DoesNotImplement, "Resource does not implement `find`"
end
inspect() click to toggle source
# File lib/printreleaf/resource.rb, line 76
def inspect
  "".tap do |str|
    str << "#<#{self.class} "
    str << JSON.pretty_generate(self)
    str << ">"
  end
end
reset(hash) click to toggle source
# File lib/printreleaf/resource.rb, line 54
def reset(hash)
  delete_if { true }
  update(hash)
end
to_s() click to toggle source
# File lib/printreleaf/resource.rb, line 72
def to_s
  "#<#{self.class.name}>"
end
uri() click to toggle source
# File lib/printreleaf/resource.rb, line 41
def uri
  scope = owner ? owner.uri : nil
  Util.join_uri(scope, self.class.uri, self.id)
end