active_mocker 2.1.3 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +5 -0
  4. data/lib/active_mocker.rb +7 -6
  5. data/lib/active_mocker/config.rb +6 -8
  6. data/lib/active_mocker/deprecated_components/mock_abilities.rb +6 -10
  7. data/lib/active_mocker/deprecated_components/rspec.rb +2 -1
  8. data/lib/active_mocker/display_errors.rb +3 -2
  9. data/lib/active_mocker/error_object.rb +13 -13
  10. data/lib/active_mocker/file_path_to_ruby_class.rb +2 -3
  11. data/lib/active_mocker/file_writer.rb +125 -0
  12. data/lib/active_mocker/generate.rb +56 -71
  13. data/lib/active_mocker/hash_new_style.rb +2 -1
  14. data/lib/active_mocker/loaded_mocks.rb +9 -11
  15. data/lib/active_mocker/mock.rb +28 -26
  16. data/lib/active_mocker/mock/alias_attribute.rb +19 -0
  17. data/lib/active_mocker/mock/association.rb +2 -1
  18. data/lib/active_mocker/mock/base.rb +22 -20
  19. data/lib/active_mocker/mock/belongs_to.rb +1 -1
  20. data/lib/active_mocker/mock/collection.rb +6 -6
  21. data/lib/active_mocker/mock/do_nothing_active_record_methods.rb +4 -7
  22. data/lib/active_mocker/mock/exceptions.rb +1 -4
  23. data/lib/active_mocker/mock/has_and_belongs_to_many.rb +2 -1
  24. data/lib/active_mocker/mock/has_many.rb +6 -7
  25. data/lib/active_mocker/mock/has_one.rb +2 -2
  26. data/lib/active_mocker/mock/hash_process.rb +2 -2
  27. data/lib/active_mocker/mock/mock_relation.rb +1 -0
  28. data/lib/active_mocker/mock/object_inspect.rb +2 -2
  29. data/lib/active_mocker/mock/queries.rb +12 -16
  30. data/lib/active_mocker/mock/records.rb +3 -3
  31. data/lib/active_mocker/mock/relation.rb +5 -5
  32. data/lib/active_mocker/mock/single_relation.rb +2 -4
  33. data/lib/active_mocker/mock/template_methods.rb +3 -5
  34. data/lib/active_mocker/mock_creator.rb +78 -22
  35. data/lib/active_mocker/mock_template.erb +1 -0
  36. data/lib/active_mocker/mock_template/_recreate_class_method_calls.erb +12 -0
  37. data/lib/active_mocker/null_progress.rb +2 -2
  38. data/lib/active_mocker/parent_class.rb +4 -2
  39. data/lib/active_mocker/progress.rb +6 -8
  40. data/lib/active_mocker/public_methods.rb +3 -2
  41. data/lib/active_mocker/railtie.rb +3 -3
  42. data/lib/active_mocker/rspec.rb +2 -1
  43. data/lib/active_mocker/rspec_helper.rb +4 -3
  44. data/lib/active_mocker/task.rake +9 -10
  45. data/lib/active_mocker/template_creator.rb +5 -5
  46. data/lib/active_mocker/version.rb +2 -1
  47. metadata +25 -8
@@ -9,5 +9,6 @@ class <%= class_name + mock_append_name %> < <%= parent_class %>
9
9
  <%= partials.attributes %>
10
10
  <%= partials.associations %>
11
11
  <%= partials.scopes %>
12
+ <%= partials.recreate_class_method_calls %>
12
13
  <%= partials.defined_methods %>
13
14
  end
@@ -0,0 +1,12 @@
1
+ # _recreate_class_method_calls.erb
2
+
3
+ def self.attribute_aliases
4
+ @attribute_aliases ||= <%= attribute_aliases %>.merge(super)
5
+ end
6
+
7
+ <% class_method_calls.each do |method| -%>
8
+ alias_method :<%= method.new_name %>, :<%= method.old_name %>
9
+ alias_method :<%= method.new_name %>=, :<%= method.old_name %>=
10
+
11
+ <% end -%>
12
+
@@ -1,8 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveMocker
2
3
  class NullProgress
3
-
4
4
  def self.create(*)
