active_mocker 1.1.9 → 1.1.10
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.
- checksums.yaml +4 -4
- data/README.md +27 -61
- data/active_mocker.gemspec +2 -2
- data/lib/active_hash/find_by.rb +7 -0
- data/lib/active_mocker/base.rb +59 -53
- data/lib/active_mocker/config.rb +29 -17
- data/lib/active_mocker/schema_reader.rb +3 -1
- data/lib/active_mocker/version.rb +1 -1
- data/spec/lib/active_mocker/base_spec.rb +15 -64
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bb54273c96a7bc0bd3734d3193ec1993f6a6336
|
4
|
+
data.tar.gz: abf486f0dc2c983059a4a2a82eac5061b333430a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36401322a2d363a592d8c3cfa6fc7b322765103680b02a0e14e2391bfa0dc70deca69cf247d2ff2cd673c12dd01d119996d69711599af8e555996f41ca0c3859
|
7
|
+
data.tar.gz: 17c97729cfe75f2a46ec1bb97f4a751e67a9dd8b12bc8462922f2b549d87a273cf135c20ae22d2b325de67e308c039ea6da97b278fe16b8423a545b1bf6c7d5a
|
data/README.md
CHANGED
@@ -51,17 +51,14 @@ Or install it yourself as:
|
|
51
51
|
require 'active_mocker'
|
52
52
|
|
53
53
|
ActiveMocker.configure do |config|
|
54
|
-
|
54
|
+
# Required Options
|
55
55
|
config.schema_file = "#{APP_ROOT}/db/schema.rb"
|
56
56
|
config.model_dir = "#{APP_ROOT}/app/models"
|
57
|
-
|
58
|
-
config.active_hash_as_base = false #default
|
57
|
+
# Additional Options
|
59
58
|
config.schema_attributes = true #default
|
60
|
-
config.
|
61
|
-
|
62
|
-
config.
|
63
|
-
# Logging
|
64
|
-
config.log_level = Logger::WARN #default
|
59
|
+
config.model_attributes = true #default
|
60
|
+
# Logging
|
61
|
+
config.log_level = Logger::WARN #default
|
65
62
|
end
|
66
63
|
|
67
64
|
ActiveMocker.mock('Person')
|
@@ -149,59 +146,28 @@ Or install it yourself as:
|
|
149
146
|
end
|
150
147
|
=> NameError: undefined method `bar' for class `PersonMock'
|
151
148
|
|
152
|
-
###
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
=> true
|
175
|
-
|
176
|
-
### Additional ActiveHash extensions for matching ActiveRecord
|
177
|
-
|
178
|
-
|
179
|
-
#### #update method
|
180
|
-
|
181
|
-
person = PersonMock.create(first_name: 'Justin')
|
182
|
-
person.update(first_name: 'Dustin')
|
183
|
-
|
184
|
-
person.first_name
|
185
|
-
=> 'Dustin'
|
186
|
-
|
187
|
-
|
188
|
-
#### ::destroy_all
|
189
|
-
|
190
|
-
PersonMock.create
|
191
|
-
PersonMock.count
|
192
|
-
=> 1
|
193
|
-
|
194
|
-
PersonMock.destroy_all
|
195
|
-
PersonMock.count
|
196
|
-
=> 0
|
197
|
-
|
198
|
-
|
199
|
-
#### ::find_by
|
200
|
-
|
201
|
-
person = PersonMock.create(first_name: 'Dustin')
|
202
|
-
PersonMock.find_by(first_name: 'Dustin') == person
|
203
|
-
=> true
|
204
|
-
|
149
|
+
### ActiveRecord supported methods
|
150
|
+
**class methods**
|
151
|
+
* new
|
152
|
+
* create
|
153
|
+
* column_names
|
154
|
+
* find
|
155
|
+
* find_by
|
156
|
+
* find_by!
|
157
|
+
* find_or_create_by
|
158
|
+
* find_or_initialize_by
|
159
|
+
* where - (only supports hash input)
|
160
|
+
* delete_all/destroy_all
|
161
|
+
* all
|
162
|
+
* count
|
163
|
+
* first/last
|
164
|
+
|
165
|
+
**instance methods**
|
166
|
+
* attributes
|
167
|
+
* update
|
168
|
+
* save
|
169
|
+
* write_attribute - (private)
|
170
|
+
* read_attribute - (private)
|
205
171
|
|
206
172
|
### Known Limitations
|
207
173
|
|
data/active_mocker.gemspec
CHANGED
@@ -20,14 +20,14 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.required_ruby_version = '>= 2.0.0'
|
22
22
|
|
23
|
-
spec.add_runtime_dependency "
|
23
|
+
spec.add_runtime_dependency "activerecord", "~>4.1"
|
24
|
+
spec.add_runtime_dependency "activesupport", "~>4.1"
|
24
25
|
spec.add_runtime_dependency "active_hash", "~>1.3"
|
25
26
|
|
26
27
|
spec.add_development_dependency "bundler", "~> 1.5"
|
27
28
|
spec.add_development_dependency "rake", "~>10.1"
|
28
29
|
spec.add_development_dependency "rspec", "~>2.14"
|
29
30
|
spec.add_development_dependency "i18n", "~>0.6"
|
30
|
-
spec.add_development_dependency "activerecord", "~>4.0"
|
31
31
|
spec.add_development_dependency "sqlite3", "~>1.3"
|
32
32
|
|
33
33
|
# if ENV['DEBUG'] == '1'
|
data/lib/active_hash/find_by.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module ActiveHash
|
2
2
|
|
3
3
|
module ARApi
|
4
|
+
require 'active_record/errors'
|
4
5
|
|
5
6
|
module FindBy
|
6
7
|
|
@@ -8,6 +9,12 @@ module ActiveHash
|
|
8
9
|
send(:where, options).first
|
9
10
|
end
|
10
11
|
|
12
|
+
def find_by!(options={})
|
13
|
+
result = find_by(options)
|
14
|
+
raise ActiveRecord::RecordNotFound if result.blank?
|
15
|
+
result
|
16
|
+
end
|
17
|
+
|
11
18
|
end
|
12
19
|
|
13
20
|
end
|
data/lib/active_mocker/base.rb
CHANGED
@@ -5,21 +5,19 @@ module ActiveMocker
|
|
5
5
|
@@_self = self
|
6
6
|
def_delegators :@@_self,
|
7
7
|
:mass_assignment,
|
8
|
-
:model_relationships,
|
9
8
|
:schema_attributes,
|
10
|
-
:
|
11
|
-
:active_hash_as_base,
|
9
|
+
:model_attributes,
|
12
10
|
:model_dir,
|
13
11
|
:schema_file,
|
14
12
|
:model_file_reader,
|
15
|
-
:schema_file_reader
|
13
|
+
:schema_file_reader,
|
14
|
+
:clear_cache
|
16
15
|
|
17
16
|
attr_reader :model_name, :klass
|
18
17
|
|
19
18
|
def initialize(model_name)
|
20
19
|
@model_name = model_name
|
21
|
-
|
22
|
-
active_hash_mock_class if active_hash_as_base
|
20
|
+
active_hash_mock_class
|
23
21
|
end
|
24
22
|
|
25
23
|
def self.configure(&block)
|
@@ -40,10 +38,11 @@ module ActiveMocker
|
|
40
38
|
end
|
41
39
|
|
42
40
|
def table_definition
|
41
|
+
return @table_definition unless @table_definition.nil?
|
43
42
|
table_name = model_name.tableize
|
44
|
-
table = SchemaReader.new({schema_file: schema_file, file_reader: schema_file_reader}).search(table_name)
|
43
|
+
table = SchemaReader.new({schema_file: schema_file, file_reader: schema_file_reader, clear_cache: clear_cache}).search(table_name)
|
45
44
|
raise "#{table_name} table not found." if table.nil?
|
46
|
-
|
45
|
+
@table_definition = table
|
47
46
|
end
|
48
47
|
|
49
48
|
def active_hash_mock_class
|
@@ -57,25 +56,12 @@ module ActiveMocker
|
|
57
56
|
add_relationships_methods
|
58
57
|
add_column_names_method
|
59
58
|
add_method_mock_of
|
60
|
-
if
|
59
|
+
if model_attributes
|
61
60
|
add_class_methods
|
62
61
|
add_instance_methods
|
63
62
|
end
|
64
63
|
end
|
65
64
|
|
66
|
-
def plain_mock_class
|
67
|
-
fill_templates
|
68
|
-
add_method_mock_of
|
69
|
-
if model_methods
|
70
|
-
add_class_methods
|
71
|
-
add_instance_methods
|
72
|
-
end
|
73
|
-
add_table_attributes if schema_attributes
|
74
|
-
add_relationships_methods if model_relationships
|
75
|
-
add_column_names_method if schema_attributes
|
76
|
-
create_initializer if mass_assignment
|
77
|
-
end
|
78
|
-
|
79
65
|
def create_initializer
|
80
66
|
klass = create_klass
|
81
67
|
klass.class_eval <<-'eos', __FILE__, __LINE__+1
|
@@ -120,39 +106,18 @@ module ActiveMocker
|
|
120
106
|
end
|
121
107
|
end
|
122
108
|
|
123
|
-
def add_table_attributes
|
124
|
-
klass = create_klass
|
125
|
-
table_definition.column_names.each do |m|
|
126
|
-
|
127
|
-
klass.send(:schema_attributes_template)[m] = nil
|
128
|
-
begin
|
129
|
-
klass.class_eval <<-eos, __FILE__, __LINE__+1
|
130
|
-
def #{m}
|
131
|
-
read_attribute(#{m.inspect})
|
132
|
-
end
|
133
|
-
|
134
|
-
def #{m}=(value)
|
135
|
-
write_attribute(#{m.inspect}, value)
|
136
|
-
end
|
137
|
-
eos
|
138
|
-
rescue SyntaxError
|
139
|
-
Logger_.debug "ActiveMocker :: Can't create accessor methods for #{m}.\n #{caller}"
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
109
|
def add_relationships_methods
|
145
110
|
klass = create_klass
|
146
111
|
model_definition.relationships.each do |m|
|
147
112
|
klass.send(:schema_attributes_template)[m] = nil
|
148
113
|
begin
|
149
114
|
klass.class_eval <<-eos, __FILE__, __LINE__+1
|
150
|
-
|
151
|
-
|
115
|
+
def #{m}
|
116
|
+
read_association(#{m.inspect})
|
152
117
|
end
|
153
118
|
|
154
119
|
def #{m}=(value)
|
155
|
-
|
120
|
+
write_association(#{m.inspect}, value)
|
156
121
|
end
|
157
122
|
eos
|
158
123
|
rescue SyntaxError
|
@@ -216,11 +181,10 @@ module ActiveMocker
|
|
216
181
|
|
217
182
|
def const_class
|
218
183
|
remove_const(mock_class_name) if class_exists? mock_class_name
|
219
|
-
klass = Object.const_set(mock_class_name
|
220
|
-
klass.send(:include, ActiveHash::ARApi)
|
221
|
-
klass
|
184
|
+
klass = Object.const_set(mock_class_name, Class.new(::ActiveHash::Base))
|
185
|
+
klass.send(:include, ActiveHash::ARApi)
|
186
|
+
klass.send(:prepend, ModelInstanceMethods) # is a private method for ruby 2.0.0
|
222
187
|
klass.extend ModelClassMethods
|
223
|
-
klass.send(:include, ModelInstanceMethods) # is a private method for ruby 2.0.0
|
224
188
|
klass
|
225
189
|
end
|
226
190
|
|
@@ -247,15 +211,57 @@ module ActiveMocker
|
|
247
211
|
model_instance_methods[method] = block
|
248
212
|
end
|
249
213
|
|
214
|
+
def inspect
|
215
|
+
inspection = self.class.column_names.map { |name|
|
216
|
+
"#{name}: #{attribute_for_inspect(name)}"
|
217
|
+
}.compact.join(", ")
|
218
|
+
|
219
|
+
"#<#{self.class} #{inspection}>"
|
220
|
+
end
|
221
|
+
|
222
|
+
def attribute_for_inspect(attr_name)
|
223
|
+
value = self.attributes[attr_name]
|
224
|
+
if value.is_a?(String) && value.length > 50
|
225
|
+
"#{value[0, 50]}...".inspect
|
226
|
+
elsif value.is_a?(Date) || value.is_a?(Time)
|
227
|
+
%("#{value.to_s(:db)}")
|
228
|
+
elsif value.is_a?(Array) && value.size > 10
|
229
|
+
inspected = value.first(10).inspect
|
230
|
+
%(#{inspected[0...-1]}, ...])
|
231
|
+
else
|
232
|
+
value.inspect
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
def hash
|
237
|
+
attributes.hash
|
238
|
+
end
|
239
|
+
|
240
|
+
def ==(obj)
|
241
|
+
hash == obj.attributes.hash
|
242
|
+
end
|
243
|
+
|
244
|
+
private
|
245
|
+
|
250
246
|
def read_attribute(attr)
|
251
|
-
|
247
|
+
attributes[attr]
|
252
248
|
end
|
253
249
|
|
254
250
|
def write_attribute(attr, value)
|
255
|
-
|
251
|
+
attributes[attr] = value
|
256
252
|
end
|
257
253
|
|
258
|
-
|
254
|
+
def read_association(attr)
|
255
|
+
@associations[attr]
|
256
|
+
end
|
257
|
+
|
258
|
+
def write_association(attr, value)
|
259
|
+
@associations[attr] = value
|
260
|
+
end
|
261
|
+
|
262
|
+
def attribute_to_string
|
263
|
+
attributes.map {|k, v| "#{k.to_s}: #{v.inspect}"}.join(', ')
|
264
|
+
end
|
259
265
|
|
260
266
|
def delegate_to_model_instance(method, *args)
|
261
267
|
self.class.send(:delegate_to_model_instance, method, *args)
|
data/lib/active_mocker/config.rb
CHANGED
@@ -5,45 +5,57 @@ module ActiveMocker
|
|
5
5
|
|
6
6
|
attr_accessor :schema_file,
|
7
7
|
:model_dir,
|
8
|
-
:active_hash_as_base,
|
9
8
|
:schema_attributes,
|
10
|
-
:
|
11
|
-
:model_methods,
|
12
|
-
:mass_assignment,
|
9
|
+
:model_attributes,
|
13
10
|
:schema_file_reader,
|
14
|
-
:model_file_reader
|
11
|
+
:model_file_reader,
|
12
|
+
:clear_cache
|
15
13
|
|
16
14
|
def config
|
17
15
|
@@first_load ||= reload_default
|
18
16
|
yield self
|
19
17
|
check_required_settings
|
18
|
+
require_active_hash
|
20
19
|
end
|
21
20
|
|
22
21
|
def reload_default
|
22
|
+
@log_level = Logger::WARN
|
23
23
|
@schema_file = nil
|
24
24
|
@model_dir = nil
|
25
|
-
@active_hash_as_base = false
|
26
25
|
@schema_attributes = true
|
27
|
-
@
|
28
|
-
@
|
29
|
-
@
|
30
|
-
@
|
26
|
+
@model_attributes = true
|
27
|
+
@clear_cache = false
|
28
|
+
@schema_file_reader = nil
|
29
|
+
@model_file_reader = nil
|
31
30
|
end
|
32
31
|
|
33
32
|
def check_required_settings
|
34
|
-
raise 'schema_file must be specified'if schema_file.nil?
|
35
|
-
raise 'model_dir must be specified'if model_dir.nil?
|
33
|
+
raise 'schema_file must be specified' if schema_file.nil?
|
34
|
+
raise 'model_dir must be specified' if model_dir.nil?
|
35
|
+
end
|
36
|
+
|
37
|
+
def require_active_hash
|
38
|
+
require 'active_hash' if schema_attributes
|
36
39
|
end
|
37
40
|
|
38
41
|
def log_level=(level)
|
39
42
|
Logger_.level = level
|
40
43
|
end
|
41
44
|
|
42
|
-
def active_hash_as_base=(
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
45
|
+
def active_hash_as_base=(arg)
|
46
|
+
Logger_.warn('Deprecation Warning: config option `active_hash_as_base` is now model_attributes')
|
47
|
+
end
|
48
|
+
|
49
|
+
def model_relationships=(arg)
|
50
|
+
Logger_.warn('Deprecation Warning: config option `model_relationships` is now model_attributes')
|
51
|
+
end
|
52
|
+
|
53
|
+
def model_methods=(arg)
|
54
|
+
Logger_.warn('Deprecation Warning: config option `model_methods` is now model_attributes')
|
55
|
+
end
|
56
|
+
|
57
|
+
def mass_assignment=(arg)
|
58
|
+
Logger_.warn('Deprecation Warning: config option `mass_assignment` is now model_attributes')
|
47
59
|
end
|
48
60
|
|
49
61
|
end
|
@@ -2,11 +2,12 @@ module ActiveMocker
|
|
2
2
|
|
3
3
|
class SchemaReader
|
4
4
|
|
5
|
-
attr_reader :model_name, :schema_file, :file_reader, :table
|
5
|
+
attr_reader :model_name, :schema_file, :file_reader, :table, :clear_cache
|
6
6
|
|
7
7
|
def initialize(options={})
|
8
8
|
@file_reader = options[:file_reader] ||= FileReader
|
9
9
|
@schema_file = options[:schema_file]
|
10
|
+
@clear_cache = options[:clear_cache]
|
10
11
|
end
|
11
12
|
|
12
13
|
def search(model_name)
|
@@ -27,6 +28,7 @@ module ActiveMocker
|
|
27
28
|
end
|
28
29
|
|
29
30
|
def search_schema_file
|
31
|
+
ActiveMocker::ActiveRecord::Schema.clear_cache if clear_cache
|
30
32
|
ActiveMocker::ActiveRecord::Schema.search(table_name)
|
31
33
|
@schema_result = eval_file
|
32
34
|
not_found
|
@@ -28,11 +28,9 @@ describe ActiveMocker::Base do
|
|
28
28
|
config.schema_file_reader = schema_file
|
29
29
|
config.model_file_reader = model_file
|
30
30
|
# Additional Options
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
#config.model_methods = true #default
|
35
|
-
#config.mass_assignment = true #default
|
31
|
+
config.schema_attributes = true #default
|
32
|
+
config.model_attributes = true #default
|
33
|
+
config.clear_cache = true #default
|
36
34
|
# Logging
|
37
35
|
config.log_level = Logger::WARN #default
|
38
36
|
end
|
@@ -43,10 +41,6 @@ describe ActiveMocker::Base do
|
|
43
41
|
ActiveMocker.mock('Person')
|
44
42
|
}
|
45
43
|
|
46
|
-
after(:each) do
|
47
|
-
ActiveMocker::Base.reload_default
|
48
|
-
end
|
49
|
-
|
50
44
|
let(:model_file){
|
51
45
|
StringReader.new <<-eos
|
52
46
|
class Person < ActiveRecord::Base
|
@@ -79,24 +73,6 @@ describe ActiveMocker::Base do
|
|
79
73
|
|
80
74
|
end
|
81
75
|
|
82
|
-
describe '#read_attribute' do
|
83
|
-
|
84
|
-
it 'will access attributes' do
|
85
|
-
mock_class.new.read_attribute("800_number")
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
|
-
describe '#write_attribute' do
|
91
|
-
|
92
|
-
it 'will access attributes' do
|
93
|
-
person = mock_class.new
|
94
|
-
person.write_attribute("800_number", 100)
|
95
|
-
expect(person.read_attribute("800_number")).to eq 100
|
96
|
-
end
|
97
|
-
|
98
|
-
end
|
99
|
-
|
100
76
|
describe 'mass_assignment' do
|
101
77
|
|
102
78
|
it "can pass any or all attributes from schema in initializer" do
|
@@ -319,18 +295,7 @@ describe ActiveMocker::Base do
|
|
319
295
|
|
320
296
|
end
|
321
297
|
|
322
|
-
context '
|
323
|
-
|
324
|
-
describe 'true' do
|
325
|
-
|
326
|
-
before(:each) do
|
327
|
-
|
328
|
-
ActiveMocker::Base.configure do |config|
|
329
|
-
config.active_hash_as_base = true
|
330
|
-
end
|
331
|
-
|
332
|
-
end
|
333
|
-
require 'active_hash'
|
298
|
+
context 'active_hash' do
|
334
299
|
|
335
300
|
let(:model_file){
|
336
301
|
StringReader.new <<-eos
|
@@ -374,20 +339,6 @@ describe ActiveMocker::Base do
|
|
374
339
|
expect{mock_class.new.bar}.to raise_error '#bar is not Implemented for Class: PersonMock'
|
375
340
|
end
|
376
341
|
|
377
|
-
end
|
378
|
-
|
379
|
-
describe 'option active_hash_ext' do
|
380
|
-
|
381
|
-
before(:each) do
|
382
|
-
|
383
|
-
ActiveMocker::Base.configure do |config|
|
384
|
-
config.active_hash_as_base = true
|
385
|
-
end
|
386
|
-
|
387
|
-
end
|
388
|
-
|
389
|
-
require 'active_hash'
|
390
|
-
|
391
342
|
let(:model_file){
|
392
343
|
StringReader.new <<-eos
|
393
344
|
class Person < ActiveRecord::Base
|
@@ -404,10 +355,13 @@ describe ActiveMocker::Base do
|
|
404
355
|
|
405
356
|
person = mock_class.create(first_name: 'Justin')
|
406
357
|
|
358
|
+
expect(PersonMock.first.first_name).to eq 'Justin'
|
407
359
|
person.update(first_name: 'Dustin')
|
360
|
+
expect(PersonMock.first.first_name).to eq 'Dustin'
|
408
361
|
|
409
362
|
expect(person.first_name).to eq 'Dustin'
|
410
363
|
|
364
|
+
|
411
365
|
end
|
412
366
|
|
413
367
|
it '::destroy_all' do
|
@@ -434,6 +388,14 @@ describe ActiveMocker::Base do
|
|
434
388
|
expect(mock_class.count).to eq 1
|
435
389
|
end
|
436
390
|
|
391
|
+
it '::find_or_create_by with update' do
|
392
|
+
mock_class.create(first_name: 'dustin')
|
393
|
+
person = mock_class.find_or_create_by(first_name: 'dustin')
|
394
|
+
person.update(last_name: 'Zeisler')
|
395
|
+
expect(mock_class.first.attributes).to eq person.attributes
|
396
|
+
expect(mock_class.count).to eq 1
|
397
|
+
end
|
398
|
+
|
437
399
|
it '::find_or_initialize_by' do
|
438
400
|
person = mock_class.find_or_initialize_by(first_name: 'dustin')
|
439
401
|
expect(person.persisted?).to eq false
|
@@ -446,17 +408,6 @@ describe ActiveMocker::Base do
|
|
446
408
|
mock_class.delete_all
|
447
409
|
end
|
448
410
|
|
449
|
-
end
|
450
|
-
|
451
|
-
describe 'false' do
|
452
|
-
let(:base_options){{active_hash_as_base: false}}
|
453
|
-
|
454
|
-
it 'has object as supper class' do
|
455
|
-
expect(mock_class.superclass.name).to eq 'Object'
|
456
|
-
|
457
|
-
end
|
458
|
-
|
459
|
-
end
|
460
411
|
|
461
412
|
end
|
462
413
|
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_mocker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dustin Zeisler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activerecord
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.1'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: activesupport
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: '4.
|
33
|
+
version: '4.1'
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: '4.
|
40
|
+
version: '4.1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: active_hash
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,20 +108,6 @@ dependencies:
|
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0.6'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: activerecord
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '4.0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '4.0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: sqlite3
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|