labelizer 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzMyMzMzYjRlNTdhZDZhNTIwZTZjZWRlNWRiM2IyYjBlYzA2NTI5ZQ==
4
+ MjEzNjdlYzcyMTA3Nzc1NTFmZTgxYWZiMmRjODI1ZWRjN2VkN2VjYQ==
5
5
  data.tar.gz: !binary |-
6
- MjExZTFlYzQ1MzEwYTZlNTQ1NzRlM2I0NmJlNGI5ZDQ5YmRmNTkxOA==
6
+ ZDQwNzI5NTU1Nzk0MDMwZGQ2YjNlODk3NmVlYTllNzIwZmZhNzdmMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODhiZjE2NGEzNmFiNWQ1MDlmOWI0Y2U2YzEyZmJjYmY3NjEwZDVmZTcxYTY1
10
- ODBhNGE1NmYwMDIzYTdhMDBjNDJlMDgwMTFlYjAwYzA3ZjExZmJjMzViYWE3
11
- YjI1ZWFjNzA4N2FjNjAxMGVkNDNmN2VkNmM3MDllODI0ODcxY2E=
9
+ YTMyZjUyYzUxYjVkMmVmNWZlYzk2ZjAyNmI2ZTIwYzNjYTE2ZjJkNmFjOGUy
10
+ YWVhZDA0NzVlMzIyNTQ5NGE5ODcyMWVkMWQ3ODgyNDk2NDAwNDA2NjIyYTFj
11
+ NWY5NGVjYzRmMzQxNTRiYjc5Y2UwYzJmZWZlZTk4ZGM4YjNjNTQ=
12
12
  data.tar.gz: !binary |-
13
- NWE2OGU2ZTIwZjc5MjdlYjE4OWJhODIzMTM4MTgxMTNmNWY1ZjYwZmQyZWI1
14
- YTVjZDU5NGNjNWEwMDRiZTcyZGQyNmZhNmM4MWI3MDVjNDdiM2EyYzM3YjIz
15
- ZmM2MTA5ZmNiOWQxZjZmOWMwNTM5NDlmOWE4NDI2ZDI4YjlkNzc=
13
+ YTI3MmUxNTY1YTRmYmIwOGRlMTlhM2IyMzA3MTg2ZGQxZmE0YzE2NGYzZTdi
14
+ MzgyNzZkZjMwNTE3ZjMzYzJhMjBhNTQzNzQ1OGIyMTZjMTU1NmU5ZjNmY2Q1
15
+ NmQ2Y2RlNDIzYmMwMjc0NTliMDQ5YjA1MGMwNTQxMmEyZDcxMWQ=
@@ -17,7 +17,53 @@ module Labelizer
17
17
 
18
18
  module ClassMethods
19
19
  def labelized
20
- @labelized
20
+ @labelized ||= Container.new([]){|attr_labelized,attr|
21
+ model = self.to_s.underscore
22
+ values = __send__(attr.to_s.pluralize)
23
+ labelized = Container.new(values, accept_array_key: true){|value_labelized,value|
24
+ data = labelized.instance_variable_get(:@data)
25
+ attr_label_types = data[:label_types]
26
+ attr_converter = data[:converter]
27
+
28
+ unless labelized.has_key?(value)
29
+ Container.new(attr_label_types){|h,label_type|
30
+ h[label_type] = value.map{|val| value_labelized[val][label_type]}
31
+ }
32
+ else
33
+ value_labelized[value] = Container.new(attr_label_types){|h,label_type|
34
+ if label_type == :value
35
+ result = value
36
+ else
37
+ result = ::I18n.translate(
38
+ "labelizer.#{model}.#{attr}.#{value}.#{label_type}",
39
+ default: [
40
+ :"labelizer.#{model}.#{attr}.#{label_type}",
41
+ :"labelizer.#{model}.#{label_type}",
42
+ :"labelizer.#{label_type}",
43
+ "",
44
+ ],
45
+ )
46
+ if c = attr_converter[label_type]
47
+ result = c[result]
48
+ end
49
+ end
50
+ h[label_type] = result
51
+ }
52
+ end
53
+ }
54
+
55
+ labelized.singleton_class.class_eval do
56
+ define_method :pluck do |*require_label_types|
57
+ map{|value,label_type_labelized|
58
+ require_label_types.map{|require_label_type|
59
+ label_type_labelized[require_label_type]
60
+ }
61
+ }
62
+ end
63
+ end
64
+
65
+ attr_labelized[attr] = labelized
66
+ }
21
67
  end
22
68
 
23
69
  private
@@ -38,61 +84,18 @@ module Labelizer
38
84
  end
39
85
  end
40
86
 
41
- @labelized ||= Container.new([]){|attr_labelized,attr|
42
- model = self.to_s.underscore
43
- attr_labelized[attr] = Container.new(__send__(attr.to_s.pluralize), accept_array_key: true){|value_labelized,value|
44
- data = attr_labelized[attr].instance_variable_get(:@data)
45
- attr_label_types = data[:label_types]
46
- attr_converter = data[:converter]
47
- unless attr_labelized[attr].has_key?(value)
48
- Container.new(attr_label_types){|h,label_type|
49
- h[label_type] = value.map{|val| value_labelized[val][label_type]}
50
- }
51
- else
52
- value_labelized[value] = Container.new(attr_label_types){|h,label_type|
53
- if label_type == :value
54
- result = value
55
- else
56
- result = ::I18n.translate(
57
- "labelizer.#{model}.#{attr}.#{value}.#{label_type}",
58
- default: [
59
- :"labelizer.#{model}.#{attr}.#{label_type}",
60
- :"labelizer.#{model}.#{label_type}",
61
- :"labelizer.#{label_type}",
62
- "",
63
- ],
64
- )
65
- if c = attr_converter[label_type]
66
- result = c[result]
67
- end
68
- end
69
- h[label_type] = result
70
- }
71
- end
72
- }
73
-
74
- attr_labelized[attr].singleton_class.class_eval do
75
- define_method :pluck do |*require_label_types|
76
- map{|value,label_type_labelized|
77
- require_label_types.map{|require_label_type|
78
- label_type_labelized[require_label_type]
79
- }
80
- }
81
- end
82
- end
83
- data = attr_labelized[attr].instance_variable_get(:@data)
84
- data[:label_types] = label_types
85
- data[:converter] = converter
86
-
87
- attr_labelized[attr]
88
- }
89
-
90
- @labelized.instance_variable_get(:@keys) << attr_name
91
- @labelized.singleton_class.class_eval do
87
+ labelized.instance_variable_get(:@keys) << attr_name
88
+ labelized.singleton_class.class_eval do
92
89
  define_method attr_name do
93
- @hash[attr_name]
90
+ self[attr_name]
94
91
  end
95
92
  end
93
+
94
+ data = labelized[attr_name].instance_variable_get(:@data)
95
+ data[:label_types] = label_types
96
+ data[:converter] = converter
97
+
98
+ labelized[attr_name]
96
99
  end
97
100
  end
98
101
  end
@@ -1,3 +1,3 @@
1
1
  module Labelizer
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.5
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: labelizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - shun