fixture_box 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/lib/fixture_box.rb +16 -4
- data/lib/fixture_box/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b7c97890a0ad1fa960247ad41245def5db7f6b3b7036d17936538255fcdcc57
|
4
|
+
data.tar.gz: b3a58fcf473b8b8a2242f19bacf9b18b2680c69dc6b6e4b6a9f9daa0426c7055
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 693099cb7e305d11e0c6260a1f9b8a3aed181c3e34edc08ea7b3b5f97c10c3656a7180bd419282e020d2da7e44fe55fe7626372bad013e1b5141560ac760cacf
|
7
|
+
data.tar.gz: 784dffda5d42a5c6f4548e2b1a524848c4e3176700fce3d7a9e9c2f81ec1f71375cb40fd067d7e3f137f940caba5eb0da58520f4a99baaa1a51d226bccc8e52a
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# FixtureBox
|
2
|
-
|
2
|
+
Dynamically creating ActiveRecord Fixtures.
|
3
3
|
|
4
4
|
## Usage
|
5
5
|
|
@@ -59,12 +59,15 @@ assert_equal 'Wagahai wa Neko de Aru', @fixture_box.books(:wagahai_wa_neko_de_ar
|
|
59
59
|
assert_equal 'Natsume Soseki', @fixture_box.books(:wagahai_wa_neko_de_aru).author.name
|
60
60
|
|
61
61
|
# Set the model class
|
62
|
+
assert_equal 'application/zip', @fixture_box.book_files(:wagahai_wa_neko_de_aru_zip).content_type
|
62
63
|
assert_equal %w(application/zip application/x-expandedbook), @fixture_box.books(:wagahai_wa_neko_de_aru).files.pluck(:content_type)
|
63
64
|
|
64
65
|
# Get all instances
|
65
66
|
assert_equal ['Wagahai wa Neko de Aru', 'Ame ni mo Makezu'], @fixture_box.books.map(&:name)
|
66
67
|
```
|
67
68
|
|
69
|
+
See more at `test/fixture_box_test.rb`
|
70
|
+
|
68
71
|
## Installation
|
69
72
|
Add this line to your application's Gemfile:
|
70
73
|
|
data/lib/fixture_box.rb
CHANGED
@@ -13,7 +13,7 @@ class FixtureBox
|
|
13
13
|
decorated_class_names = {}
|
14
14
|
data.each do |fixture_set_name, fixture_data|
|
15
15
|
fixture_class = class_names[fixture_set_name] || fixture_set_name.to_s.classify.constantize
|
16
|
-
decorated_fixture_set_name = fixture_set_name
|
16
|
+
decorated_fixture_set_name = decorate_fixture_set_name(fixture_set_name)
|
17
17
|
|
18
18
|
decorated_fixture_set_names << decorated_fixture_set_name
|
19
19
|
decorated_class_names[decorated_fixture_set_name] = fixture_class
|
@@ -31,10 +31,22 @@ class FixtureBox
|
|
31
31
|
|
32
32
|
private
|
33
33
|
|
34
|
+
def fixture_set_name_prefix
|
35
|
+
"fixture_box:#{object_id}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def decorate_fixture_set_name(fixture_set_name)
|
39
|
+
"#{fixture_set_name_prefix}:#{fixture_set_name}"
|
40
|
+
end
|
41
|
+
|
42
|
+
def accessor_name(decorated_fixture_set_name)
|
43
|
+
decorated_fixture_set_name.match(/^#{fixture_set_name_prefix}:(.+)$/).captures.first
|
44
|
+
end
|
45
|
+
|
34
46
|
def setup_fixture_accessors
|
35
|
-
@loaded_fixture_sets.each do |
|
36
|
-
define_singleton_method(
|
37
|
-
fixture_names = @loaded_fixture_sets[
|
47
|
+
@loaded_fixture_sets.each do |decorated_fixture_set_name, fixture_set|
|
48
|
+
define_singleton_method(accessor_name(decorated_fixture_set_name)) do |*fixture_names|
|
49
|
+
fixture_names = @loaded_fixture_sets[decorated_fixture_set_name].fixtures.keys if fixture_names.empty?
|
38
50
|
|
39
51
|
instances = fixture_names.map do |fixture_name|
|
40
52
|
fixture_set[fixture_name.to_s].find
|
data/lib/fixture_box/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixture_box
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takeyu Web Inc.
|
@@ -38,7 +38,7 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
description: Dynamically creating
|
41
|
+
description: Dynamically creating ActiveRecord Fixtures.
|
42
42
|
email:
|
43
43
|
- yuichi.takeuchi@takeyuweb.co.jp
|
44
44
|
executables: []
|
@@ -74,5 +74,5 @@ rubyforge_project:
|
|
74
74
|
rubygems_version: 2.7.3
|
75
75
|
signing_key:
|
76
76
|
specification_version: 4
|
77
|
-
summary: Dynamically creating
|
77
|
+
summary: Dynamically creating ActiveRecord Fixtures.
|
78
78
|
test_files: []
|