class Mockumentary::Model
Constants
- DUMP_NAME
Public Class Methods
build(klass)
click to toggle source
# File lib/mockumentary/model.rb, line 32 def self.build(klass) class_eval <<-RUBY class #{container_name}::#{klass} < #{container_name}; end classes << #{container_name}::#{klass} RUBY end
classes()
click to toggle source
# File lib/mockumentary/model.rb, line 28 def self.classes @classes ||= [] end
constantize(klass)
click to toggle source
# File lib/mockumentary/model.rb, line 43 def self.constantize(klass) classes.detect{|c| c.to_s == "#{container_name}::#{klass}"} end
evaluate(opts)
click to toggle source
# File lib/mockumentary/model.rb, line 73 def self.evaluate(opts) opts.inject({}) do |result, arr| result[arr.first] = fake_data(arr.last) result end end
fake_data(key)
click to toggle source
# File lib/mockumentary/model.rb, line 57 def self.fake_data(key) data = Mockumentary::Data.generate(key) unless data data = if key == :uid uid elsif key.respond_to?(:call) key.respond_to?(:call) else key end end data end
generate(klass)
click to toggle source
# File lib/mockumentary/model.rb, line 5 def self.generate(klass) mock_class = constantize klass build klass unless mock_class mock_class ||= constantize klass end
init_defaults()
click to toggle source
# File lib/mockumentary/model.rb, line 11 def self.init_defaults @init_defaults ||= { :new_record => true } end
init_opts()
click to toggle source
# File lib/mockumentary/model.rb, line 87 def self.init_opts opts = init_defaults.dup opts.merge!(overrides[:init]) if overrides && overrides[:init] evaluate(opts) end
mock(opts={})
click to toggle source
# File lib/mockumentary/model.rb, line 106 def self.mock(opts={}) new(mock_opts.merge(opts)) end
mock!(opts={})
click to toggle source
# File lib/mockumentary/model.rb, line 110 def self.mock!(opts={}) instance = mock(opts) instance.save(opts) end
mock_defaults()
click to toggle source
# File lib/mockumentary/model.rb, line 17 def self.mock_defaults @mock_defaults ||= {} end
mock_opts()
click to toggle source
# File lib/mockumentary/model.rb, line 80 def self.mock_opts opts = init_defaults.dup opts.merge!(mock_defaults) opts.merge!(overrides[:mock]) if overrides && overrides[:mock] evaluate(opts) end
new(opts={})
click to toggle source
Calls superclass method
# File lib/mockumentary/model.rb, line 99 def initialize(opts={}) super(self.class.init_opts.merge(opts)) self.class.relationships.each do |key, value| send("#{key}=", value.call) end end
overrides()
click to toggle source
# File lib/mockumentary/model.rb, line 53 def self.overrides {} end
relationships()
click to toggle source
# File lib/mockumentary/model.rb, line 39 def self.relationships @relationships ||= {} end
save_defaults()
click to toggle source
# File lib/mockumentary/model.rb, line 21 def self.save_defaults @save_defaults ||= { :new_record => false, :id => :uid } end
save_fields()
click to toggle source
# File lib/mockumentary/model.rb, line 122 def self.save_fields @save_fields ||= [:id, :created_at, :updated_at] end
save_opts()
click to toggle source
# File lib/mockumentary/model.rb, line 93 def self.save_opts opts = save_defaults.dup opts.merge!(overrides[:save]) if overrides && overrides[:save] evaluate(opts) end
uid()
click to toggle source
# File lib/mockumentary/model.rb, line 47 def self.uid @uid ||= 0 @uid += 1 @uid end
Public Instance Methods
save(opts={})
click to toggle source
# File lib/mockumentary/model.rb, line 115 def save(opts={}) self.class.save_opts.merge(opts).each do |key, value| self[key] = value end self end