active_mocker 2.6.1.beta2 → 2.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 380a7a869f713e299aeb753431527628534128bb
4
- data.tar.gz: 0e2253e679969d16ad94ff1dbdaf07a1905b83de
2
+ SHA256:
3
+ metadata.gz: a128fbb6ea0d9e4ed9755109736a1d03f9d689576e9c1207ebe9fffdda1de082
4
+ data.tar.gz: 3ea03e73c5187e86c30c78537a5033fc7f7c7c4bd5f7b289d62b9dd9564eaaa3
5
5
  SHA512:
6
- metadata.gz: 4472cbac55a5d82a7e84ac94a7f4cc50dc8a3cfd6c700fb173056e320af90e1a2f1bc2249b8c3073cc18480f7fd05c2157272a44e403ebf5506fd41035fcf14e
7
- data.tar.gz: 861f0d27e1d2ed921ef4730dfa13525f4d03beb95c7de6286f28dbdc9bbd50bd8e5b4ab681ee96057c7bbb3139a74a90ed46cbed97a01f39bfd44d4d05366126
6
+ metadata.gz: b62c4e6d9e3c0e504ccdfb8d5be12bcd350d49b24c860821342564b420a382f6cf4d519ad9c17496f4d0373b11c91d8bc22d06b020096c77622616b5f5ee8ee0
7
+ data.tar.gz: 2be8c7a163260adb490656dfdb138db6c8127d3f4d5661677f4ea5debfae3e30dbc86c41f097a2bb768c61c6518c5f6401787bba70b768db27ea2fd6708fc716
@@ -1,9 +1,15 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## Current
5
- ### Enhancement
6
- - Locally defined modules are imported and included.
4
+ ## 2.6.1 - 2018-10-30
5
+ ### Feature
6
+ * Actively support Rails 5.2
7
+ * Add tested support for Ruby 2.4 and 2.5
8
+ * When using Rails 5.2 now supports `ActiveMocker::Mock.limit(10).delete_all` while previous version raised an error, in accordance with it's Rails version.
9
+
10
+ ### Removed
11
+ * Remove tested support for Rails 5.0 (Currently supported 4.2, 5.1, 5.2)
12
+ * Remove support for Ruby 2.1 and 2.2
7
13
 
8
14
  ## 2.6.0 - 2017-12-01
9
15
  ### Feature
data/README.md CHANGED
@@ -1,9 +1,7 @@
1
1
  # ActiveMocker