5
- self.new
5
+ new
6
6
  end
7
7
 
8
8
  def initialize(*)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveMocker
2
3
  class ParentClass
3
4
  def initialize(parsed_source:, klasses_to_be_mocked:, mock_append_name:, active_record_base_klass: ::ActiveRecord::Base)
@@ -22,11 +23,12 @@ module ActiveMocker
22
23
  if @parent_mock_name
23
24
  "#{@parent_mock_name}#{mock_append_name}"
24
25
  else
25
- 'ActiveMocker::Base'
26
+ "ActiveMocker::Base"
26
27
  end
27
28
  end
28
29
 
29
30
  private
31
+
30
32
  attr_reader :parsed_source,
31
33
  :klasses_to_be_mocked,
32
34
  :active_record_base_klass,
@@ -61,4 +63,4 @@ module ActiveMocker
61
63
  parent_class_name.constantize
62
64
  end
63
65
  end
64
- end
66
+ end
@@ -1,9 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveMocker
2
3
  class Progress
3
-
4
4
  def self.create(count)
5
- require 'ruby-progressbar'
6
- self.new(count)
5
+ require "ruby-progressbar"
6
+ new(count)
7
7
  rescue LoadError
8
8
  NullProgress.new
9
9
  end
@@ -12,14 +12,12 @@ module ActiveMocker
12
12
  @count = count
13
13
  end
14
14
 
15
- def increment
16
- progress.increment
17
- end
15
+ delegate :increment, to: :progress
18
16
 
19
17
  def progress
20
- @progress ||= ProgressBar.create(title: 'Generating Mocks',
18
+ @progress ||= ProgressBar.create(title: "Generating Mocks",
21
19
  total: @count,
22
- format: '%t |%b>>%i| %p%%')
20
+ format: "%t |%b>>%i| %p%%")
23
21
  end
24
22
  end
25
23
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveMocker
2
3
  class << self
3
4
  # Override default Configurations
@@ -22,7 +23,7 @@ module ActiveMocker
22
23
  Config.set(&block)
23
24
  self
24
25
  end
25
- alias_method :config, :configure
26
+ alias config configure
26
27
 
27
28
  # Generates Mocks file
28
29
  # @returns self
@@ -31,4 +32,4 @@ module ActiveMocker
31
32
  self
32
33
  end
33
34
  end
34
- end
35
+ end
@@ -1,12 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveMocker
2
3
  class Railtie < Rails::Railtie
3
-
4
4
  rake_tasks do
5
- load 'active_mocker/task.rake'
5
+ load "active_mocker/task.rake"
6
6
  end
7
7
 
8
8
  config.to_prepare do
9
9
  ActiveMocker::Config.load_defaults
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveMocker
2
3
  module Rspec
3
4
  # @return ActiveMocker::LoadedMocks
@@ -5,4 +6,4 @@ module ActiveMocker
5
6
  ActiveMocker::LoadedMocks
6
7
  end
7
8
  end
8
- end
9
+ end
@@ -1,11 +1,12 @@
1
- require 'active_mocker/loaded_mocks'
2
- require 'active_mocker/rspec'
1
+ # frozen_string_literal: true
2
+ require "active_mocker/loaded_mocks"
3
+ require "active_mocker/rspec"
3
4
 
4
5
  RSpec.configure do |config|
5
6
  config.include ActiveMocker::Rspec
6
7
 
7
8
  config.before(:each, active_mocker: true) do
8
- unless ENV['RUN_WITH_RAILS'] && self.class.metadata[:rails_compatible]
9
+ unless ENV["RUN_WITH_RAILS"] && self.class.metadata[:rails_compatible]
9
10
  active_mocker.mocks.each { |class_name, mock| stub_const(class_name, mock) }
10
11
  end
11
12
  end
@@ -1,7 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  namespace :active_mocker do
2
-
3
- desc('Rebuild mocks.')
4
- task :build => :environment do
3
+ desc("Rebuild mocks.")
4
+ task build: :environment do
5
5
  ActiveMocker.configure do |c|
6
6
  c.single_model_path = ENV["MODEL"] if ENV["MODEL"]
7
7
  c.model_dir = ENV["MODEL_DIR"] if ENV["MODEL_DIR"]
@@ -12,20 +12,19 @@ namespace :active_mocker do
12
12
  end.create_mocks
13
13
  end
14
14
 
15
- desc('Run all tests tagged active_mocker')
15
+ desc("Run all tests tagged active_mocker")
16
16
  task :test do
17
- sh 'rspec --tag active_mocker'
17
+ sh "rspec --tag active_mocker"
18
18
  end
19
19
 
20
- desc('Run all tests tagged active_mocker and rails_compatible and will disable model stubbing')
20
+ desc("Run all tests tagged active_mocker and rails_compatible and will disable model stubbing")
21
21
  task :rails_compatible do
22
- sh 'RUN_WITH_RAILS=1 rspec --tag rails_compatible'
22
+ sh "RUN_WITH_RAILS=1 rspec --tag rails_compatible"
23
23
  end
24
-
25
24
  end
26
25
 
27
- ['db:migrate', 'db:rollback'].each do |task|
26
+ ["db:migrate", "db:rollback"].each do |task|
28
27
  Rake::Task[task].enhance do
29
- Rake::Task['active_mocker:build'].invoke
28
+ Rake::Task["active_mocker:build"].invoke
30
29
  end
31
30
  end
@@ -1,17 +1,17 @@
1
- require 'forwardable'
1
+ # frozen_string_literal: true
2
+ require "forwardable"
2
3
 
3
4
  module ActiveMocker
4
5
  class TemplateCreator
5
-
6
- def initialize(erb_template:, file_out: nil, binding:, post_process: -> (str){str})
6
+ def initialize(erb_template:, file_out: nil, binding:, post_process: -> (str) { str })
7
7
  @erb_template = erb_template
8
8
  @binding = binding
9
- @file_out = file_out || Tempfile.new('TemplateModel')
9
+ @file_out = file_out || Tempfile.new("TemplateModel")
10
10
  @post_process = post_process
11
11
  end
12
12
 
13
13
  def render
14
- template = ERB.new(erb_template.read, nil, '>')
14
+ template = ERB.new(erb_template.read, nil, ">")
15
15
  file_out.write post_process.call(template.result(binding))
16
16
  file_out
17
17
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveMocker
2
- VERSION = "2.1.3".freeze
3
+ VERSION = "2.2.0"
3
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_mocker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Zeisler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-22 00:00:00.000000000 Z
11
+ date: 2016-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -70,14 +70,14 @@ dependencies:
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '10.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '10.0'
83
83
  - !ruby/object:Gem::Dependency
@@ -100,28 +100,28 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.2.1
103
+ version: 0.2.2
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.2.1
110
+ version: 0.2.2
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: dissociated_introspection
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.4.1
117
+ version: 0.5.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.4.1
124
+ version: 0.5.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '1.10'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.38.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.38.0
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: rspec
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -176,10 +190,12 @@ files:
176
190
  - lib/active_mocker/display_errors.rb
177
191
  - lib/active_mocker/error_object.rb
178
192
  - lib/active_mocker/file_path_to_ruby_class.rb
193
+ - lib/active_mocker/file_writer.rb
179
194
  - lib/active_mocker/generate.rb
180
195
  - lib/active_mocker/hash_new_style.rb
181
196
  - lib/active_mocker/loaded_mocks.rb
182
197
  - lib/active_mocker/mock.rb
198
+ - lib/active_mocker/mock/alias_attribute.rb
183
199
  - lib/active_mocker/mock/association.rb
184
200
  - lib/active_mocker/mock/base.rb
185
201
  - lib/active_mocker/mock/belongs_to.rb
@@ -204,6 +220,7 @@ files:
204
220
  - lib/active_mocker/mock_template/_class_methods.erb
205
221
  - lib/active_mocker/mock_template/_defined_methods.erb
206
222
  - lib/active_mocker/mock_template/_modules_constants.erb
223
+ - lib/active_mocker/mock_template/_recreate_class_method_calls.erb
207
224
  - lib/active_mocker/mock_template/_scopes.erb
208
225
  - lib/active_mocker/null_progress.rb
209
226
  - lib/active_mocker/parent_class.rb