active_mocker 1.0.1 → 1.1.0
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 +31 -0
- data/lib/active_hash/ar_api.rb +23 -0
- data/lib/active_hash/destroy_all.rb +15 -0
- data/lib/active_hash/update.rb +18 -0
- data/lib/active_mocker/base.rb +3 -1
- data/lib/active_mocker/config.rb +4 -1
- data/lib/active_mocker/version.rb +1 -1
- data/spec/lib/active_mocker/base_spec.rb +51 -1
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a2d0fbaa263f4bf728b582647aa394985806039
|
4
|
+
data.tar.gz: 5a84ca50696981332659a1d8094d07fdf142ea5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57a40c13c1b67286ddfb54f8dbdb3674862e5bc64918157c47a1d9b5db1202aafb0b89d477d9ecc384de61f9362eb55a68b53959bfeaa3d7e760c69af0a4ffb1
|
7
|
+
data.tar.gz: 98ff48e063e348392e7311a47ed5c0f023faae5c2edc1e6bc3d27f90abd847375131da70b9c85fa7c08430fea942ac06c36d91334689c66326febc5f56558f31
|
data/README.md
CHANGED
@@ -57,6 +57,7 @@ Or install it yourself as:
|
|
57
57
|
config.model_file_reader = model_file
|
58
58
|
# Additional Options
|
59
59
|
config.active_hash_as_base = false #default
|
60
|
+
config.active_hash_ext = false #default
|
60
61
|
config.schema_attributes = true #default
|
61
62
|
config.model_relationships = true #default
|
62
63
|
config.model_methods = true #default
|
@@ -171,6 +172,36 @@ ActiveHash is a simple base class that allows you to use a ruby hash as a readon
|
|
171
172
|
dustin.save
|
172
173
|
=> true
|
173
174
|
|
175
|
+
### Additional ActiveHash extentions
|
176
|
+
|
177
|
+
ActiveMocker::Base.configure do |config|
|
178
|
+
config.active_hash_as_base = true
|
179
|
+
config.active_hash_ext = true
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
#update method
|
184
|
+
|
185
|
+
person = PersonMock.create(first_name: 'Justin')
|
186
|
+
|
187
|
+
person.update(first_name: 'Dustin')
|
188
|
+
|
189
|
+
person.first_name
|
190
|
+
=> 'Dustin'
|
191
|
+
|
192
|
+
|
193
|
+
::destroy_all
|
194
|
+
|
195
|
+
mock_class.create
|
196
|
+
|
197
|
+
mock_class.count
|
198
|
+
=> 1
|
199
|
+
|
200
|
+
mock_class.destroy_all
|
201
|
+
|
202
|
+
mock_class.count
|
203
|
+
=> 0
|
204
|
+
|
174
205
|
### Known Limitations
|
175
206
|
|
176
207
|
::mock model names and table names must follow the default ActiveRecord naming pattern.
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative 'destroy_all'
|
2
|
+
require_relative 'update'
|
3
|
+
|
4
|
+
module ActiveHash
|
5
|
+
|
6
|
+
module ARApi
|
7
|
+
|
8
|
+
include ARApi::Update
|
9
|
+
|
10
|
+
def self.included(base)
|
11
|
+
base.extend(ClassMethods)
|
12
|
+
end
|
13
|
+
|
14
|
+
module ClassMethods
|
15
|
+
include ARApi::DestroyAll
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
|
data/lib/active_mocker/base.rb
CHANGED
@@ -12,7 +12,8 @@ module ActiveMocker
|
|
12
12
|
:model_dir,
|
13
13
|
:schema_file,
|
14
14
|
:model_file_reader,
|
15
|
-
:schema_file_reader
|
15
|
+
:schema_file_reader,
|
16
|
+
:active_hash_ext
|
16
17
|
|
17
18
|
attr_reader :model_name, :klass
|
18
19
|
|
@@ -163,6 +164,7 @@ module ActiveMocker
|
|
163
164
|
def const_class
|
164
165
|
remove_const(mock_class_name) if class_exists? mock_class_name
|
165
166
|
klass = Object.const_set(mock_class_name ,Class.new(ActiveHash::Base)) if active_hash_as_base
|
167
|
+
klass.send(:include, ActiveHash::ARApi) if active_hash_ext
|
166
168
|
klass = Object.const_set(mock_class_name ,Class.new()) unless active_hash_as_base
|
167
169
|
klass.extend ModelClassMethods
|
168
170
|
klass.send(:include, ModelInstanceMethods) # is a private method for ruby 2.0.0
|
data/lib/active_mocker/config.rb
CHANGED
@@ -11,7 +11,9 @@ module ActiveMocker
|
|
11
11
|
:model_methods,
|
12
12
|
:mass_assignment,
|
13
13
|
:schema_file_reader,
|
14
|
-
:model_file_reader
|
14
|
+
:model_file_reader,
|
15
|
+
:active_hash_ext
|
16
|
+
|
15
17
|
|
16
18
|
def config
|
17
19
|
@@first_load ||= reload_default
|
@@ -27,6 +29,7 @@ module ActiveMocker
|
|
27
29
|
@model_relationships = true
|
28
30
|
@model_methods = true
|
29
31
|
@mass_assignment = true
|
32
|
+
@active_hash_ext = false
|
30
33
|
@log_level = Logger::WARN
|
31
34
|
end
|
32
35
|
|
@@ -13,6 +13,7 @@ require 'active_mocker/schema_reader'
|
|
13
13
|
require 'active_mocker/active_record/schema'
|
14
14
|
require 'active_mocker/base'
|
15
15
|
require 'active_support/all'
|
16
|
+
require 'active_hash/ar_api'
|
16
17
|
|
17
18
|
describe ActiveMocker::Base do
|
18
19
|
|
@@ -271,7 +272,7 @@ describe ActiveMocker::Base do
|
|
271
272
|
eos
|
272
273
|
}
|
273
274
|
|
274
|
-
it 'uses
|
275
|
+
it 'uses active_hash::base as superclass' do
|
275
276
|
expect(mock_class.superclass.name).to eq 'ActiveHash::Base'
|
276
277
|
end
|
277
278
|
|
@@ -303,6 +304,55 @@ describe ActiveMocker::Base do
|
|
303
304
|
|
304
305
|
end
|
305
306
|
|
307
|
+
describe 'option active_hash_ext' do
|
308
|
+
|
309
|
+
before(:each) do
|
310
|
+
|
311
|
+
ActiveMocker::Base.configure do |config|
|
312
|
+
config.active_hash_as_base = true
|
313
|
+
config.active_hash_ext = true
|
314
|
+
end
|
315
|
+
|
316
|
+
end
|
317
|
+
|
318
|
+
require 'active_hash'
|
319
|
+
|
320
|
+
let(:model_file){
|
321
|
+
StringReader.new <<-eos
|
322
|
+
class Person < ActiveRecord::Base
|
323
|
+
belongs_to :account
|
324
|
+
|
325
|
+
def bar
|
326
|
+
end
|
327
|
+
|
328
|
+
end
|
329
|
+
eos
|
330
|
+
}
|
331
|
+
|
332
|
+
it '#update' do
|
333
|
+
|
334
|
+
person = mock_class.create(first_name: 'Justin')
|
335
|
+
|
336
|
+
person.update(first_name: 'Dustin')
|
337
|
+
|
338
|
+
expect(person.first_name).to eq 'Dustin'
|
339
|
+
|
340
|
+
end
|
341
|
+
|
342
|
+
it '::destroy_all' do
|
343
|
+
|
344
|
+
mock_class.create
|
345
|
+
|
346
|
+
expect(mock_class.count).to eq 1
|
347
|
+
|
348
|
+
mock_class.destroy_all
|
349
|
+
|
350
|
+
expect(mock_class.count).to eq 0
|
351
|
+
|
352
|
+
end
|
353
|
+
|
354
|
+
end
|
355
|
+
|
306
356
|
describe 'false' do
|
307
357
|
let(:base_options){{active_hash_as_base: false}}
|
308
358
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_mocker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dustin Zeisler
|
@@ -110,6 +110,9 @@ files:
|
|
110
110
|
- README.md
|
111
111
|
- Rakefile
|
112
112
|
- active_mocker.gemspec
|
113
|
+
- lib/active_hash/ar_api.rb
|
114
|
+
- lib/active_hash/destroy_all.rb
|
115
|
+
- lib/active_hash/update.rb
|
113
116
|
- lib/active_mocker.rb
|
114
117
|
- lib/active_mocker/active_record.rb
|
115
118
|
- lib/active_mocker/active_record/relationships.rb
|