mongoid-fixture_set 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 297ec45702b1e85a83fda02e8be090acaac190ea
4
+ data.tar.gz: d6d94d95f55e846592e4db664076c0b9ab0003b5
5
+ SHA512:
6
+ metadata.gz: e6f4172a8e2718ff390cab895326a909d9cf3d04b15a087118ccb416a91ad18ad3a80c2efae8173729fbed1390fb69fc171466d12482bb75fca06e68b5975694
7
+ data.tar.gz: cda8caed33dd8e1362a503f59e62d249a46e65547c9b987f1455e76438713642c4ea0be9dfaa2348280d7700898fd2e68a8027a3512296ed99fdc0e6c60653ca
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+ require "rake/testtask"
4
+
5
+ desc 'Default: run unit tests'
6
+ task :default => :test
7
+
8
+ desc 'Run tests'
9
+ Rake::TestTask.new(:test) do |t|
10
+ t.libs << 'lib'
11
+ t.libs << 'test'
12
+ t.pattern = 'test/**/*_test.rb'
13
+ t.verbose = true
14
+ end
15
+
@@ -0,0 +1,2 @@
1
+ require 'mongoid/fixture_set'
2
+
@@ -0,0 +1,242 @@
1
+ require 'mongoid/fixture_set/fixture'
2
+ require 'mongoid/fixture_set/file'
3
+ require 'mongoid/fixture_set/class_cache'
4
+ require 'mongoid/fixture_set/test_helper'
5
+
6
+ require 'active_support/core_ext/digest/uuid'
7
+
8
+ module Mongoid
9
+ class FixtureSet
10
+ @@cached_fixtures = Hash.new
11
+
12
+ cattr_accessor :all_loaded_fixtures
13
+ self.all_loaded_fixtures = {}
14
+
15
+ class << self
16
+ def context_class
17
+ @context_class ||= Class.new
18
+ end
19
+
20
+ def cached_fixtures(keys_to_fetch = nil)
21
+ if keys_to_fetch
22
+ @@cached_fixtures.values_at(*keys_to_fetch)
23
+ else
24
+ @@cached_fixtures.values
25
+ end
26
+ end
27
+
28
+ def reset_cache
29
+ @@cached_fixtures.clear
30
+ end
31
+
32
+ def fixture_is_cached?(name)
33
+ @@cached_fixtures[name]
34
+ end
35
+
36
+ def cache_fixtures(fixtures_map)
37
+ @@cached_fixtures.update(fixtures_map)
38
+ end
39
+
40
+ def default_fixture_model_name(fixture_set_name)
41
+ fixture_set_name.singularize.camelize
42
+ end
43
+
44
+ def update_all_loaded_fixtures(fixtures_map)
45
+ all_loaded_fixtures.update(fixtures_map)
46
+ end
47
+
48
+ def create_fixtures(fixtures_directory, fixture_set_names, class_names = {})
49
+ fixture_set_names = Array(fixture_set_names).map(&:to_s)
50
+ class_names = ClassCache.new(class_names)
51
+
52
+ files_to_read = fixture_set_names.reject { |fs_name|
53
+ fixture_is_cached?(fs_name)
54
+ }
55
+
56
+ if files_to_read.empty?
57
+ return cached_fixtures(fixture_set_names)
58
+ end
59
+
60
+ fixtures_map = {}
61
+ fixture_sets = files_to_read.map do |fs_name|
62
+ klass = class_names[fs_name]
63
+ fixtures_map[fs_name] = Mongoid::FixtureSet.new(
64
+ fs_name,
65
+ klass,
66
+ ::File.join(fixtures_directory, fs_name))
67
+ end
68
+
69
+ update_all_loaded_fixtures fixtures_map
70
+
71
+ fixture_sets.each do |fs|
72
+ fs.collection_documents.each do |model, documents|
73
+ model = class_names[model]
74
+ if model
75
+ documents.each do |attributes|
76
+ create_or_update_document(model, attributes)
77
+ end
78
+ end
79
+ end
80
+ end
81
+
82
+ cache_fixtures(fixtures_map)
83
+
84
+ return cached_fixtures(fixture_set_names)
85
+ end
86
+
87
+ def create_or_update_document(model, attributes)
88
+ document = model.find_or_initialize_by('_id' => attributes['_id'])
89
+ keys = (attributes.keys + document.attributes.keys).uniq
90
+ attrs = Hash[keys.collect do |key|
91
+ if attributes[key].is_a?(Array) || document.attributes[key].is_a?(Array)
92
+ value = [attributes[key], document.attributes[key]].flatten(1).compact
93
+ else
94
+ value = attributes[key] || document.attributes[key]
95
+ end
96
+ [key, value]
97
+ end]
98
+ document.assign_attributes(attrs)
99
+ document.save(validate: false)
100
+ end
101
+
102
+ # Returns a consistent, platform-independent identifier for +label+.
103
+ # UUIDs are RFC 4122 version 5 SHA-1 hashes.
104
+ def identify(model, label)
105
+ Digest::UUID.uuid_v5(Digest::UUID::OID_NAMESPACE, "#{model}##{label}")
106
+ end
107
+ end
108
+
109
+ attr_reader :name, :path, :model_class, :class_name
110
+ attr_reader :fixtures
111
+
112
+ def initialize(name, class_name, path)
113
+ @name = name
114
+ @path = path
115
+
116
+ if class_name.is_a?(Class)
117
+ @model_class = class_name
118
+ elsif class_name
119
+ @model_class = class_name.safe_constantize
120
+ end
121
+
122
+ @class_name = @model_class.respond_to?(:name) ?
123
+ @model_class.name :
124
+ self.class.default_fixture_model_name(name)
125
+
126
+ @fixtures = read_fixture_files
127
+ end
128
+
129
+ def [](x)
130
+ fixtures[x]
131
+ end
132
+
133
+ # Returns a hash of documents to be inserted. The key is the model class, the value is
134
+ # a list of documents to insert in th relative collection.
135
+ def collection_documents
136
+ # allow a standard key to be used for doing defaults in YAML
137
+ fixtures.delete('DEFAULTS')
138
+
139
+ # track any join collection we need to insert later
140
+ documents = Hash.new
141
+
142
+ documents[class_name] = fixtures.map do |label, fixture|
143
+ attributes = fixture.to_hash
144
+
145
+ next attributes if model_class.nil?
146
+
147
+ set_attributes_timestamps(attributes, model_class)
148
+
149
+ # interpolate the fixture label
150
+ attributes.each do |key, value|
151
+ attributes[key] = value.gsub("$LABEL", label) if value.is_a?(String)
152
+ end
153
+
154
+ attributes['_id'] = self.class.identify(class_name, label)
155
+
156
+ model_class.relations.each do |name, relation|
157
+ case relation.macro
158
+ when :belongs_to
159
+ if value = attributes.delete(relation.name.to_s)
160
+ id = self.class.identify(relation.class_name, value)
161
+ if relation.polymorphic? && value.sub!(/\s*\(([^)]*)\)\s*/, '')
162
+ type = $1
163
+ attributes[relation.foreign_key.sub(/_id$/, '_type')] = type
164
+ id = self.class.identify(type, value)
165
+ end
166
+ attributes[relation.foreign_key] = id
167
+ end
168
+ when :has_many
169
+ if values = attributes.delete(relation.name.to_s)
170
+ values.each do |value|
171
+ id = self.class.identify(relation.class_name, value)
172
+ if relation.polymorphic?
173
+ self.class.create_or_update_document(relation.class_name.constantize, {
174
+ '_id' => id,
175
+ "#{relation.as}_id" => attributes['_id'],
176
+ "#{relation.as}_type" => model_class.name,
177
+ })
178
+ else
179
+ self.class.create_or_update_document(relation.class_name.constantize, {
180
+ '_id' => id,
181
+ relation.foreign_key => attributes['_id'],
182
+ })
183
+ end
184
+ end
185
+ end
186
+ when :has_and_belongs_to_many
187
+ if values = attributes.delete(relation.name.to_s)
188
+ key = "#{relation.name.to_s.singularize}_ids"
189
+ attributes[key] = []
190
+
191
+ values.each do |value|
192
+ id = self.class.identify(relation.class_name, value)
193
+ attributes[key] << id
194
+
195
+ self.class.create_or_update_document(relation.class_name.constantize, {
196
+ '_id' => id,
197
+ relation.inverse_foreign_key => [attributes['_id']]
198
+ })
199
+ end
200
+ end
201
+ end
202
+ end
203
+
204
+ attributes
205
+ end
206
+
207
+ return documents
208
+ end
209
+
210
+ private
211
+ def set_attributes_timestamps(attributes, model_class)
212
+ now = Time.now.utc
213
+
214
+ if model_class < Mongoid::Timestamps::Created::Short
215
+ attributes['c_at'] = now unless attributes.has_key?('c_at')
216
+ elsif model_class < Mongoid::Timestamps::Created
217
+ attributes['created_at'] = now unless attributes.has_key?('created_at')
218
+ end
219
+
220
+ if model_class < Mongoid::Timestamps::Updated::Short
221
+ attributes['u_at'] = now unless attributes.has_key?('u_at')
222
+ elsif model_class < Mongoid::Timestamps::Updated
223
+ attributes['updated_at'] = now unless attributes.has_key?('updated_at')
224
+ end
225
+ end
226
+
227
+ def read_fixture_files
228
+ yaml_files = Dir["#{path}/{**,*}/*.yml"].select { |f|
229
+ ::File.file?(f)
230
+ } + ["#{path}.yml"]
231
+
232
+ yaml_files.each_with_object({}) do |file, fixtures|
233
+ Mongoid::FixtureSet::File.open(file) do |fh|
234
+ fh.each do |fixture_name, row|
235
+ fixtures[fixture_name] = Mongoid::FixtureSet::Fixture.new(fixture_name, row, model_class)
236
+ end
237
+ end
238
+ end
239
+ end
240
+ end
241
+ end
242
+
@@ -0,0 +1,29 @@
1
+ class ClassCache
2
+ def initialize(class_names)
3
+ @class_names = class_names.stringify_keys
4
+ # Remove string values that aren't constants or subclasses of Mongoid::Document
5
+ @class_names.delete_if { |klass_name, klass| !insert_class(@class_names, klass_name, klass) }
6
+ end
7
+
8
+ def [](fs_name)
9
+ @class_names.fetch(fs_name) {
10
+ klass = default_fixture_model(fs_name).safe_constantize
11
+ insert_class(@class_names, fs_name, klass)
12
+ }
13
+ end
14
+
15
+ private
16
+ def insert_class(class_names, name, klass)
17
+ # We only want to deal with Mongoid objects.
18
+ if klass && klass < Mongoid::Document
19
+ class_names[name] = klass
20
+ else
21
+ class_names[name] = nil
22
+ end
23
+ end
24
+
25
+ def default_fixture_model(fs_name)
26
+ Mongoid::FixtureSet.default_fixture_model_name(fs_name)
27
+ end
28
+ end
29
+
@@ -0,0 +1,13 @@
1
+ module Mongoid
2
+ class FixtureSet
3
+ class FixtureError < Mongoid::Errors::MongoidError
4
+ end
5
+
6
+ class FormatError < FixtureError
7
+ end
8
+
9
+ class FixtureClassNotFound < FixtureError
10
+ end
11
+ end
12
+ end
13
+
@@ -0,0 +1,61 @@
1
+ require 'erb'
2
+ require 'yaml'
3
+
4
+ module Mongoid
5
+ class FixtureSet
6
+
7
+ class RenderContext
8
+ def self.create_subclass
9
+ Class.new Mongoid::FixtureSet.context_class do
10
+ def get_binding
11
+ binding()
12
+ end
13
+ end
14
+ end
15
+ end
16
+
17
+ class Mongoid::FixtureSet::File # :nodoc:
18
+ include Enumerable
19
+
20
+ def self.open(file)
21
+ x = new file
22
+ block_given? ? yield(x) : x
23
+ end
24
+
25
+ def initialize(file)
26
+ @file = file
27
+ @rows = nil
28
+ end
29
+
30
+ def each(&block)
31
+ rows.each(&block)
32
+ end
33
+
34
+ private
35
+ def rows
36
+ return @rows if @rows
37
+ begin
38
+ data = YAML.load(render(IO.read(@file)))
39
+ rescue ArgumentError, Psych::SyntaxError => error
40
+ raise FormatError, "a YAML error occurred parsing #{@file}. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html\nThe exact error was:\n #{error.class}: #{error}", error.backtrace
41
+ end
42
+ @rows = data ? validate(data).to_a : []
43
+ end
44
+
45
+ def render(content)
46
+ context = RenderContext.create_subclass.new
47
+ ERB.new(content).result(context.get_binding)
48
+ end
49
+
50
+ # Validate our unmarshalled data.
51
+ def validate(data)
52
+ unless Hash === data || YAML::Omap === data
53
+ raise FormatError, 'fixture is not a hash'
54
+ end
55
+ raise FormatError unless data.all? { |name, row| Hash === row }
56
+ data
57
+ end
58
+ end
59
+ end
60
+ end
61
+
@@ -0,0 +1,41 @@
1
+ require 'mongoid/fixture_set/errors'
2
+
3
+ module Mongoid
4
+ class FixtureSet
5
+ class Fixture
6
+ include Enumerable
7
+
8
+ attr_reader :name, :fixture, :model_class
9
+ def initialize(name, fixture, model_class)
10
+ @name = name
11
+ @fixture = fixture
12
+ @model_class = model_class
13
+ end
14
+
15
+ def class_name
16
+ model_class.name if model_class
17
+ end
18
+
19
+ def each
20
+ fixture.each { |item| yield item }
21
+ end
22
+
23
+ def [](key)
24
+ fixture[key]
25
+ end
26
+
27
+ alias :to_hash :fixture
28
+
29
+ def find
30
+ if model_class
31
+ model_class.unscoped do
32
+ model_class.find(Mongoid::FixtureSet.identify(model_class, name))
33
+ end
34
+ else
35
+ raise FixtureClassNotFound, "No class attached to find."
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+
@@ -0,0 +1,88 @@
1
+ require 'active_support/concern'
2
+
3
+ module Mongoid
4
+ class FixtureSet
5
+ module TestHelper
6
+ extend ActiveSupport::Concern
7
+
8
+ def before_setup
9
+ setup_fixtures
10
+ super
11
+ end
12
+
13
+ def after_teardown
14
+ super
15
+ teardown_fixtures
16
+ end
17
+
18
+ included do
19
+ class_attribute :fixture_path, :instance_writer => false
20
+ class_attribute :fixture_set_names
21
+
22
+ self.fixture_set_names = []
23
+ end
24
+
25
+ module ClassMethods
26
+ def fixtures(*fixture_set_names)
27
+ if fixture_set_names.first == :all
28
+ fixture_set_names = Dir["#{fixture_path}/{**,*}/*.{yml}"]
29
+ fixture_set_names.map! { |f| f[(fixture_path.to_s.size + 1)..-5] }
30
+ else
31
+ fixture_set_names = fixture_set_names.flatten.map(&:to_s)
32
+ end
33
+ self.fixture_set_names |= fixture_set_names
34
+ setup_fixture_accessors(fixture_set_names)
35
+ end
36
+
37
+ def setup_fixture_accessors(fixture_set_names = nil)
38
+ fixture_set_names = Array(fixture_set_names || self.fixture_set_names)
39
+ methods = Module.new do
40
+ fixture_set_names.each do |fs_name|
41
+ fs_name = fs_name.to_s
42
+ accessor_name = fs_name.tr('/', '_').to_sym
43
+ define_method(accessor_name) do |*fixture_names|
44
+ force_reload = fixture_names.pop if fixture_names.last == true || fixture_names.last == :reload
45
+ @fixture_cache[fs_name] ||= {}
46
+ instances = fixture_names.map do |f_name|
47
+ f_name = f_name.to_s
48
+ @fixture_cache[fs_name].delete(f_name) if force_reload
49
+ if @loaded_fixtures[fs_name] && @loaded_fixtures[fs_name][f_name]
50
+ @fixture_cache[fs_name][f_name] ||= @loaded_fixtures[fs_name][f_name].find
51
+ else
52
+ raise StandardError, "No fixture named '#{f_name}' found for fixture set '#{fs_name}'"
53
+ end
54
+ end
55
+ instances.size == 1 ? instances.first : instances
56
+ end
57
+ private accessor_name
58
+ end
59
+ end
60
+ include methods
61
+ end
62
+ end
63
+
64
+ def setup_fixtures
65
+ @fixture_cache = {}
66
+
67
+ Mongoid::FixtureSet.reset_cache
68
+ @loaded_fixtures = load_fixtures
69
+ end
70
+
71
+ def teardown_fixtures
72
+ Mongoid::FixtureSet.reset_cache
73
+ end
74
+
75
+ private
76
+ def load_fixtures
77
+ fixture_set_names = self.class.fixture_set_names
78
+ if fixture_set_names.empty?
79
+ self.class.fixtures(:all)
80
+ fixture_set_names = self.class.fixture_set_names
81
+ end
82
+ fixtures = Mongoid::FixtureSet.create_fixtures(fixture_path, fixture_set_names)
83
+ Hash[fixtures.map { |f| [f.name, f] }]
84
+ end
85
+ end
86
+ end
87
+ end
88
+
@@ -0,0 +1,6 @@
1
+ module Mongoid
2
+ class FixtureSet
3
+ VERSION = '1.0.0'
4
+ end
5
+ end
6
+
@@ -0,0 +1,11 @@
1
+ sudoers:
2
+ name: Sudoers!
3
+ something: orga1 (Organisation)
4
+ print:
5
+ name: Print
6
+ users:
7
+ - user1
8
+ group1:
9
+ name: Margot
10
+ main_users:
11
+ - user1
@@ -0,0 +1,2 @@
1
+ error:
2
+ name: Does not exist?
@@ -0,0 +1,4 @@
1
+ orga1:
2
+ name: <%= '1 Organisation' %>
3
+ groups:
4
+ - print
@@ -0,0 +1,9 @@
1
+ school:
2
+ name: School
3
+ groups:
4
+ - group1
5
+ <% 5.times do |i| %>
6
+ school<%= i %>:
7
+ name: School <%= i %>
8
+ <% end %>
9
+
@@ -0,0 +1,9 @@
1
+ geoffroy:
2
+ firstname: Geoffroy
3
+ lastname: Planquart
4
+ main_group: sudoers
5
+ groups:
6
+ - print
7
+ user1:
8
+ firstname: Margot
9
+ lastname: Last
@@ -0,0 +1,4 @@
1
+ dad:
2
+ firstname: Dad
3
+ mom:
4
+ firstname: Mom
@@ -0,0 +1,13 @@
1
+ class Group
2
+ include Mongoid::Document
3
+ include Mongoid::Timestamps::Created::Short
4
+
5
+ field :name
6
+
7
+ has_many :main_users, class_name: 'User', inverse_of: :main_group
8
+
9
+ has_and_belongs_to_many :users
10
+
11
+ belongs_to :something, polymorphic: true
12
+ end
13
+
@@ -0,0 +1,9 @@
1
+ class Organisation
2
+ include Mongoid::Document
3
+ include Mongoid::Timestamps::Created
4
+
5
+ field :name
6
+
7
+ has_many :groups, as: :something
8
+ end
9
+
@@ -0,0 +1,9 @@
1
+ class School
2
+ include Mongoid::Document
3
+ include Mongoid::Timestamps::Updated
4
+
5
+ field :name
6
+
7
+ has_many :groups, as: :something
8
+ end
9
+
@@ -0,0 +1,12 @@
1
+ class User
2
+ include Mongoid::Document
3
+ include Mongoid::Timestamps::Updated::Short
4
+
5
+ field :firstname
6
+ field :lastname
7
+
8
+ belongs_to :main_group, class_name: 'Group', inverse_of: :main_users
9
+
10
+ has_and_belongs_to_many :groups
11
+ end
12
+
data/test/mongoid.yml ADDED
@@ -0,0 +1,6 @@
1
+ test:
2
+ sessions:
3
+ default:
4
+ database: mongoid_fixture_set_test
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,72 @@
1
+ require 'test_helper'
2
+ require 'pry'
3
+
4
+ module Mongoid
5
+ class FixtureSetTest < BaseTest
6
+ def test_should_initialize_fixture_set
7
+ Mongoid::FixtureSet.reset_cache
8
+ fs = Mongoid::FixtureSet.new('users', 'User', 'test/fixtures/users')
9
+ assert_equal User, fs.model_class
10
+ fixture = fs['geoffroy']
11
+ assert_equal 'User', fixture.class_name
12
+ assert_equal 'Geoffroy', fixture['firstname']
13
+ assert_equal 'Planquart', fixture['lastname']
14
+ end
15
+
16
+ def test_should_not_create_fixtures
17
+ Mongoid::FixtureSet.reset_cache
18
+ fs = Mongoid::FixtureSet.create_fixtures('test/fixtures/', [])
19
+ assert_equal 0, fs.count
20
+ end
21
+
22
+ def test_should_create_not_model_fixture
23
+ Mongoid::FixtureSet.reset_cache
24
+ fs = Mongoid::FixtureSet.create_fixtures('test/fixtures', %w(not_models))
25
+ fs = fs.first
26
+ fixture = fs['error']
27
+
28
+ begin
29
+ fixture.find
30
+ assert false, 'No exception has been raised'
31
+ rescue Mongoid::FixtureSet::FixtureClassNotFound
32
+ assert true
33
+ end
34
+ end
35
+
36
+ def test_should_create_fixtures
37
+ Mongoid::FixtureSet.reset_cache
38
+ fs = Mongoid::FixtureSet.create_fixtures('test/fixtures/', %w(users groups schools organisations))
39
+
40
+ users = fs.find{|x| x.model_class == User}
41
+ f_geoffroy = users['geoffroy']
42
+
43
+ assert_equal 6, School.count
44
+ assert_equal 4, User.count
45
+
46
+ geoffroy = User.find_by(firstname: 'Geoffroy')
47
+ user1 = User.find_by(firstname: 'Margot')
48
+ sudoers = Group.find_by(name: 'Sudoers!')
49
+ print = Group.find_by(name: 'Print')
50
+ group1 = Group.find_by(name: 'Margot')
51
+ orga1 = Organisation.find_by(name: '1 Organisation')
52
+ school = School.find_by(name: 'School')
53
+
54
+ assert_equal geoffroy, f_geoffroy.find
55
+ assert_equal 2, print.users.count
56
+ assert print.users.include?(geoffroy)
57
+ assert print.users.include?(user1)
58
+ assert sudoers.main_users.include?(geoffroy)
59
+ assert_equal group1, user1.main_group
60
+ assert_equal print, user1.groups.first
61
+
62
+ assert_equal 1, school.groups.count
63
+ assert_equal group1, school.groups.first
64
+ assert_equal school, group1.something
65
+
66
+ assert_equal 2, orga1.groups.count
67
+ assert orga1.groups.include?(sudoers)
68
+ assert_equal orga1, sudoers.something
69
+ end
70
+ end
71
+ end
72
+
@@ -0,0 +1,15 @@
1
+ class FixturesTest < BaseTest
2
+ include Mongoid::FixtureSet::TestHelper
3
+ self.fixture_path = 'test/fixtures'
4
+
5
+ def test_should_access_fixtures
6
+ begin
7
+ geoffroy = users(:geoffroy)
8
+ assert true
9
+ rescue
10
+ assert false, 'An exception was thrown'
11
+ end
12
+ end
13
+ end
14
+
15
+
@@ -0,0 +1,22 @@
1
+ require 'bundler/setup'
2
+ require 'simplecov'
3
+ SimpleCov.configure do
4
+ add_filter '/test/'
5
+ end
6
+ SimpleCov.start if ENV['COVERAGE']
7
+
8
+ require 'minitest/autorun'
9
+ require 'mongoid'
10
+
11
+ require File.expand_path("../../lib/mongoid-fixture_set", __FILE__)
12
+
13
+ Mongoid.load!("#{File.dirname(__FILE__)}/mongoid.yml", "test")
14
+
15
+ Dir["#{File.dirname(__FILE__)}/models/*.rb"].each { |f| require f }
16
+
17
+ class BaseTest < ActiveSupport::TestCase
18
+ def teardown
19
+ Mongoid::Sessions.default.use('mongoid_fixture_set_test').drop
20
+ end
21
+ end
22
+
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mongoid-fixture_set
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Geoffroy Planquart
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mongoid
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0.9'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0.9'
55
+ description: Let you use fixtures with Mongoid the same way you did with ActiveRecord
56
+ email:
57
+ - geoffroy@planquart.fr
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/mongoid/fixture_set/version.rb
63
+ - lib/mongoid/fixture_set/errors.rb
64
+ - lib/mongoid/fixture_set/file.rb
65
+ - lib/mongoid/fixture_set/class_cache.rb
66
+ - lib/mongoid/fixture_set/test_helper.rb
67
+ - lib/mongoid/fixture_set/fixture.rb
68
+ - lib/mongoid/fixture_set.rb
69
+ - lib/mongoid-fixture_set.rb
70
+ - Rakefile
71
+ - test/mongoid/fixtures_test.rb
72
+ - test/mongoid/fixture_set_test.rb
73
+ - test/models/group.rb
74
+ - test/models/organisation.rb
75
+ - test/models/school.rb
76
+ - test/models/user.rb
77
+ - test/mongoid.yml
78
+ - test/fixtures/users.yml
79
+ - test/fixtures/groups.yml
80
+ - test/fixtures/schools.yml
81
+ - test/fixtures/organisations.yml
82
+ - test/fixtures/users/family.yml
83
+ - test/fixtures/not_models.yml
84
+ - test/test_helper.rb
85
+ homepage: https://github.com/Aethelflaed/mongoid-fixture_set
86
+ licenses:
87
+ - MIT
88
+ metadata: {}
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 2.0.3
106
+ signing_key:
107
+ specification_version: 4
108
+ summary: Fixtures for Mongoid
109
+ test_files:
110
+ - test/mongoid/fixtures_test.rb
111
+ - test/mongoid/fixture_set_test.rb
112
+ - test/models/group.rb
113
+ - test/models/organisation.rb
114
+ - test/models/school.rb
115
+ - test/models/user.rb
116
+ - test/mongoid.yml
117
+ - test/fixtures/users.yml
118
+ - test/fixtures/groups.yml
119
+ - test/fixtures/schools.yml
120
+ - test/fixtures/organisations.yml
121
+ - test/fixtures/users/family.yml
122
+ - test/fixtures/not_models.yml
123
+ - test/test_helper.rb
124
+ has_rdoc: