code-box 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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: