Sha256: 399640ce627e870bcc30ef693bb8991043d493572a0c160bbf757e111cad5816

Contents?: true

Size: 1.16 KB

Versions: 6

Compression:

Stored size: 1.16 KB

Contents

$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])

require "rspec"
require "mocha_standalone"
require "her"

RSpec.configure do |c|
  c.mock_with :mocha

  c.before :each do
    @globals = []
  end

  c.after :each do
    @globals.each do |global|
      Object.instance_eval { remove_const global } if Object.const_defined?(global)
    end
  end
end

class Hash
  def to_json; MultiJson.dump(self); end
end

class Array
  def to_json; MultiJson.dump(self); end
end

def spawn_model(klass, &block)
  if klass =~ /::/
    base, submodel = klass.split(/::/).map{ |s| s.to_sym }
    Object.const_set(base, Module.new) unless Object.const_defined?(base)
    Object.const_get(base).module_eval do
      remove_const submodel if constants.include?(submodel)
      submodel = const_set(submodel, Class.new)
      submodel.send(:include, Her::Model)
      submodel.class_eval(&block) if block_given?
    end
    @globals << base
  else
    Object.instance_eval { remove_const klass } if Object.const_defined?(klass)
    Object.const_set(klass, Class.new).send(:include, Her::Model)
    Object.const_get(klass).class_eval(&block) if block_given?
    @globals << klass.to_sym
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
her-0.3.7 spec/spec_helper.rb
her-0.3.6 spec/spec_helper.rb
her-0.3.5 spec/spec_helper.rb
her-0.3.4 spec/spec_helper.rb
her-0.3.3 spec/spec_helper.rb
her-0.3.2 spec/spec_helper.rb