mongoid-fixture_set 1.0.0 → 1.1.0

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
2
  SHA1:
3
- metadata.gz: 297ec45702b1e85a83fda02e8be090acaac190ea
4
- data.tar.gz: d6d94d95f55e846592e4db664076c0b9ab0003b5
3
+ metadata.gz: deee45d8bd6cce4b9e484a8adde2467f0d258a28
4
+ data.tar.gz: d0e05c7fa2ce09d4685998e213ab8de144c8a20e
5
5
  SHA512:
6
- metadata.gz: e6f4172a8e2718ff390cab895326a909d9cf3d04b15a087118ccb416a91ad18ad3a80c2efae8173729fbed1390fb69fc171466d12482bb75fca06e68b5975694
7
- data.tar.gz: cda8caed33dd8e1362a503f59e62d249a46e65547c9b987f1455e76438713642c4ea0be9dfaa2348280d7700898fd2e68a8027a3512296ed99fdc0e6c60653ca
6
+ metadata.gz: 95d1a77135689a9bbb3c8e142e43d0e2fd3df43b4f2c15d9b325ab94b8ccff6aacd72039ea867d090cafcd0de29fc2dffa0078a33738581a629120adb369f193
7
+ data.tar.gz: 8cd816d775042c2bda59152ad2fa5cbe475c907e118a3db5fa8510a526cbb5b8c49776640c61309e27582162977321cd027b4282aff5765e72a43a91f9a53749
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2014 Geoffroy Planquart
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -29,6 +29,10 @@ module Mongoid
29
29
  @@cached_fixtures.clear
30
30
  end
31
31
 
32
+ def cache_empty?
33
+ @@cached_fixtures.empty?
34
+ end
35
+
32
36
  def fixture_is_cached?(name)
33
37
  @@cached_fixtures[name]
34
38
  end
@@ -18,8 +18,10 @@ module Mongoid
18
18
  included do
19
19
  class_attribute :fixture_path, :instance_writer => false
20
20
  class_attribute :fixture_set_names
21
+ class_attribute :load_fixtures_once
21
22
 
22
23
  self.fixture_set_names = []
24
+ self.load_fixtures_once = false
23
25
  end
24
26
 
25
27
  module ClassMethods
@@ -63,13 +65,21 @@ module Mongoid
63
65
 
64
66
  def setup_fixtures
65
67
  @fixture_cache = {}
68
+ @@fixtures_loaded ||= false
66
69
 
67
- Mongoid::FixtureSet.reset_cache
68
- @loaded_fixtures = load_fixtures
70
+ if @@fixtures_loaded && self.class.load_fixtures_once && !Mongoid::FixtureSet.cache_empty?
71
+ self.class.fixtures(:all)
72
+ self.loaded_fixtures = Mongoid::FixtureSet.cached_fixtures
73
+ else
74
+ Mongoid::FixtureSet.reset_cache
75
+ self.loaded_fixtures = load_fixtures
76
+ @@fixtures_loaded = true
77
+ @loaded_fixtures
78
+ end
69
79
  end
70
80
 
71
81
  def teardown_fixtures
72
- Mongoid::FixtureSet.reset_cache
82
+ Mongoid::FixtureSet.reset_cache unless self.class.load_fixtures_once
73
83
  end
74
84
 
75
85
  private
@@ -80,7 +90,10 @@ module Mongoid
80
90
  fixture_set_names = self.class.fixture_set_names
81
91
  end
82
92
  fixtures = Mongoid::FixtureSet.create_fixtures(fixture_path, fixture_set_names)
83
- Hash[fixtures.map { |f| [f.name, f] }]
93
+ end
94
+
95
+ def loaded_fixtures=(fixtures)
96
+ @loaded_fixtures = Hash[fixtures.map { |f| [f.name, f] }]
84
97
  end
85
98
  end
86
99
  end
@@ -1,6 +1,6 @@
1
1
  module Mongoid
2
2
  class FixtureSet
3
- VERSION = '1.0.0'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
6
6
 
@@ -0,0 +1,2 @@
1
+ test1:
2
+ value: <%= count.to_s %>
@@ -0,0 +1,6 @@
1
+ class Test
2
+ include Mongoid::Document
3
+
4
+ field :value
5
+ end
6
+
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ class LoadOnceTest < BaseTest
4
+ include Mongoid::FixtureSet::TestHelper
5
+ self.fixture_path = 'test/load_once_fixtures'
6
+ self.load_fixtures_once = true
7
+
8
+ class_attribute :count
9
+ self.count = 0
10
+
11
+ module FixtureLoadCount
12
+ def count
13
+ LoadOnceTest.count += 1
14
+ end
15
+ end
16
+ Mongoid::FixtureSet.context_class.send :include, FixtureLoadCount
17
+
18
+ def teardown
19
+ end
20
+
21
+ def count_equal_1
22
+ assert_equal 1, self.class.count
23
+ begin
24
+ tests(:test1)
25
+ assert true
26
+ rescue => e
27
+ assert false, "#{e}\n#{e.backtrace.join("\n")}"
28
+ end
29
+ end
30
+
31
+ 5.times do |i|
32
+ alias_method "test_load_once_#{i}", :count_equal_1
33
+ end
34
+ end
35
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-fixture_set
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoffroy Planquart
@@ -59,21 +59,24 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - lib/mongoid/fixture_set/version.rb
63
62
  - lib/mongoid/fixture_set/errors.rb
64
63
  - lib/mongoid/fixture_set/file.rb
65
64
  - lib/mongoid/fixture_set/class_cache.rb
66
- - lib/mongoid/fixture_set/test_helper.rb
67
65
  - lib/mongoid/fixture_set/fixture.rb
66
+ - lib/mongoid/fixture_set/version.rb
67
+ - lib/mongoid/fixture_set/test_helper.rb
68
68
  - lib/mongoid/fixture_set.rb
69
69
  - lib/mongoid-fixture_set.rb
70
+ - MIT-LICENSE
70
71
  - Rakefile
71
72
  - test/mongoid/fixtures_test.rb
72
73
  - test/mongoid/fixture_set_test.rb
74
+ - test/mongoid/load_once_test.rb
73
75
  - test/models/group.rb
74
76
  - test/models/organisation.rb
75
77
  - test/models/school.rb
76
78
  - test/models/user.rb
79
+ - test/models/test.rb
77
80
  - test/mongoid.yml
78
81
  - test/fixtures/users.yml
79
82
  - test/fixtures/groups.yml
@@ -82,6 +85,7 @@ files:
82
85
  - test/fixtures/users/family.yml
83
86
  - test/fixtures/not_models.yml
84
87
  - test/test_helper.rb
88
+ - test/load_once_fixtures/tests.yml
85
89
  homepage: https://github.com/Aethelflaed/mongoid-fixture_set
86
90
  licenses:
87
91
  - MIT
@@ -109,10 +113,12 @@ summary: Fixtures for Mongoid
109
113
  test_files:
110
114
  - test/mongoid/fixtures_test.rb
111
115
  - test/mongoid/fixture_set_test.rb
116
+ - test/mongoid/load_once_test.rb
112
117
  - test/models/group.rb
113
118
  - test/models/organisation.rb
114
119
  - test/models/school.rb
115
120
  - test/models/user.rb
121
+ - test/models/test.rb
116
122
  - test/mongoid.yml
117
123
  - test/fixtures/users.yml
118
124
  - test/fixtures/groups.yml
@@ -121,4 +127,5 @@ test_files:
121
127
  - test/fixtures/users/family.yml
122
128
  - test/fixtures/not_models.yml
123
129
  - test/test_helper.rb
130
+ - test/load_once_fixtures/tests.yml
124
131
  has_rdoc: