labelizer 0.1.4 → 0.1.5

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,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