selectable_attr_rails 0.3.10 → 0.3.11
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/README +10 -4
- data/Rakefile +1 -1
- data/VERSION.yml +1 -1
- data/init.rb +1 -2
- data/lib/selectable_attr_i18n.rb +6 -3
- data/lib/selectable_attr_rails.rb +15 -2
- data/spec/database.yml +2 -2
- data/spec/selectable_attr_i18n_spec.rb +19 -1
- metadata +3 -3
data/README
CHANGED
@@ -11,13 +11,19 @@ http://github.com/akm/selectable_attr/tree/master
|
|
11
11
|
|
12
12
|
|
13
13
|
== Install
|
14
|
-
===
|
15
|
-
==== a. plugin install
|
14
|
+
=== a. plugin install
|
16
15
|
ruby script/plugin install git://github.com/akm/selectable_attr.git
|
17
16
|
ruby script/plugin install git://github.com/akm/selectable_attr_rails.git
|
18
17
|
|
19
|
-
|
20
|
-
[sudo] gem install
|
18
|
+
=== b. gem install
|
19
|
+
[sudo] gem install selectable_attr_rails
|
20
|
+
|
21
|
+
config/initializers/selectable_attr.rb
|
22
|
+
require 'selectable_attr'
|
23
|
+
require 'selectable_attr_i18n'
|
24
|
+
require 'selectable_attr_rails'
|
25
|
+
SelectableAttrRails.setup
|
26
|
+
|
21
27
|
|
22
28
|
== チュートリアル
|
23
29
|
|
data/Rakefile
CHANGED
@@ -50,7 +50,7 @@ begin
|
|
50
50
|
s.add_dependency("activesupport", ">= 2.0.2")
|
51
51
|
s.add_dependency("activerecord", ">= 2.0.2")
|
52
52
|
s.add_dependency("actionpack", ">= 2.0.2")
|
53
|
-
s.add_dependency("selectable_attr", ">= 0.3.
|
53
|
+
s.add_dependency("selectable_attr", ">= 0.3.11")
|
54
54
|
end
|
55
55
|
rescue LoadError
|
56
56
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
data/VERSION.yml
CHANGED
data/init.rb
CHANGED
data/lib/selectable_attr_i18n.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
if defined?(I18n)
|
2
|
+
require 'selectable_attr'
|
3
|
+
|
2
4
|
module SelectableAttr
|
3
5
|
class Enum
|
4
|
-
def self.i18n_export
|
6
|
+
def self.i18n_export(enums = nil)
|
7
|
+
enums ||= instances
|
5
8
|
result = {}
|
6
|
-
|
9
|
+
enums.each do |instance|
|
7
10
|
unless instance.i18n_scope
|
8
|
-
|
11
|
+
SelectableAttrRails.logger.debug("no i18n_scope of #{instance.inspect}")
|
9
12
|
next
|
10
13
|
end
|
11
14
|
paths = instance.i18n_scope.dup
|
@@ -7,9 +7,14 @@ module SelectableAttrRails
|
|
7
7
|
autoload :Validatable, 'selectable_attr_rails/validatable'
|
8
8
|
|
9
9
|
class << self
|
10
|
+
def logger
|
11
|
+
@logger ||= Logger.new(STDERR)
|
12
|
+
end
|
13
|
+
def logger=(value)
|
14
|
+
@logger = value
|
15
|
+
end
|
10
16
|
|
11
17
|
def add_features_to_active_record
|
12
|
-
puts "SelectableAttrRails.add_features_to_active_record"
|
13
18
|
ActiveRecord::Base.module_eval do
|
14
19
|
include ::SelectableAttr::Base
|
15
20
|
include ::SelectableAttrRails::Validatable::Base
|
@@ -18,6 +23,7 @@ module SelectableAttrRails
|
|
18
23
|
include ::SelectableAttrRails::DbLoadable
|
19
24
|
include ::SelectableAttrRails::Validatable::Enum
|
20
25
|
end
|
26
|
+
logger.debug("#{self.name}.add_features_to_active_record")
|
21
27
|
end
|
22
28
|
|
23
29
|
def add_features_to_action_view
|
@@ -31,13 +37,20 @@ module SelectableAttrRails
|
|
31
37
|
include ::SelectableAttrRails::Helpers::CheckBoxGroupHelper::FormBuilder
|
32
38
|
include ::SelectableAttrRails::Helpers::RadioButtonGroupHelper::FormBuilder
|
33
39
|
end
|
40
|
+
logger.debug("#{self.name}.add_features_to_action_view")
|
34
41
|
end
|
35
42
|
|
36
43
|
def add_features_to_rails
|
37
|
-
puts "SelectableAttrRails.add_features_to_rails"
|
38
44
|
add_features_to_active_record
|
39
45
|
add_features_to_action_view
|
40
46
|
end
|
47
|
+
|
48
|
+
def setup
|
49
|
+
logger = defined?(Rails) ? Rails.logger : ActiveRecord::Base.logger
|
50
|
+
self.logger = logger
|
51
|
+
SelectableAttr.logger = logger if SelectableAttr.respond_to?(:logger=) # since 0.3.11
|
52
|
+
add_features_to_rails
|
53
|
+
end
|
41
54
|
end
|
42
55
|
|
43
56
|
end
|
data/spec/database.yml
CHANGED
@@ -253,6 +253,9 @@ if defined?(I18n)
|
|
253
253
|
end
|
254
254
|
|
255
255
|
it 'test_i18n_export' do
|
256
|
+
io = StringIO.new
|
257
|
+
SelectableAttrRails.logger = Logger.new(io)
|
258
|
+
|
256
259
|
I18nItemMaster.delete_all("category_name = 'product_type_cd'")
|
257
260
|
|
258
261
|
I18n.locale = 'ja'
|
@@ -282,11 +285,26 @@ if defined?(I18n)
|
|
282
285
|
{'entry1'=>"entry one",
|
283
286
|
'entry2'=>"entry two",
|
284
287
|
'entry3'=>"entry three"}
|
285
|
-
actual['selectable_attrs'].keys.include
|
288
|
+
actual['selectable_attrs'].keys.should include('ProductWithI18nDB1')
|
286
289
|
actual['selectable_attrs']['ProductWithI18nDB1'].should ==
|
287
290
|
{'product_type_cd'=>
|
288
291
|
{'book'=>"Book", 'dvd'=>"DVD", 'cd'=>"CD", 'other'=>"Others", 'entry_04'=>"Toy"}}
|
289
292
|
end
|
293
|
+
|
294
|
+
Enum2 = SelectableAttr::Enum.new do
|
295
|
+
entry 1, :entry1, "縁鳥1"
|
296
|
+
entry 2, :entry2, "縁鳥2"
|
297
|
+
entry 3, :entry3, "縁鳥3"
|
298
|
+
end
|
299
|
+
|
300
|
+
it "i18n_scope missing" do
|
301
|
+
io = StringIO.new
|
302
|
+
SelectableAttrRails.logger = Logger.new(io)
|
303
|
+
actual = SelectableAttr::Enum.i18n_export([Enum2])
|
304
|
+
actual.inspect.should_not =~ /縁鳥/
|
305
|
+
io.rewind
|
306
|
+
io.readline.should =~ /^no\ i18n_scope\ of\ /
|
307
|
+
end
|
290
308
|
end
|
291
309
|
else
|
292
310
|
$stderr.puts "WARNING! i18n test skipeed because I18n not found"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selectable_attr_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takeshi Akima
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-14 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.3.
|
53
|
+
version: 0.3.11
|
54
54
|
version:
|
55
55
|
description: selectable_attr_rails makes possible to use selectable_attr in rails application
|
56
56
|
email: akima@gmail.com
|