symbolize 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -24,7 +24,7 @@ Github: http://github.com/zargony/activerecord_symbolize
24
24
 
25
25
  == Install
26
26
 
27
- Gem:
27
+ === Gem
28
28
 
29
29
  gem install symbolize
30
30
  config.gem "symbolize", :source => 'http://gemcutter.org'
@@ -35,13 +35,14 @@ Rails 3+ Gemfile
35
35
  gem "symbolize"
36
36
 
37
37
 
38
- Plugin:
38
+ === Plugin:
39
39
 
40
40
  ./script/plugin install git://github.com/nofxx/symbolize.git
41
41
 
42
- or
42
+ or in Rails3+
43
+
44
+ rails plugin install ..
43
45
 
44
- rails plugin install in Rails3+
45
46
 
46
47
  == Rails 3 (beta)
47
48
 
@@ -59,9 +60,10 @@ validates_inclusion_of to restrict the possible values (just like an enum).
59
60
  :linux => "Linux",
60
61
  :mac => "Mac OS X"
61
62
  }, :scopes => true
62
- symbolize :gui, , :in => [:gnome, :kde, :xfce], :allow_blank => true
63
+ symbolize :gui, :in => [:gnome, :kde, :xfce], :allow_blank => true
63
64
  symbolize :browser, :in => [:firefox, :opera], :i18n => false, :methods => true
64
65
  symbolize :angry, :in => [true, false], :scopes => true
66
+ symbolize :lang, :in => [:ruby, :c, :erlang], :validate => false
65
67
  end
66
68
 
67
69
 
@@ -74,24 +76,10 @@ Booleans are also supported. See below.
74
76
  allow_(blank|nil): What you expect.
75
77
 
76
78
 
77
- === i18n
79
+ === validate
78
80
 
79
- If you don`t provide a hash with values, it will try i18n:
80
-
81
- activerecord:
82
- attributes:
83
- user:
84
- enums:
85
- gui:
86
- gnome: Gnome Desktop Enviroment
87
- kde: K Desktop Enviroment
88
- xfce: XFCE4
89
- gender:
90
- female: Girl
91
- male: Boy
92
-
93
- You can skip i18n lookup with :i18n => false
94
- symbolize :gender, :in => [:female, :male], :i18n => false
81
+ Set to false to avoid the validation of the input.
82
+ Useful for a dropdown with an "other" option textfield.
95
83
 
96
84
 
97
85
  === method
@@ -115,6 +103,26 @@ Its possible to use boolean fields also.
115
103
  "nil": Unknown
116
104
 
117
105
 
106
+ === i18n
107
+
108
+ If you don`t provide a hash with values, it will try i18n:
109
+
110
+ activerecord:
111
+ attributes:
112
+ user:
113
+ enums:
114
+ gui:
115
+ gnome: Gnome Desktop Enviroment
116
+ kde: K Desktop Enviroment
117
+ xfce: XFCE4
118
+ gender:
119
+ female: Girl
120
+ male: Boy
121
+
122
+ You can skip i18n lookup with :i18n => false
123
+ symbolize :gender, :in => [:female, :male], :i18n => false
124
+
125
+
118
126
  === scopes (BETA)
119
127
 
120
128
  If you provide the scopes option, some fancy named scopes will be added:
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- require 'spec/rake/spectask'
3
+ #require 'spec/rake/spectask'
4
4
 
5
5
  begin
6
6
  require 'jeweler'
@@ -19,17 +19,17 @@ rescue LoadError
19
19
  puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
20
20
  end
21
21
 
22
- Spec::Rake::SpecTask.new(:spec) do |spec|
23
- spec.libs << 'lib' << 'spec'
24
- spec.spec_files = FileList['spec/**/*_spec.rb']
25
- end
22
+ # Spec::Rake::SpecTask.new(:spec) do |spec|
23
+ # spec.libs << 'lib' << 'spec'
24
+ # spec.spec_files = FileList['spec/**/*_spec.rb']
25
+ # end
26
26
 
27
- Spec::Rake::SpecTask.new(:rcov) do |spec|
28
- spec.libs << 'lib' << 'spec'
29
- spec.pattern = 'spec/**/*_spec.rb'
30
- spec.rcov = true
31
- end
32
- task :default => :spec
27
+ # Spec::Rake::SpecTask.new(:rcov) do |spec|
28
+ # spec.libs << 'lib' << 'spec'
29
+ # spec.pattern = 'spec/**/*_spec.rb'
30
+ # spec.rcov = true
31
+ # end
32
+ # task :default => :spec
33
33
 
