inum 1.3.7 → 2.0.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.
- checksums.yaml +4 -4
- data/README.md +14 -3
- data/lib/inum/base.rb +6 -8
- data/lib/inum/define_check_method.rb +3 -3
- data/lib/inum/version.rb +1 -1
- data/spec/inum/base_spec.rb +12 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a6e4aafb92b4720071dd774230f494aa12c262f
|
4
|
+
data.tar.gz: 8e4bbf13d8e57b1797429a4e90aa87eaf861981e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df2f30c61d0f50a81aa9828c7acb0c1b87bd788aaf28a3b3d6aa1ce30bb1e1be6fcecd95a59ae18bab13307fc4259341e719952dcf4b4a4223e5f3b2b4df9c25
|
7
|
+
data.tar.gz: 6e1bb7185dfd184393c41ec1a4c6fc142ee6b311738abbbcfa097c1253d6a71001ad3a9d11d3b7627af6a5f983d2a1a35c218d97bff1c8d51f20b34cc3365276
|
data/README.md
CHANGED
@@ -43,7 +43,7 @@ How to use Enum(Inum).
|
|
43
43
|
``` ruby
|
44
44
|
p AnimeType::EVANGELION # => EVANGELION
|
45
45
|
p AnimeType::EVANGELION.to_i # => 0
|
46
|
-
p AnimeType::EVANGELION.to_t # => エヴァンゲリオン (i18n find `anime_type.evangelion`.)
|
46
|
+
p AnimeType::EVANGELION.to_t # => エヴァンゲリオン (i18n find `inum.anime_type.evangelion`.)
|
47
47
|
|
48
48
|
# parse object to instance of AnimeType.
|
49
49
|
# object can use class of Symbol or String or Integer or Self.
|
@@ -96,16 +96,27 @@ p anime.haruhi? # => true
|
|
96
96
|
|
97
97
|
### Localize(i18n)
|
98
98
|
to_t methods localize enum by i18n.
|
99
|
-
default i18n key is name_space.class_name.enum_member_label.
|
99
|
+
default i18n key is inum.{name_space}.{class_name}.{enum_member_label}.
|
100
100
|
If change default, Override i18n_key class method.
|
101
101
|
|
102
102
|
``` ruby
|
103
103
|
# default i18n_key.
|
104
104
|
def self.i18n_key(label)
|
105
|
-
Inum::Utils::underscore("
|
105
|
+
Inum::Utils::underscore("inum::#{self.name}::#{label}")
|
106
106
|
end
|
107
107
|
```
|
108
108
|
|
109
|
+
example
|
110
|
+
|
111
|
+
``` yaml
|
112
|
+
ja:
|
113
|
+
inum:
|
114
|
+
anime_type:
|
115
|
+
evangelion: 'エヴァンゲリオン'
|
116
|
+
haruhi: 'ハルヒ'
|
117
|
+
nyaruko: '這いよれ!ニャル子さん'
|
118
|
+
```
|
119
|
+
|
109
120
|
## API DOCUMENT
|
110
121
|
|
111
122
|
- [Documentation for alfa-jpn/Inum(master)](http://rubydoc.info/github/alfa-jpn/inum/frames)
|
data/lib/inum/base.rb
CHANGED
@@ -166,9 +166,11 @@ module Inum
|
|
166
166
|
self.const_set(label, new(label, value))
|
167
167
|
end
|
168
168
|
|
169
|
-
# get hash of
|
169
|
+
# get hash of @defined_enums.
|
170
|
+
#
|
171
|
+
# @return [Hash] hash of defined enums.
|
170
172
|
def self.defined_enums
|
171
|
-
|
173
|
+
@defined_enums
|
172
174
|
end
|
173
175
|
|
174
176
|
# get key for I18n.t method.
|
@@ -178,13 +180,13 @@ module Inum
|
|
178
180
|
# @return [String] key for I18n.t method.
|
179
181
|
# @abstract If change key from the default.
|
180
182
|
def self.i18n_key(label)
|
181
|
-
Inum::Utils::underscore("
|
183
|
+
Inum::Utils::underscore("inum::#{self.name}::#{label}")
|
182
184
|
end
|
183
185
|
|
184
186
|
# call after inherited.
|
185
187
|
# @note Define hash of :DEFINED_ENUMS in child.
|
186
188
|
def self.inherited(child)
|
187
|
-
child.
|
189
|
+
child.instance_variable_set(:@defined_enums, Hash.new)
|
188
190
|
end
|
189
191
|
|
190
192
|
# Validate enum args, and raise exception.
|
@@ -196,10 +198,6 @@ module Inum
|
|
196
198
|
raise ArgumentError, "The label(#{label}!) isn't instance of Symbol."
|
197
199
|
end
|
198
200
|
|
199
|
-
if label == :DEFINED_ENUMS
|
200
|
-
raise ArgumentError, "The label(#{label}!) is keyword."
|
201
|
-
end
|
202
|
-
|
203
201
|
if defined_enums.has_key?(label)
|
204
202
|
raise ArgumentError, "The label(#{label}!) already exists!!"
|
205
203
|
end
|
@@ -18,9 +18,9 @@ module Inum
|
|
18
18
|
# @param enum_class [Inum::Base] class of extended Enum::EnumBase.
|
19
19
|
def define_check_method(variable_name, enum_class)
|
20
20
|
self.class_eval do
|
21
|
-
enum_class::
|
22
|
-
define_method("#{
|
23
|
-
|
21
|
+
enum_class::each do |enum|
|
22
|
+
define_method("#{enum.to_u}?") do
|
23
|
+
enum.eql?(send(variable_name))
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
data/lib/inum/version.rb
CHANGED
data/spec/inum/base_spec.rb
CHANGED
@@ -54,7 +54,7 @@ describe Inum::Base do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'i18n.t called when call define_enum.' do
|
57
|
-
I18n.should_receive(:t).with('hoge.redbull')
|
57
|
+
I18n.should_receive(:t).with('inum.hoge.redbull')
|
58
58
|
|
59
59
|
class Hoge < Inum::Base
|
60
60
|
define_enum :REDBULL
|
@@ -79,7 +79,12 @@ describe Inum::Base do
|
|
79
79
|
@enum2 = Class.new(Inum::Base) do
|
80
80
|
define_enum :REDBULL, 0
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
|
+
defined_enum_inst = @enum.instance_variable_get(:@defined_enums)
|
84
|
+
defined_enum_inst2 = @enum2.instance_variable_get(:@defined_enums)
|
85
|
+
|
86
|
+
expect( defined_enum_inst.eql?(defined_enum_inst2) ).to be_false
|
87
|
+
expect( defined_enum_inst.equal?(defined_enum_inst2) ).to be_false
|
83
88
|
end
|
84
89
|
|
85
90
|
it 'A enum instance is equal instance.' do
|
@@ -164,9 +169,12 @@ describe Inum::Base do
|
|
164
169
|
end
|
165
170
|
|
166
171
|
it 'to_h return Hash' do
|
172
|
+
defined_enum_inst = @enum.instance_variable_get(:@defined_enums)
|
173
|
+
|
167
174
|
expect(@enum::to_h.instance_of?(Hash)).to be_true
|
168
|
-
|
169
|
-
expect(@enum::to_h.
|
175
|
+
|
176
|
+
expect(@enum::to_h.eql?(defined_enum_inst)).to be_true
|
177
|
+
expect(@enum::to_h.equal?(defined_enum_inst)).to be_false
|
170
178
|
end
|
171
179
|
|
172
180
|
it 'parse return instance from string.' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alfa-jpn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|