module Loquor::ResourceMock

Public Class Methods

extended(x) click to toggle source
# File lib/loquor/resource_mock.rb, line 4
def self.extended(x)
  x.class_eval do
    def method_missing(name, *args)
      if name[-1] == "="
        if self.class.attributes.keys.map{ |k| :"#{k}=" }.include?(name)
          attr = name.to_s[0..-2].to_sym
          @data[attr] = args[0]
        else
          raise NameError.new("undefined local variable or method '#{name}' for #{self.class.name}")
        end
      else
        super(name, *args)
      end
    end
  end
end

Public Instance Methods

attributes() click to toggle source
# File lib/loquor/resource_mock.rb, line 21
def attributes
  @attributes
end
attributes=(attrs) click to toggle source
# File lib/loquor/resource_mock.rb, line 25
def attributes=(attrs)
  @attributes = attrs
end
create(*attrs) click to toggle source
# File lib/loquor/resource_mock.rb, line 49
def create(*attrs)
  self.new(*attrs)
end
custom_sample(attrs = {}) click to toggle source
# File lib/loquor/resource_mock.rb, line 37
def custom_sample(attrs = {})
  self.new(attrs)
end
find(id) click to toggle source
# File lib/loquor/resource_mock.rb, line 41
def find(id)
  self.new(attributes.merge(id: id))
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/loquor/resource_mock.rb, line 6
def method_missing(name, *args)
  if name[-1] == "="
    if self.class.attributes.keys.map{ |k| :"#{k}=" }.include?(name)
      attr = name.to_s[0..-2].to_sym
      @data[attr] = args[0]
    else
      raise NameError.new("undefined local variable or method '#{name}' for #{self.class.name}")
    end
  else
    super(name, *args)
  end
end
sample(overrides = {}) click to toggle source
# File lib/loquor/resource_mock.rb, line 29
def sample(overrides = {})
  arbitary_attributes = (overrides.keys - attributes.keys)
  unless arbitary_attributes.empty?
    raise NameError.new("undefined local variable or method '#{arbitary_attributes.first}' for #{self.name}")
  end
  self.new(attributes.merge(overrides))
end
update(*attrs) click to toggle source
# File lib/loquor/resource_mock.rb, line 53
def update(*attrs)
  true
end
where(*args) click to toggle source
# File lib/loquor/resource_mock.rb, line 45
def where(*args)
  [ find(1), find(2) ]
end