34
34
  # desc 'Generate documentation for the activerecord_symbolize plugin.'
35
35
  # Rake::RDocTask.new(:rdoc) do |rdoc|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.0
1
+ 3.0.1
data/lib/symbolize.rb CHANGED
@@ -67,21 +67,23 @@ module Symbolize
67
67
 
68
68
  attr_names.each do |attr_name|
69
69
  attr_name = attr_name.to_s
70
+ const = "#{attr_name}_values"
70
71
  if enum.instance_of?(Hash)
71
72
  values = enum
72
73
  else
73
- if i18n
74
- values = hsh[*enum.map { |v| [v, I18n.translate("activerecord.attributes.#{ActiveSupport::Inflector.underscore(self)}.enums.#{attr_name}.#{v}")] }.flatten]
75
- else
76
- values = hsh[*enum.map { |v| [v, (configuration[:capitalize] ? v.to_s.capitalize : v.to_s)] }.flatten]
77
- end
74
+ values = hsh[*enum.map { |v| [v, (configuration[:capitalize] ? v.to_s.capitalize : v.to_s)] }.flatten]
78
75
  end
79
76
 
80
77
  # Get the values of :in
81
- const = "#{attr_name}_values"
82
78
  const_set const.upcase, values unless const_defined? const.upcase
83
- # This one is a dropdown helper
84
- class_eval "def self.get_#{const}; #{const.upcase}.map(&:reverse); end"
79
+ ev = if i18n
80
+ # This one is a dropdown helper
81
+ code = "#{const.upcase}.map { |k,v| [I18n.translate(\"activerecord.attributes.\#{ActiveSupport::Inflector.underscore(self)}.enums.#{attr_name}.\#{k}\"), k] }" #.to_sym rescue nila
82
+ "def self.get_#{const}; #{code}; end;"
83
+ else
84
+ "def self.get_#{const}; #{const.upcase}.map(&:reverse); end"
85
+ end
86
+ class_eval(ev)
85
87
 
86
88
  if methods
87
89
  values.each do |value|
@@ -0,0 +1,16 @@
1
+ en:
2
+ activerecord:
3
+ attributes:
4
+ user:
5
+ enums:
6
+ language:
7
+ pt: Portuguese
8
+ en: English
9
+ sex:
10
+ "true": Female
11
+ "false": Male
12
+ user_skill:
13
+ enums:
14
+ kind:
15
+ magic: Magic
16
+ agility: Agility
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  require 'rubygems'
2
- require 'spec'
2
+ begin
3
+ require 'spec'
4
+ rescue LoadError
5
+ require 'rspec'
6
+ end
3
7
 
4
8
  $LOAD_PATH.unshift(File.dirname(__FILE__))