2
2
  [![Gem Version](https://badge.fury.io/rb/active_mocker.svg)](http://badge.fury.io/rb/active_mocker)
3
- [![Build Status](https://travis-ci.org/zeisler/active_mocker.png?branch=master)](https://travis-ci.org/zeisler/active_mocker)
4
- [![Dependency Status](https://gemnasium.com/zeisler/active_mocker.svg)](https://gemnasium.com/zeisler/active_mocker)
5
- [![Gitter chat](https://badges.gitter.im/zeisler/active_mocker.png)](https://gitter.im/zeisler/active_mocker)
6
- [![Gittip](http://img.shields.io/gittip/zeisler.svg)](https://www.gittip.com/zeisler/)
3
+ [![Build Status](https://travis-ci.org/zeisler/active_mocker.svg?branch=master)](https://travis-ci.org/zeisler/active_mocker)
4
+ [![Gitter chat](https://badges.gitter.im/zeisler/active_mocker.svg)](https://gitter.im/zeisler/active_mocker)
7
5
 
8
6
  ## Description
9
7
  Creates stub classes from any ActiveRecord model.
@@ -14,17 +12,17 @@ ActiveMocker analyzes the methods and database columns to generate a Ruby class
14
12
 
15
13
  The stub file can be run standalone and comes included with many useful parts of ActiveRecord.
16
14
 
17
- Stubbed out methods contain their original argument signatures or ActiveMocker friendly code can be brought over in its entirety.
15
+ Stubbed out methods contain their original argument signatures or ActiveMocker's friendly code can be brought over in its entirety.
18
16
 
19
17
  Mocks are regenerated when the schema is modified so your mocks won't go stale, preventing the case where your unit tests pass but production code fails.
20
18
 
21
- *Examples from a real apps*
19
+ *Examples from a real app*
22
20
 
23
21
  Finished in 1 seconds
24
22
  374 examples, 0 failures
25
23
 
26
24
  ## Around the web
27
- ["Mocking ActiveRecord with ActiveMocker" by Envy](http://madewithenvy.com/ecosystem/articles/2015/mocking-activerecord-with-activemocker/)
25
+ ["Mocking ActiveRecord with ActiveMocker" by Envy](https://web.archive.org/web/20150511052653/http://madewithenvy.com/ecosystem/articles/2015/mocking-activerecord-with-activemocker/)
28
26
 
29
27
  ------------------------------------------
30
28
 
@@ -67,8 +65,8 @@ group :development, :test do
67
65
  gem 'active_mocker'
68
66
  end
69
67
  ```
70
- It needs to be in development as well as test because development is where mocks will be generated.
71
- And then execute:
68
+ It needs to be in development as well as test groups, as the development environment is where mocks will be generated.
69
+ Then execute:
72
70
 
73
71
  $ bundle
74
72
 
@@ -77,9 +75,8 @@ Or install it yourself as:
77
75
  $ gem install active_mocker
78
76
 
79
77
  ## Dependencies
80
- * Tested with Rails 4.1, 4.2, 5.0
81
- * Requires Ruby MRI >= 2.1.x
82
-
78
+ * Tested with Rails 4.x, 5.x, 6.x
79
+ * Requires Ruby MRI >= 2.4.x
83
80
 
84
81
  ## Setup
85
82
 
@@ -89,7 +86,7 @@ Or install it yourself as:
89
86
 
90
87
  ### Generate Mocks
91
88
 
92
- Running this rake task builds/rebuilds the mocks. It will be ran automatically after every schema modification. If the model changes this rake task needs to be called manually. You could add a file watcher for when your models change and have it run the rake task.
89
+ Running this rake task builds/rebuilds the mocks. It will be ran automatically after every schema modification. If the model changes, this rake task needs to be called manually. You could add a file watcher for when your models change and have it run the rake task.
93
90
 
94
91
  rake active_mocker:build
95
92
 
@@ -144,7 +141,7 @@ end
144
141
 
145
142
  * Assigning the tag `active_mocker:true` will stub any ActiveRecord model Constants for Mock classes in an `it` or a `before/after(:each)`. This removes any need for dependency injection. Write tests and code like you would normally.
146
143
  * To stub any Constants in `before(:all)`, `after(:all)` use `active_mocker.find('ClassName')`.
147
- * Mock state will be cleaned up for you in an `after(:all)`. To clean state your self use `active_mocker.delete_all`.
144
+ * Mock state will be cleaned up for you in an `after(:all)`. To clean state by yourself, use `active_mocker.delete_all`.
148
145
 
149
146
  ---------
150
147
 
@@ -188,15 +185,15 @@ Person.new(first_name: "Dustin", last_name: "Zeisler")
188
185
 
189
186
  ### Creating Custom collections
190
187
 
191
- If you want to create custom set of record that is not part of the global collection for model. (ie. for stubbing in a test)
188
+ If you want to create a custom set of records that is not part of the global collection for model. (ie. for stubbing in a test)
192
189
 
193
190
  ```ruby
194
191
  User::ScopeRelation.new([User.new, User.new])
195
192
  ```
196
193
 
197
- This give the full query API (ie. find_by, where, etc).
194
+ This gives the full query API (ie. `find_by`, `where`, etc).
198
195
 
199
- This is not feature available in ActiveRecord as such do not include this where you intend to swap in ActiveRecord.
196
+ This is not a feature available in ActiveRecord, so do not include this where you intend to swap for ActiveRecord.
200
197
 
201
198
 
202
199
  ## Optional Features
@@ -211,15 +208,15 @@ ActiveMocker::LoadedMocks.features.enable(:stub_active_record_exceptions)
211
208
 
212
209
  ### timestamps
213
210
 
214
- Enables created_at and updated_at to be update on save and create
211
+ Enables `created_at` and `updated_at` to be updated on save and create
215
212
 
216
213
  ### delete_all_before_example
217
214
 
218
- When using "active_mocker/rspec_helper" it delete all records from all mocks before each example.
215
+ When using "active_mocker/rspec_helper", it deletes all records from all mocks before each example.
219
216
 
220
217
  ### stub_active_record_exceptions
221
218
 
222
- When requiring "active_mocker/rspec_helper", and adding `active_mocker: true` to the describe metadata, these errors will be auto stubbed:
219
+ When requiring "active_mocker/rspec_helper", and adding `active_mocker: true` to the `describe` metadata, these errors will be auto stubbed:
223
220
 
224
221
  * ActiveRecord::RecordNotFound
225
222
  * ActiveRecord::RecordNotUnique
@@ -228,7 +225,7 @@ ActiveMocker::LoadedMocks.features.enable(:stub_active_record_exceptions)
228
225
  ### Copy over Mock safe methods into the generated mock
229
226
 
230
227
  Adding the comment `ActiveMocker.safe_methods` at the top of a class marks it as safe to copy to the mock.
231
- Be careful that it does not contain anything that ActiveMocker cannot run.
228
+ Be careful. It should not contain anything that ActiveMocker cannot run.
232
229
 
233
230
  ```ruby
234
231
  # ActiveMocker.safe_methods(scopes: [], instance_methods: [:full_name], class_methods: [])
@@ -242,8 +239,8 @@ ActiveMocker::LoadedMocks.features.enable(:stub_active_record_exceptions)
242
239
  ## Mocking Methods
243
240
 
244
241
  #### Rspec 3 Mocks - verify double
245
- Verifying doubles are a stricter alternative to normal doubles that provide guarantees about
246
- what is being verified. When using verifying doubles, RSpec will check that the methods
242
+ Verifying doubles is a stricter alternative to normal doubles that provides guarantees about
243
+ what is being verified. When using verifying doubles, RSpec will check if the methods
247
244
  being stubbed are actually present on the underlying object if it is available.
248
245
  [rspec-mocks/docs/verifying-doubles](https://relishapp.com/rspec/rspec-mocks/docs/verifying-doubles)
249
246
  ```ruby
@@ -326,7 +323,7 @@ PersonMock::CONSTANT_VALUE
326
323
  ```
327
324
 
328
325
  ### Scoped Methods
329
- * Any chained scoped methods will be available when the mock file that defines it is required. When called it raises a `NotImplementedError`, stub the method with a value to continue.
326
+ * Any chained scoped methods will be available when the mock file that defines it is required. When called, it raises a `NotImplementedError`. Stub the method with a value to continue.
330
327
 
331
328
  ### Managing Mocks
332
329
 
@@ -420,7 +417,7 @@ See [Documentation](http://rdoc.info/github/zeisler/active_mocker/master/ActiveM
420
417
 
421
418
  ### Schema/Migration Option Support
422
419
  * A db/schema.rb is not required.
423
- * All schema types are supported and coerced by [Virtus](https://github.com/solnic/virtus). If coercion fails the passed value will be retained.
420
+ * All schema types are supported and coerced by [Virtus](https://github.com/solnic/virtus). If coercion fails, the passed value will be retained.
424
421
  * Default value is supported.
425
422
  * Scale and Precision are not supported.
426
423
 
@@ -429,15 +426,15 @@ See [Documentation](http://rdoc.info/github/zeisler/active_mocker/master/ActiveM
429
426
  * When an association is set in one object it may not always be reflective in other objects, especially when it is a non standard/custom association. See [test_rails_4_app/spec/active_record_compatible_api.rb](https://github.com/zeisler/active_mocker/blob/master/test_rails_4_app/spec/active_record_compatible_api.rb) for a complete list of supported associations.
430
427
  * Validation/Callbacks are not supported.
431
428
  * Sql queries, joins, etc will never be supported.
432
- * A record that has been created and then is modified will persist changes without calling `#save`, beware of this difference.
429
+ * A record that has been created and then is modified will persist changes without calling `#save`. Beware of this difference.
433
430
  * This is not a full replacement for ActiveRecord.
434
- * Primary key will always default to `id`. If this is an causes a problem open an issue.
431
+ * Primary key will always default to `id`. If this is causing a problem, feel free to open an issue (or even better, a PR =)).
435
432
 
436
433
  ## Inspiration
437
434
  Thanks to Jeff Olfert for being my original inspiration for this project.
438
435
 
439
436
  ## Contributing
440
- Your contribution are welcome!
437
+ Your contributions are welcome!
441
438
 
442
439
  1. Fork it ( http://github.com/zeisler/active_mocker/fork )
443
440
  2. Create your feature branch (`git checkout -b my-new-feature`)
@@ -39,3 +39,4 @@ require "active_mocker/generate"
39
39
  require "active_mocker/attribute_types/register"
40
40
  require "active_mocker/attribute_types/enum"
41
41
  require "active_mocker/attribute"
42
+ require "active_mocker/late_inclusion"
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveMocker
4
+ module LateInclusion
5
+ module Extension
6
+ def prepended(const)
7
+ if const.respond_to?(:__extended_onto__)
8
+ const.__extended_onto__.each do |ex|
9
+ ex.extend self
10
+ end
11
+ end
12
+
13
+ if const.respond_to?(:__included_onto__)
14
+ const.__included_onto__.each do |ex|
15
+ ex.prepend self
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ def extended(const)
22
+ __extended_onto__ << const
23
+ end
24
+
25
+ def __extended_onto__
26
+ @__extended_onto__ ||= []
27
+ end
28
+
29
+ def included(const)
30
+ __included_onto__ << const
31
+ end
32
+
33
+ def __included_onto__
34
+ @__included_onto__ ||= []
35
+ end
36
+ end
37
+ end
@@ -1,4 +1,6 @@
1
1
  # frozen_string_literal: true
2
+
3
+ require "forwardable"
2
4
  require_relative "loaded_mocks/features"
3
5
 
4
6
  module ActiveMocker
@@ -155,6 +155,11 @@ module ActiveMocker
155
155
  require "active_mocker/mock/compatibility/base/ar51"
156
156
  extend AR51
157
157
  end
158
+
159
+ if __active_record_build_version__ >= Gem::Version.create("5.2")
160
+ require "active_mocker/mock/compatibility/queries/ar52"
161
+ Queries.prepend(Queries::AR52)
162
+ end
158
163
  raise UpdateMocksError.new(name, version, ActiveMocker::Mock::VERSION) if version != ActiveMocker::Mock::VERSION
159
164
  end
160
165
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: tru
2
-
3
2
  module ActiveMocker
4
3
  class Base
5
4
  module AR51
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveMocker
4
+ module Queries
5
+ module AR52
6
+ extend LateInclusion::Extension
7
+
8
+ private
9
+
10
+ def check_for_limit_scope!
11
+ # noop
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
  module ActiveMocker
3
3
  module Queries
4
+ extend LateInclusion
5
+
4
6
  class Find
5
7
  def initialize(record)
6
8
  @record = record
@@ -24,7 +24,7 @@ module ActiveMocker
24
24
  attribute: attr.name,
25
25
  db_value_type: attr.type,
26
26
  )
27
- if ActiveRecord::VERSION::MAJOR == 5
27
+ if ActiveRecord::VERSION::MAJOR >= 5
28
28
  enum_type.ignore_value = true
29
29
  attr.type = enum_type
30
30
  if attr.default
@@ -20,19 +20,16 @@ module ActiveMocker
20
20
  end
21
21
 
22
22
  def constants
23
- class_introspector.get_class.constants.each_with_object({}) do |v, const|
23
+ class_introspector.get_class.constants.map do |v|
24
24
  c = class_introspector.get_class.const_get(v)
25
25
  next if [Module, Class].include?(c.class)
26
- const[v] = if /\A#</ =~ c.inspect
27
- Inspectable.new("ActiveMocker::UNREPRESENTABLE_CONST_VALUE")
28
- else
29
- c
30
- end
31
- end
32
- end
33
-
34
- def defined_nested_modules
35
- class_introspector.parsed_source.defined_nested_modules.map(&:source)
26
+ const = if /\A#</ =~ c.inspect
27
+ Inspectable.new("ActiveMocker::UNREPRESENTABLE_CONST_VALUE")
28
+ else
29
+ c
30
+ end
31
+ [v, const]
32
+ end.compact.sort
36
33
  end
37
34
 
38
35
  private
@@ -51,7 +48,7 @@ module ActiveMocker
51
48
  end
52
49
 
53
50
  def get_module_by_reference(type)
54
- isolated_module_names = class_introspector.public_send(type).map(&:referenced_name)
51
+ isolated_module_names = reject_local_const(class_introspector.public_send(type)).map(&:referenced_name)
55
52
  real_module_names = get_real_module(type).map(&:name).compact
56
53
  isolated_module_names.map do |isolated_name|
57
54
  real_name = real_module_names.detect do |rmn|
@@ -60,7 +57,7 @@ module ActiveMocker
60
57
  [
61
58
  real_parts.include?(active_record_model.name),
62
59
  real_parts.include?(isolated_name),
63
- (total_parts_count == real_parts.count),
60
+ (total_parts_count == real_parts.count)
64
61
  ].all?
65
62
  end
66
63
  real_name ? real_name : isolated_name
@@ -32,7 +32,7 @@ module ActiveMocker
32
32
  def ast_scopes
33
33
  @ast_scopes ||= class_introspector
34
34
  .parsed_source
35
- .send(:class_begin)
35
+ .class_begin
36
36
  .children
37
37
  .select { |n| n.try(:type) == :send && n.try { children[1] == :scope } }
38
38
  end
@@ -1,9 +1,6 @@
1
1
  # _modules_constants.erb
2
- <% constants.each do |constant| -%>
3
- <%= constant.first %> = <%= constant.last.inspect %>
4
- <% end -%>
5
- <% defined_nested_modules.each do |m| -%>
6
- <%= m %>
2
+ <% constants.each do |constant, value| -%>
3
+ <%= constant %> = <%= value.inspect %>
7
4
  <% end -%>
8
5
  <% modules[:included].each do |constant| -%>
9
6
  prepend <%= constant %>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module ActiveMocker
3
- VERSION = "2.6.1.beta2"
3
+ VERSION = "2.6.2"
4
4
  module Mock
5
5
  VERSION = "2" # This increments when breaking changes happen in the generated mocks
6
6
  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.6.1.beta2
4
+ version: 2.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Zeisler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-16 00:00:00.000000000 Z
11
+ date: 2019-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.1'
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4.1'
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: virtus
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -56,20 +56,20 @@ dependencies:
56
56
  name: colorize
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.7'
62
- - - ">="
62
+ - - "~>"
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0.7'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - "~>"
69
+ - - ">="
70
70
  - !ruby/object:Gem::Version
71
71
  version: '0.7'
72
- - - ">="
72
+ - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0.7'
75
75
  - !ruby/object:Gem::Dependency
@@ -112,40 +112,34 @@ dependencies:
112
112
  requirements:
113
113
  - - "~>"
114
114
  - !ruby/object:Gem::Version
115
- version: '0.6'
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 0.6.0
115
+ version: '0.8'
119
116
  type: :runtime
120
117
  prerelease: false
121
118
  version_requirements: !ruby/object:Gem::Requirement
122
119
  requirements:
123
120
  - - "~>"
124
121
  - !ruby/object:Gem::Version
125
- version: '0.6'
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: 0.6.0
122
+ version: '0.8'
129
123
  - !ruby/object:Gem::Dependency
130
124
  name: dissociated_introspection
131
125
  requirement: !ruby/object:Gem::Requirement
132
126
  requirements:
133
127
  - - "~>"
134
128
  - !ruby/object:Gem::Version
135
- version: '0.9'
129
+ version: '0.8'
136
130
  - - ">="
137
131
  - !ruby/object:Gem::Version
138
- version: 0.9.1
132
+ version: 0.8.4
139
133
  type: :runtime
140
134
  prerelease: false
141
135
  version_requirements: !ruby/object:Gem::Requirement
142
136
  requirements:
143
137
  - - "~>"
144
138
  - !ruby/object:Gem::Version
145
- version: '0.9'
139
+ version: '0.8'
146
140
  - - ">="
147
141
  - !ruby/object:Gem::Version
148
- version: 0.9.1
142
+ version: 0.8.4
149
143
  - !ruby/object:Gem::Dependency
150
144
  name: bundler
151
145
  requirement: !ruby/object:Gem::Requirement
@@ -166,14 +160,14 @@ dependencies:
166
160
  requirements:
167
161
  - - "~>"
168
162
  - !ruby/object:Gem::Version
169
- version: 0.38.0
163
+ version: 0.49.0
170
164
  type: :development
171
165
  prerelease: false
172
166
  version_requirements: !ruby/object:Gem::Requirement
173
167
  requirements:
174
168
  - - "~>"
175
169
  - !ruby/object:Gem::Version
176
- version: 0.38.0
170
+ version: 0.49.0
177
171
  - !ruby/object:Gem::Dependency
178
172
  name: rspec
179
173
  requirement: !ruby/object:Gem::Requirement
@@ -224,6 +218,7 @@ files:
224
218
  - lib/active_mocker/inspectable/pathname.rb
225
219
  - lib/active_mocker/inspectable/struct.rb
226
220
  - lib/active_mocker/inspectable/time.rb
221
+ - lib/active_mocker/late_inclusion.rb
227
222
  - lib/active_mocker/loaded_mocks.rb
228
223
  - lib/active_mocker/loaded_mocks/features.rb
229
224
  - lib/active_mocker/mock.rb
@@ -233,6 +228,7 @@ files:
233
228
  - lib/active_mocker/mock/belongs_to.rb
234
229
  - lib/active_mocker/mock/collection.rb
235
230
  - lib/active_mocker/mock/compatibility/base/ar51.rb
231
+ - lib/active_mocker/mock/compatibility/queries/ar52.rb
236
232
  - lib/active_mocker/mock/do_nothing_active_record_methods.rb
237
233
  - lib/active_mocker/mock/exceptions.rb
238
234
  - lib/active_mocker/mock/has_and_belongs_to_many.rb
@@ -289,15 +285,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
289
285
  requirements:
290
286
  - - ">="
291
287
  - !ruby/object:Gem::Version
292
- version: '2.1'
288
+ version: '2.3'
293
289
  required_rubygems_version: !ruby/object:Gem::Requirement
294
290
  requirements:
295
- - - ">"
291
+ - - ">="
296
292
  - !ruby/object:Gem::Version
297
- version: 1.3.1
293
+ version: '0'
298
294
  requirements: []
299
- rubyforge_project:
300
- rubygems_version: 2.5.1
295
+ rubygems_version: 3.0.3
301
296
  signing_key:
302
297
  specification_version: 4
303
298
  summary: Creates stub classes from any ActiveRecord model