class Mockery
Public Class Methods
ar_class()
click to toggle source
# File lib/mockumentary/mockery.rb, line 2 def self.ar_class @ar_class ||= infer_ar_class end
ar_class=(klass)
click to toggle source
# File lib/mockumentary/mockery.rb, line 6 def self.ar_class=(klass) @ar_class = klass introspect if klass klass end
build(klass)
click to toggle source
Calls superclass method
Mockumentary::Model::build
# File lib/mockumentary/mockery.rb, line 20 def self.build(klass) super class_eval "#{container_name}::#{klass}.ar_class = ::#{klass}" end
container_name()
click to toggle source
# File lib/mockumentary/mockery.rb, line 12 def self.container_name "Mockery" end
data_dump()
click to toggle source
# File lib/mockumentary/mockery.rb, line 59 def self.data_dump classes.inject({}) do |result, klass| init = klass.init_defaults.dup init.merge!(klass.overrides[:init]) if klass.overrides && klass.overrides[:init] save = klass.save_defaults.dup save.merge!(klass.overrides[:save]) if klass.overrides && klass.overrides[:save] mock = klass.mock_defaults.dup mock.merge!(klass.overrides[:mock]) if klass.overrides && klass.overrides[:mock] relationships = klass.relationships.inject({}) do |result, array| key = array.first value = array.last # a lambda relationship_type = value.call.type.to_s.gsub(/^Mockery::/, '') result[key] = relationship_type result end result[klass.ar_class.to_s] = { :init => init, :save => save, :mock => mock, :relationships => relationships } result end end
dump(dir = "
click to toggle source
# File lib/mockumentary/mockery.rb, line 53 def self.dump dir = "#{Rails.root}/config" File.open("#{dir}/#{DUMP_NAME}", 'w') do |f| f.write(YAML.dump(data_dump)) end end
infer_ar_class()
click to toggle source
# File lib/mockumentary/mockery.rb, line 16 def self.infer_ar_class self.to_s.gsub(/^#{container_name}/, '').constantize end
introspect()
click to toggle source
# File lib/mockumentary/mockery.rb, line 32 def self.introspect reset_defaults # introspect columns ar_class.columns.each do |c| name = c.name.to_sym if save_fields.include?(name) save_defaults[name] = c.type if name != :id else mock_defaults[name] = c.type end end # introspect relationships ar_class.reflections.each do |name, reflection| attr_accessor name class_name = reflection.options[:class_name] || name.to_s.classify relationships[name] = lambda { Mockumentary::Collection.new(build(class_name)) } if reflection.collection? end end
reset_defaults()
click to toggle source
# File lib/mockumentary/mockery.rb, line 25 def self.reset_defaults @relationships = nil @save_defaults = nil @mock_defaults = nil @uid = nil end