5
9
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
@@ -15,8 +19,6 @@ I18n.load_path += Dir[File.join(File.dirname(__FILE__), "locales", "*.{rb,yml}")
15
19
  I18n.default_locale = "pt"
16
20
  CreateTestingStructure.migrate(:up)
17
21
 
18
-
19
- Spec::Runner.configure do |config|
20
-
21
-
22
- end
22
+ puts "Running AR #{ActiveRecord::VERSION::MAJOR}"
23
+ # Spec::Runner.configure do |config|
24
+ # end
@@ -36,9 +36,7 @@ User.create(:name => 'Bob' , :other => :bar,:status => :inactive, :so => :mac, :
36
36
 
37
37
  describe "Symbolize" do
38
38
 
39
-
40
39
  it "should respond to symbolize" do
41
- p ActiveRecord::VERSION::MAJOR
42
40
  ActiveRecord::Base.should respond_to :symbolize
43
41
  end
44
42
 
@@ -152,6 +150,9 @@ describe "Symbolize" do
152
150
 
153
151
  describe "ActiveRecord stuff" do
154
152
 
153
+ #
154
+ # ActiveRecord < 3
155
+ #
155
156
  if ActiveRecord::VERSION::MAJOR < 3
156
157
 
157
158
  it "test_symbolized_finder" do
@@ -165,6 +166,9 @@ describe "Symbolize" do
165
166
  end
166
167
  end
167
168
 
169
+ #
170
+ # ActiveRecord >= 3
171
+ #
168
172
  else
169
173
 
170
174
  it "test_symbolized_finder" do
@@ -261,7 +265,7 @@ describe "Symbolize" do
261
265
  end
262
266
 
263
267
  it "should get the correct values" do
264
- User::LANGUAGE_VALUES.should eql({:pt => "Português", :en => "Inglês"})
268
+ User::LANGUAGE_VALUES.should eql({:pt=>"pt", :en=>"en"})
265
269
  end
266
270
 
267
271
  it "should test boolean" do
@@ -273,7 +277,7 @@ describe "Symbolize" do
273
277
  end
274
278
 
275
279
  it "should get the correct values" do
276
- User::SEX_VALUES.should eql({false=>"Masculino", true=>"Feminino"})
280
+ User::SEX_VALUES.should eql({true=>"true", false=>"false"})
277
281
  end
278
282
 
279
283
  it "should translate a multiword class" do
data/symbolize.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{symbolize}
8
- s.version = "3.0.0"
8
+ s.version = "3.0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marcos Piccinini"]
12
- s.date = %q{2010-04-12}
12
+ s.date = %q{2010-07-09}
13
13
  s.description = %q{ActiveRecord enums with i18n}
14
14
  s.email = %q{x@nofxx.com}
15
15
  s.extra_rdoc_files = [
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
27
27
  "lib/symbolize_helper.rb",
28
28
  "rails/init.rb",
29
29
  "spec/db/create_testing_structure.rb",
30
+ "spec/locales/en.yml",
30
31
  "spec/locales/pt.yml",
31
32
  "spec/spec_helper.rb",
32
33
  "spec/symbolize_spec.rb",
@@ -35,7 +36,7 @@ Gem::Specification.new do |s|
35
36
  s.homepage = %q{http://github.com/nofxx/symbolize}
36
37
  s.rdoc_options = ["--charset=UTF-8"]
37
38
  s.require_paths = ["lib"]
38
- s.rubygems_version = %q{1.3.6}
39
+ s.rubygems_version = %q{1.3.7}
39
40
  s.summary = %q{ActiveRecord enums with i18n}
40
41
  s.test_files = [
41
42
  "spec/db/create_testing_structure.rb",
@@ -47,7 +48,7 @@ Gem::Specification.new do |s|
47
48
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
48
49
  s.specification_version = 3
49
50
 
50
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
51
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
52
  s.add_development_dependency(%q<rspec>, [">= 0"])
52
53
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
53
54
  else
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 3
7
7
  - 0
8
- - 0
9
- version: 3.0.0
8
+ - 1
9
+ version: 3.0.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Marcos Piccinini
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-12 00:00:00 -03:00
17
+ date: 2010-07-09 00:00:00 -03:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
@@ -33,6 +34,7 @@ dependencies:
33
34
  name: sqlite3
34
35
  prerelease: false
35
36
  requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
36
38
  requirements:
37
39
  - - ">="
38
40
  - !ruby/object:Gem::Version
@@ -61,6 +63,7 @@ files:
61
63
  - lib/symbolize_helper.rb
62
64
  - rails/init.rb
63
65
  - spec/db/create_testing_structure.rb
66
+ - spec/locales/en.yml
64
67
  - spec/locales/pt.yml
65
68
  - spec/spec_helper.rb
66
69
  - spec/symbolize_spec.rb
@@ -75,6 +78,7 @@ rdoc_options:
75
78
  require_paths:
76
79
  - lib
77
80
  required_ruby_version: !ruby/object:Gem::Requirement
81
+ none: false
78
82
  requirements:
79
83
  - - ">="
80
84
  - !ruby/object:Gem::Version
@@ -82,6 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
86
  - 0
83
87
  version: "0"
84
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
+ none: false
85
90
  requirements:
86
91
  - - ">="
87
92
  - !ruby/object:Gem::Version
@@ -91,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
96
  requirements: []
92
97
 
93
98
  rubyforge_project:
94
- rubygems_version: 1.3.6
99
+ rubygems_version: 1.3.7
95
100
  signing_key:
96
101
  specification_version: 3
97
102
  summary: ActiveRecord enums with i18n