code-box 0.4.0 → 0.4.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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- code-box (0.3.1)
4
+ code-box (0.4.0)
5
5
  activerecord (~> 3.0)
6
6
 
7
7
  GEM
@@ -91,6 +91,8 @@ module CodeBox
91
91
 
92
92
  # translator
93
93
  class << self
94
+ attr_accessor :code_box_i18n_options_select_key
95
+
94
96
  def translate_#{code_attr}(*code)
95
97
  options = code.extract_options!
96
98
  codes = code.first
@@ -114,6 +116,17 @@ module CodeBox
114
116
  code_cache[code]
115
117
  end
116
118
 
119
+ def self.build_options(*args)
120
+ options = args.extract_options!
121
+ codes = args.empty? ? All#{code_attr.pluralize.camelize} : args
122
+ include_nil = !!options[:include_nil]
123
+
124
+ options = translate_#{code_attr}(codes, build: :zip)
125
+ options << [I18n.t(CodeBox.i18n_empty_options_key), nil] if include_nil
126
+
127
+ options
128
+ end
129
+
117
130
  def self.initialize_cache
118
131
  Hash[all.map{ |code| [code.#{code_attr}, code] }]
119
132
  end
@@ -237,7 +250,7 @@ module CodeBox
237
250
  end
238
251
 
239
252
  return if self.code_box_model_type == :active_record
240
-
253
+
241
254
  code_constants = {}
242
255
  codes.each do |code|
243
256
  constant_name = "#{code.to_s.camelize}"
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module CodeBox
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.1"
5
5
  end
data/lib/code-box.rb CHANGED
@@ -4,7 +4,10 @@ require 'code-box/code_attribute'
4
4
  require 'code-box/acts_as_code'
5
5
 
6
6
  module CodeBox
7
- Config = { :i18n_model_segment => :activerecord }
7
+ Config = {
8
+ :i18n_model_segment => :activerecord,
9
+ :i18n_empty_options_key => 'shared.options.pls_select',
10
+ }
8
11
 
9
12
  def i18n_model_segment=(segment)
10
13
  Config[:i18n_model_segment] = segment
@@ -14,5 +17,13 @@ module CodeBox
14
17
  Config[:i18n_model_segment]
15
18
  end
16
19
 
17
- module_function :i18n_model_segment=, :i18n_model_segment
20
+ def i18n_empty_options_key=(key)
21
+ Config[:i18n_empty_options_key] = key
22
+ end
23
+
24
+ def i18n_empty_options_key
25
+ Config[:i18n_empty_options_key]
26
+ end
27
+
28
+ module_function :i18n_model_segment, :i18n_model_segment=, :i18n_empty_options_key, :i18n_empty_options_key=
18
29
  end
@@ -73,4 +73,13 @@ class TestActsAsCode < Test::Unit::TestCase
73
73
  assert_equal code.translated_code(:de), 'verheiratet'
74
74
  end
75
75
 
76
+ def test_options_building
77
+ options_array = Codes::CivilStatus.build_options
78
+ assert_equal options_array.size, 2
79
+
80
+ options_array = Codes::CivilStatus.build_options(include_nil: true)
81
+ puts arrrr: options_array
82
+ assert_equal options_array.size, 3
83
+ end
84
+
76
85
  end
@@ -13,9 +13,13 @@ de:
13
13
  codes/civil_status:
14
14
  code:
15
15
  married: verheiratet
16
+ single: ledig
16
17
  model:
17
18
  values:
18
19
  codes/segment_model:
19
20
  gender_code:
20
21
  f: weiblich
21
22
  m: männlich
23
+ shared:
24
+ options:
25
+ pls_select: '-- bitte waehlen --'
@@ -13,9 +13,13 @@ en:
13
13
  codes/civil_status:
14
14
  code:
15
15
  married: married
16
+ single: single
16
17
  model:
17
18
  values:
18
19
  codes/segment_model:
19
20
  gender_code:
20
21
  f: female
21
22
  m: male
23
+ shared:
24
+ options:
25
+ pls_select: '-- please select --'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code-box
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: