mongoid-enum-i18n 0.5.0 → 0.8.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 087290bda960e33c3f14b3387ce59ad351f30593
4
- data.tar.gz: 1ec63ea56be4a178b7b85778fb14b055c9c984c1
3
+ metadata.gz: 6f2697ab8dedba626fab411b37eb87ce492dd9cf
4
+ data.tar.gz: f9e98f58cf870d461faf14d9b5f0ac37f0abba88
5
5
  SHA512:
6
- metadata.gz: ea8f8e9c035c0a0a4215d634b9b6baa8fca03fcfe5d0963d6b3c6d3fa15bb5c01c7628ab5bfe64caa26edab87ae34143ed4bf95953a6d048222752cf7d05086d
7
- data.tar.gz: f1ee6f58f2503852e2f09171c11a853dfb5a5d897f1979dcc2ae7b0315d66d14b281a2c742cdf340ecea625fb2678b96026d53a6182a7cf03adcea16f255db3d
6
+ metadata.gz: 5c67b99bbf20879322f801bc54e2f308dcba542b9795f72d9c2d679866b8320be3f4d06492eb5371db27d42116830d2bc7a5693cdb19e48400b2e1df7bfffd6c
7
+ data.tar.gz: 53458955e1a2df8ea3b01bd496d9c828e246063cf975da79f05576b2a079d9c9b03f68fcdf1d3aeca58b0866a62f19fbb5cb877d2685f37028cb09e7778968b5
@@ -23,8 +23,8 @@ module Mongoid
23
23
  set_values_constant field_name, values
24
24
 
25
25
  create_field field_name, options, values
26
- create_i18n_helper field_name, options
27
- create_values_helper field_name, options
26
+ create_i18n_helper model_name, field_name, options
27
+ create_values_helper model_name, field_name, options
28
28
 
29
29
  create_validations field_name, values, options
30
30
  define_value_scopes_and_accessors field_name, values, options
@@ -88,30 +88,30 @@ module Mongoid
88
88
  end
89
89
  end
90
90
 
91
- def create_i18n_helper(field_name, options)
91
+ def create_i18n_helper(main_model, field_name, options)
92
92
  return if options[:i18n].is_a?(FalseClass)
93
93
  if options[:multiple]
94
94
  define_method("#{field_name}_i18n") do
95
95
  return if self[field_name].blank?
96
96
  self[field_name].map do |k|
97
- I18n.translate("mongoid.enums.#{model_name.to_s.underscore}."\
97
+ I18n.translate("mongoid.enums.#{main_model.to_s.underscore}."\
98
98
  "#{field_name}.#{k}")
99
99
  end
100
100
  end
101
101
  else
102
102
  define_method("#{field_name}_i18n") do
103
103
  return if self[field_name].blank?
104
- I18n.translate("mongoid.enums.#{model_name.to_s.underscore}."\
104
+ I18n.translate("mongoid.enums.#{main_model.to_s.underscore}."\
105
105
  "#{field_name}.#{self[field_name]}")
106
106
  end
107
107
  end
108
108
  end
109
109
 
110
- def create_values_helper(field_name, options)
110
+ def create_values_helper(main_model, field_name, options)
111
111
  return if options[:i18n].is_a?(FalseClass)
112
112
  define_singleton_method("#{field_name}_values") do
113
- I18n.translate("mongoid.enums.#{model_name.to_s.underscore}."\
114
- "#{field_name}").map { |k, v| [v, k] }
113
+ I18n.translate("mongoid.enums.#{main_model.to_s.underscore}."\
114
+ "#{field_name}").map { |k, v| [v, k] }
115
115
  end
116
116
  end
117
117
 
@@ -1,6 +1,6 @@
1
1
  module Mongoid
2
2
  # VERSION
3
3
  module Enum
4
- VERSION = '0.5.0'
4
+ VERSION = '0.8.1'.freeze
5
5
  end
6
6
  end
@@ -4,19 +4,19 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'mongoid/enum/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "mongoid-enum-i18n"
7
+ spec.name = 'mongoid-enum-i18n'
8
8
  spec.version = Mongoid::Enum::VERSION
9
- spec.authors = ["Nicholas Bruning", "Marcos Piccinini"]
10
- spec.email = ["nicholas@bruning.com.au"]
9
+ spec.authors = ['Nicholas Bruning', 'Marcos Piccinini']
10
+ spec.email = ['nicholas@bruning.com.au']
11
11
  spec.description = %q{Heavily inspired by DDH's ActiveRecord::Enum, this little library is there to help you cut down the cruft in your models and make the world a happier place at the same time.}
12
12
  spec.summary = %q{Sweet enum sugar for your Mongoid documents}
13
- spec.homepage = "https://github.com/thetron/mongoid-enum"
14
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/thetron/mongoid-enum'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_runtime_dependency "mongoid", "> 4.0.0"
21
+ spec.add_runtime_dependency 'mongoid', '> 4.0.0'
22
22
  end
@@ -1,5 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
+ # Test Class
3
4
  class User
4
5
  include Mongoid::Document
5
6
  include Mongoid::Enum
@@ -11,6 +12,9 @@ class User
11
12
  required: false
12
13
  end
13
14
 
15
+ class Admin < User
16
+ end
17
+
14
18
  describe Mongoid::Enum do
15
19
  let(:klass) { User }
16
20
  let(:instance) { User.new }
@@ -77,7 +81,7 @@ describe Mongoid::Enum do
77
81
  end
78
82
  end
79
83
 
80
- describe 'accessors'do
84
+ describe 'accessors' do
81
85
  context 'when singular' do
82
86
  describe 'setter' do
83
87
  it 'accepts strings' do
@@ -135,7 +139,7 @@ describe Mongoid::Enum do
135
139
  end
136
140
 
137
141
  it 'accepts arrays of strings' do
138
- instance.roles = %w( author editor )
142
+ instance.roles = %w(author editor)
139
143
  instance.save
140
144
  puts instance.errors.full_messages
141
145
  instance.reload
@@ -143,12 +147,13 @@ describe Mongoid::Enum do
143
147
  expect(instance.roles).to include(:editor)
144
148
  end
145
149
 
146
- it 'accepts arrays of symbols' do
150
+ it 'accepts arrays of symbols' do
147
151
  instance.roles = [:author, :editor]
148
152
  expect(instance.roles).to include(:author)
149
153
  expect(instance.roles).to include(:editor)
150
154
  end
151
155
  end
156
+
152
157
  describe '{{value}}!' do
153
158
  context 'when field is nil' do
154
159
  it 'creates an array containing the value' do
@@ -267,5 +272,14 @@ describe Mongoid::Enum do
267
272
  expect(User.status_values)
268
273
  .to eq([['Awaiting Approval', :awaiting_approval]])
269
274
  end
275
+
276
+ it 'should use class where it was coded into' do
277
+ expect(Admin.status_values)
278
+ .to eq([['Awaiting Approval', :awaiting_approval]])
279
+ end
280
+
281
+ it 'should use class where it was coded into' do
282
+ expect(Admin.new.status_i18n).to eq('Awaiting Approval')
283
+ end
270
284
  end
271
285
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-enum-i18n
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Bruning
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-26 00:00:00.000000000 Z
12
+ date: 2016-07-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  version: '0'
74
74
  requirements: []
75
75
  rubyforge_project:
76
- rubygems_version: 2.5.1
76
+ rubygems_version: 2.6.6
77
77
  signing_key:
78
78
  specification_version: 4
79
79
  summary: Sweet enum sugar for your Mongoid documents