remarkable_rails 3.1.5 → 3.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ * Allow mock model class to be set using :as option.
2
+
1
3
  * [DEPRECATION] By default all matchers perform expectations, use with_stubs => true
2
4
  if you want otherwise.
3
5
 
@@ -403,7 +403,13 @@ module Remarkable
403
403
 
404
404
  # Creates mock methods automatically.
405
405
  #
406
- # == Options
406
+ # == Options
407
+ #
408
+ # * <tt>:as</tt> - Used to set the model . For example, if you have
409
+ # Admin::Task model, you have to tell the name of the class to be
410
+ # mocked:
411
+ #
412
+ # mock_models :admin_task, :as => "Admin::Task"
407
413
  #
408
414
  # * <tt>:class_method</tt> - When set to false, does not create the
409
415
  # class method which returns a proc.
@@ -440,6 +446,8 @@ module Remarkable
440
446
 
441
447
  models.each do |model|
442
448
  model = model.to_s
449
+ klass = options[:as] || model.classify
450
+
443
451
  if options[:class_method]
444
452
  (class << self; self; end).class_eval <<-METHOD
445
453
  def #{model}_proc; proc { mock_#{model} }; end
@@ -452,11 +460,12 @@ module Remarkable
452
460
 
453
461
  self.class_eval <<-METHOD
454
462
  def mock_#{model}(stubs={})
455
- @#{model} ||= mock_model(#{model.classify}, stubs)
463
+ @#{model} ||= mock_model(#{klass}, stubs)
456
464
  end
457
465
  METHOD
458
466
  end
459
- end
467
+ end
468
+ alias :mock_model :mock_models
460
469
 
461
470
  end
462
471
 
@@ -24,13 +24,13 @@ describe 'MacroStubs' do
24
24
  self.class.respond_to?(:mock_projects).should be_true
25
25
  end
26
26
 
27
- it 'should create a class singular mock method' do
27
+ it 'should create a class singular proc method' do
28
28
  self.class.respond_to?(:project_proc).should be_false
29
29
  self.class.mock_models :project
30
30
  self.class.respond_to?(:project_proc).should be_true
31
31
  end
32
32
 
33
- it 'should create a class plural mock method' do
33
+ it 'should create a class plural proc method' do
34
34
  self.class.respond_to?(:projects_proc).should be_false
35
35
  self.class.mock_models :project
36
36
  self.class.respond_to?(:projects_proc).should be_true
@@ -49,8 +49,15 @@ describe 'MacroStubs' do
49
49
  self.class.respond_to?(:project_proc).should be_false
50
50
  self.respond_to?(:mock_project).should be_true
51
51
  end
52
+
53
+ it 'should allow the mock class to be set' do
54
+ self.class.mock_model :project, :as => "::Admin::Project"
55
+ lambda{
56
+ mock_project
57
+ }.should raise_error(NameError, "uninitialized constant Admin")
58
+ end
52
59
 
53
- it 'should create procs which evals to a mock dynamically' do
60
+ it 'should create procs which evals to a mock' do
54
61
  proc = self.class.task_proc
55
62
  proc.should be_kind_of(Proc)
56
63
 
@@ -59,7 +66,7 @@ describe 'MacroStubs' do
59
66
  @task.should_not be_nil
60
67
  end
61
68
 
62
- it 'should create procs which evals to an array of mocks dynamically' do
69
+ it 'should create procs which evals to an array of mocks' do
63
70
  proc = self.class.tasks_proc
64
71
  proc.should be_kind_of(Proc)
65
72
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remarkable_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.5
4
+ version: 3.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Brando
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-06-04 00:00:00 +02:00
13
+ date: 2009-06-06 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -41,7 +41,7 @@ dependencies:
41
41
  requirements:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
- version: 3.1.5
44
+ version: 3.1.6
45
45
  version:
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: remarkable_activerecord
@@ -51,7 +51,7 @@ dependencies:
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 3.1.5
54
+ version: 3.1.6
55
55
  version:
56
56
  description: "Remarkable Rails: collection of matchers and macros with I18n for Rails"
57
57
  email: