mongoid_globalize 0.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.
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +74 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +0 -0
- data/Rakefile +39 -0
- data/VERSION +1 -0
- data/lib/mongoid_globalize/act_macro.rb +23 -0
- data/lib/mongoid_globalize/adapter.rb +73 -0
- data/lib/mongoid_globalize/attributes.rb +25 -0
- data/lib/mongoid_globalize/class_methods.rb +64 -0
- data/lib/mongoid_globalize/document_translation.rb +30 -0
- data/lib/mongoid_globalize/instance_methods.rb +174 -0
- data/lib/mongoid_globalize.rb +69 -0
- data/mongoid_globalize.gemspec +86 -0
- data/spec/data/models.rb +77 -0
- data/spec/mongoid_globalize/attributes_spec.rb +138 -0
- data/spec/mongoid_globalize/clone_spec.rb +51 -0
- data/spec/mongoid_globalize/dirty_tracking_spec.rb +62 -0
- data/spec/mongoid_globalize/fallbacks_spec.rb +135 -0
- data/spec/mongoid_globalize/locale_spec.rb +89 -0
- data/spec/mongoid_globalize/set_translations_spec.rb +49 -0
- data/spec/mongoid_globalize/translation_class_spec.rb +57 -0
- data/spec/mongoid_globalize/validations_spec.rb +93 -0
- data/spec/mongoid_globalize_spec.rb +173 -0
- data/spec/spec_helper.rb +77 -0
- metadata +170 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Translation class" do
|
4
|
+
it "returns by translation_class" do
|
5
|
+
Post.translation_class.should == Post::Translation
|
6
|
+
end
|
7
|
+
|
8
|
+
it "nested in the model class" do
|
9
|
+
Post.const_defined?(:Translation).should be_true
|
10
|
+
end
|
11
|
+
|
12
|
+
it "defines embeded_in relation" do
|
13
|
+
Post::Translation.should be_embedded_in(:post)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "defines a reader for :locale that returns a symbol" do
|
17
|
+
post = Post::Translation.new
|
18
|
+
post.send(:write_attribute, 'locale', 'de')
|
19
|
+
post.locale.should == :de
|
20
|
+
end
|
21
|
+
|
22
|
+
it "defines a writer for :locale that writes a string" do
|
23
|
+
post = Post::Translation.new
|
24
|
+
post.locale = :de
|
25
|
+
post.read_attribute('locale').should == 'de'
|
26
|
+
end
|
27
|
+
|
28
|
+
it "creates for a namespaced model" do
|
29
|
+
lambda do
|
30
|
+
module Foo
|
31
|
+
module Bar
|
32
|
+
class Baz
|
33
|
+
include Mongoid::Document
|
34
|
+
include Mongoid::Globalize
|
35
|
+
translates :bumm
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end.should_not raise_error
|
40
|
+
end
|
41
|
+
|
42
|
+
it "does not override existing translation class" do
|
43
|
+
PostTranslation.new.should respond_to(:existing_method)
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "required_attributes" do
|
47
|
+
it "returns required attributes (i.e. validates_presence_of)" do
|
48
|
+
User.required_attributes.should == [:name, :email]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "required_translated_attributes" do
|
53
|
+
it "does not include non-translated attributes" do
|
54
|
+
User.required_translated_attributes.should == [:name]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "Validations" do
|
5
|
+
describe "update_attribute" do
|
6
|
+
it "succeeds with valid values" do
|
7
|
+
post = Post.create(:title => 'foo')
|
8
|
+
post.update_attributes(:title => 'baz')
|
9
|
+
post.should be_valid
|
10
|
+
Post.first.title.should == 'baz'
|
11
|
+
end
|
12
|
+
|
13
|
+
it "fails with invalid values" do
|
14
|
+
post = Post.create(:title => 'foo')
|
15
|
+
post.update_attributes(:title => '').should be_false
|
16
|
+
post.should_not be_valid
|
17
|
+
post.reload.attributes['title'].should_not be_nil
|
18
|
+
post.title.should == 'foo'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
after :each do
|
23
|
+
Validatee.reset_callbacks(:validate)
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "validates_presence_of" do
|
27
|
+
it "works" do
|
28
|
+
Validatee.class_eval{ validates_presence_of :string }
|
29
|
+
Validatee.new.should_not be_valid
|
30
|
+
Validatee.new(:string => 'foo').should be_valid
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "validates_confirmation_of" do
|
35
|
+
it "works" do
|
36
|
+
Validatee.class_eval{ validates_confirmation_of :string }
|
37
|
+
Validatee.new(:string => 'foo', :string_confirmation => 'bar').should_not be_valid
|
38
|
+
Validatee.new(:string => 'foo', :string_confirmation => 'foo').should be_valid
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "validates_acceptance_of" do
|
43
|
+
it "works" do
|
44
|
+
Validatee.class_eval{ validates_acceptance_of :string, :accept => '1' }
|
45
|
+
Validatee.new(:string => '0').should_not be_valid
|
46
|
+
Validatee.new(:string => '1').should be_valid
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "validates_length_of (:is)" do
|
51
|
+
it "works" do
|
52
|
+
Validatee.class_eval{ validates_length_of :string, :is => 1 }
|
53
|
+
Validatee.new(:string => 'aa').should_not be_valid
|
54
|
+
Validatee.new(:string => 'a').should be_valid
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "validates_format_of" do
|
59
|
+
it "works" do
|
60
|
+
Validatee.class_eval{ validates_format_of :string, :with => /^\d+$/ }
|
61
|
+
Validatee.new(:string => 'a').should_not be_valid
|
62
|
+
Validatee.new(:string => '1').should be_valid
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "validates_inclusion_of" do
|
67
|
+
it "works" do
|
68
|
+
Validatee.class_eval{ validates_inclusion_of :string, :in => %(a) }
|
69
|
+
Validatee.new(:string => 'b').should_not be_valid
|
70
|
+
Validatee.new(:string => 'a').should be_valid
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "validates_exclusion_of" do
|
75
|
+
it "works" do
|
76
|
+
Validatee.class_eval{ validates_exclusion_of :string, :in => %(b) }
|
77
|
+
Validatee.new(:string => 'b').should_not be_valid
|
78
|
+
Validatee.new(:string => 'a').should be_valid
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "validates_numericality_of" do
|
83
|
+
it "works" do
|
84
|
+
Validatee.class_eval{ validates_numericality_of :string }
|
85
|
+
Validatee.new(:string => 'a').should_not be_valid
|
86
|
+
Validatee.new(:string => '1').should be_valid
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
pending "validates_uniqueness_of"
|
91
|
+
pending "validates_associated"
|
92
|
+
pending "a record with valid values on non-default locale validates"
|
93
|
+
end
|
@@ -0,0 +1,173 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mongoid::Globalize do
|
5
|
+
describe "a translated record" do
|
6
|
+
it "has many embed translations" do
|
7
|
+
Post.should embed_many(:translations)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#translations" do
|
12
|
+
# It's different of G3. In G3 @translations are empty for this situation
|
13
|
+
its "have one empty with current locale for a new record" do
|
14
|
+
translations = Post.new.translations
|
15
|
+
translations.should == [translations.first]
|
16
|
+
translations.first.locale.should == :en
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#create" do
|
21
|
+
it "uses the given locale" do
|
22
|
+
post = Post.create(:title => 'Titel', :locale => :de)
|
23
|
+
post.should be_translated(:de).for(:title).as('Titel')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it "can translate boolean values" do
|
28
|
+
post = Post.create(:title => 'Titel', :published => true, :locale => :de)
|
29
|
+
post.should be_translated(:de).for(:published).as(true)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "can translate datetime values" do
|
33
|
+
now = Time.now
|
34
|
+
post = Post.create(:title => 'Titel', :published_at => now, :locale => :de)
|
35
|
+
post.should be_translated(:de).for(:published_at).as(now)
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#attributes=" do
|
39
|
+
it "uses the given locale" do
|
40
|
+
post = Post.create(:title => 'title')
|
41
|
+
post.attributes = { :title => 'Titel', :locale => :de }
|
42
|
+
post.save
|
43
|
+
post.reload
|
44
|
+
post.translations.size.should == 2
|
45
|
+
post.should be_translated(:de).for(:title).as('Titel')
|
46
|
+
post.should be_translated(:en).for(:title).as('title')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "#create on associations" do
|
51
|
+
it "works" do
|
52
|
+
blog = Blog.create
|
53
|
+
blog.posts.create(:title => 'title')
|
54
|
+
blog.posts.create(:title => 'Titel', :locale => :de)
|
55
|
+
blog.posts.size.should == 2
|
56
|
+
blog.posts.first.should be_translated(:en).for(:title).as('title')
|
57
|
+
blog.posts.last.should be_translated(:de).for(:title).as('Titel')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "named scopes" do
|
62
|
+
its "work" do
|
63
|
+
post = Blog.create.posts.create(:title => 'some title')
|
64
|
+
post.reload
|
65
|
+
post.should be_translated(:en).for(:title).as('some title')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
it "saves a translations document for each locale using a given locale" do
|
70
|
+
post = Post.create(:title => 'Titel', :locale => :de)
|
71
|
+
post.update_attributes(:title => 'title', :locale => :en)
|
72
|
+
post.translations.size.should == 2
|
73
|
+
post.should be_translated(:de).for(:title).as('Titel')
|
74
|
+
post.should be_translated(:en).for(:title).as('title')
|
75
|
+
end
|
76
|
+
|
77
|
+
it "saves a translations document for each locale using the current I18n locale" do
|
78
|
+
post = with_locale(:de) { Post.create(:title => 'Titel') }
|
79
|
+
with_locale(:en) { post.update_attributes(:title => 'title') }
|
80
|
+
post.translations.size.should == 2
|
81
|
+
post.should be_translated(:en).for(:title).as('title')
|
82
|
+
post.should be_translated(:de).for(:title).as('Titel')
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "#reload" do
|
86
|
+
it "works with translated attributes" do
|
87
|
+
post = Post.create(:title => 'foo')
|
88
|
+
post.title = 'baz'
|
89
|
+
post.reload
|
90
|
+
post.title.should == 'foo'
|
91
|
+
end
|
92
|
+
|
93
|
+
it "accepts no options" do # because Mongoid's #reload doesn't accept ones
|
94
|
+
post = Post.create(:title => "title")
|
95
|
+
lambda{ post.reload(:readonly => true) }.should raise_error(ArgumentError)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "#destroy" do
|
100
|
+
it "destroys dependent translations" do
|
101
|
+
# it's true due to translations are embedded into document
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe "#to_xml" do
|
106
|
+
it "includes translated fields" do
|
107
|
+
post = Post.create(:title => "foo", :content => "bar")
|
108
|
+
post.reload
|
109
|
+
post.to_xml.should match(%r(<title>foo</title>))
|
110
|
+
post.to_xml.should match(%r(<content>bar</content>))
|
111
|
+
end
|
112
|
+
|
113
|
+
it " doesn't affect untranslated models" do
|
114
|
+
blog = Blog.create(:description => "my blog")
|
115
|
+
blog.reload
|
116
|
+
blog.to_xml.should match(%r(<description>my blog</description>))
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "#translated_locales" do
|
121
|
+
it "returns locales that have translations" do
|
122
|
+
pending "TODO"
|
123
|
+
first = Post.create!(:title => 'title', :locale => :en)
|
124
|
+
first.update_attributes(:title => 'Title', :locale => :de)
|
125
|
+
second = Post.create!(:title => 'title', :locale => :en)
|
126
|
+
second.update_attributes(:title => 'titre', :locale => :fr)
|
127
|
+
Post.translated_locales.should == [:de, :en, :fr]
|
128
|
+
first.translated_locales.should == [:de, :en]
|
129
|
+
second.translated_locales.should == [:en, :fr]
|
130
|
+
|
131
|
+
first.reload
|
132
|
+
second.reload
|
133
|
+
first.translated_locales.should == [:de, :en]
|
134
|
+
second.translated_locales.should == [:en, :fr]
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe "a model with an after_save callback that reloads the model" do
|
139
|
+
it "still saves correctly" do
|
140
|
+
reloading_post = ReloadingPost.create!(:title => 'title')
|
141
|
+
reloading_post.title.should == 'title'
|
142
|
+
reloading_post.should be_translated(:en).for(:title).as('title')
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "#with_translations" do
|
147
|
+
it "eager loads translations" do
|
148
|
+
pending "TODO"
|
149
|
+
Post.create(:title => 'title 1')
|
150
|
+
Post.create(:title => 'title 2')
|
151
|
+
Post.with_translations.first.translations.should be_loaded
|
152
|
+
Post.with_translations.map(&:title).should == ['title 1', 'title 2']
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "a subclass of an untranslated model" do
|
157
|
+
it "can translate attributes" do
|
158
|
+
post = Post.create(:title => 'title')
|
159
|
+
translated_comment = TranslatedComment.create(:post => post, :content => 'content')
|
160
|
+
lambda{ translated_comment.translations }.should_not raise_error
|
161
|
+
translated_comment.should be_translated(:en).for(:content).as('content')
|
162
|
+
end
|
163
|
+
|
164
|
+
it "works when modifiying translated attributes" do
|
165
|
+
post = Post.create(:title => 'title')
|
166
|
+
translated_comment = TranslatedComment.create(:post => post, :content => 'content')
|
167
|
+
translated_comment.update_attributes(:content => 'Inhalt',
|
168
|
+
:locale => :de).should be_true
|
169
|
+
translated_comment.should be_translated(:en).for(:content).as('content')
|
170
|
+
translated_comment.should be_translated(:de).for(:content).as('Inhalt')
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require "bundler/setup"
|
3
|
+
require 'mongoid'
|
4
|
+
|
5
|
+
Mongoid.configure do |config|
|
6
|
+
name = "mongoid_globalize_test"
|
7
|
+
config.autocreate_indexes = true
|
8
|
+
config.master = Mongo::Connection.new.db(name)
|
9
|
+
config.logger = Logger.new($stdout, :warn)
|
10
|
+
end
|
11
|
+
|
12
|
+
require 'mongoid_globalize'
|
13
|
+
require File.expand_path('../data/models', __FILE__)
|
14
|
+
|
15
|
+
require 'rspec'
|
16
|
+
require 'database_cleaner'
|
17
|
+
require 'mongoid-rspec'
|
18
|
+
RSpec.configure do |config|
|
19
|
+
config.include Mongoid::Matchers
|
20
|
+
config.before :suite do
|
21
|
+
DatabaseCleaner.strategy = :truncation
|
22
|
+
end
|
23
|
+
|
24
|
+
config.before :each do
|
25
|
+
I18n.locale = :en
|
26
|
+
end
|
27
|
+
|
28
|
+
config.after :each do
|
29
|
+
DatabaseCleaner.clean
|
30
|
+
# because rspec run all specs in one thread
|
31
|
+
Thread.current[:globalize_locale] = nil
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def with_locale(*args, &block)
|
36
|
+
Mongoid::Globalize.with_locale(*args, &block)
|
37
|
+
end
|
38
|
+
|
39
|
+
RSpec::Matchers.define :be_translated do |locale|
|
40
|
+
chain :for do |attributes|
|
41
|
+
@attributes = Array.wrap(attributes)
|
42
|
+
end
|
43
|
+
|
44
|
+
chain :as do |translations|
|
45
|
+
@translations = Array.wrap(translations)
|
46
|
+
end
|
47
|
+
|
48
|
+
match do |record|
|
49
|
+
@result = @attributes.map{|name| record.send(name, locale)}
|
50
|
+
@result == @translations
|
51
|
+
end
|
52
|
+
|
53
|
+
failure_message_for_should do |record|
|
54
|
+
"expected that attributes #{@attributes.inspect} for #{record} in " +
|
55
|
+
"#{locale.inspect} locale should be #{@translations.inspect}.\n" +
|
56
|
+
" Diff:\n -#{@translations.inspect}\n +#{@result.inspect}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
class BackendWithFallbacks < I18n::Backend::Simple
|
61
|
+
include I18n::Backend::Fallbacks
|
62
|
+
end
|
63
|
+
|
64
|
+
meta = class << I18n; self; end
|
65
|
+
meta.class_eval do
|
66
|
+
alias_method(:alternatives, :fallbacks)
|
67
|
+
|
68
|
+
def pretend_fallbacks
|
69
|
+
class << I18n; self; end.send(:alias_method, :fallbacks, :alternatives)
|
70
|
+
end
|
71
|
+
|
72
|
+
def hide_fallbacks
|
73
|
+
class << I18n; self; end.send(:remove_method, :fallbacks)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
I18n.hide_fallbacks
|
metadata
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mongoid_globalize
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Mik-die
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-07-25 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: activemodel
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - "="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.1.0.rc4
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: mongoid
|
28
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: bson_ext
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: "0"
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: mongoid-rspec
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: "0"
|
67
|
+
type: :development
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: database_cleaner
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: ruby-debug19
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: "0"
|
89
|
+
type: :development
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: jeweler
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
100
|
+
type: :development
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: *id008
|
103
|
+
description: Library for translating Mongoid documents, based on Globalize3 principles
|
104
|
+
email: MikDiet@gmail.com
|
105
|
+
executables: []
|
106
|
+
|
107
|
+
extensions: []
|
108
|
+
|
109
|
+
extra_rdoc_files:
|
110
|
+
- README.rdoc
|
111
|
+
files:
|
112
|
+
- .rspec
|
113
|
+
- .rvmrc
|
114
|
+
- Gemfile
|
115
|
+
- Gemfile.lock
|
116
|
+
- MIT-LICENSE
|
117
|
+
- README.rdoc
|
118
|
+
- Rakefile
|
119
|
+
- VERSION
|
120
|
+
- lib/mongoid_globalize.rb
|
121
|
+
- lib/mongoid_globalize/act_macro.rb
|
122
|
+
- lib/mongoid_globalize/adapter.rb
|
123
|
+
- lib/mongoid_globalize/attributes.rb
|
124
|
+
- lib/mongoid_globalize/class_methods.rb
|
125
|
+
- lib/mongoid_globalize/document_translation.rb
|
126
|
+
- lib/mongoid_globalize/instance_methods.rb
|
127
|
+
- mongoid_globalize.gemspec
|
128
|
+
- spec/data/models.rb
|
129
|
+
- spec/mongoid_globalize/attributes_spec.rb
|
130
|
+
- spec/mongoid_globalize/clone_spec.rb
|
131
|
+
- spec/mongoid_globalize/dirty_tracking_spec.rb
|
132
|
+
- spec/mongoid_globalize/fallbacks_spec.rb
|
133
|
+
- spec/mongoid_globalize/locale_spec.rb
|
134
|
+
- spec/mongoid_globalize/set_translations_spec.rb
|
135
|
+
- spec/mongoid_globalize/translation_class_spec.rb
|
136
|
+
- spec/mongoid_globalize/validations_spec.rb
|
137
|
+
- spec/mongoid_globalize_spec.rb
|
138
|
+
- spec/spec_helper.rb
|
139
|
+
homepage: http://github.com/Mik-die/mongoid_globalize
|
140
|
+
licenses:
|
141
|
+
- MIT
|
142
|
+
post_install_message:
|
143
|
+
rdoc_options: []
|
144
|
+
|
145
|
+
require_paths:
|
146
|
+
- lib
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
hash: -528582867
|
153
|
+
segments:
|
154
|
+
- 0
|
155
|
+
version: "0"
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: "0"
|
162
|
+
requirements: []
|
163
|
+
|
164
|
+
rubyforge_project:
|
165
|
+
rubygems_version: 1.8.5
|
166
|
+
signing_key:
|
167
|
+
specification_version: 3
|
168
|
+
summary: Library for translating Mongoid documents
|
169
|
+
test_files: []
|
170
|
+
|