localized_fields 0.0.1 → 0.0.2

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/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - ruby-head
6
+ - ree
7
+ - rbx-18mode
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.0.2 (2012-01-06)
2
+
3
+ ### Bug fixes
4
+
5
+ * The value of the textarea fields were not displayed.
6
+
1
7
  ## 0.0.1 (2012-01-05)
2
8
 
3
9
  Initial release.
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'rake'
4
+
3
5
  # Specify your gem's dependencies in localized_fields.gemspec
4
6
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- localized_fields (0.0.1)
4
+ localized_fields (0.0.2)
5
5
  actionpack (>= 3.1.0)
6
6
  mongoid (>= 2.4.0)
7
7
 
@@ -45,6 +45,7 @@ GEM
45
45
  rack (>= 1.0.0)
46
46
  rack-test (0.6.1)
47
47
  rack (>= 1.0)
48
+ rake (0.9.2.2)
48
49
  rspec (2.8.0)
49
50
  rspec-core (~> 2.8.0)
50
51
  rspec-expectations (~> 2.8.0)
@@ -65,4 +66,5 @@ PLATFORMS
65
66
 
66
67
  DEPENDENCIES
67
68
  localized_fields!
69
+ rake
68
70
  rspec
data/README.md CHANGED
@@ -1,18 +1,12 @@
1
- # Localized Fields
1
+ # Localized Fields [![Build Status](https://secure.travis-ci.org/tiagogodinho/localized_fields.png)](http://travis-ci.org/tiagogodinho/localized_fields)
2
2
 
3
3
  Helps you to create forms with localized fields using Mongoid.
4
4
 
5
- ## Dependencies
6
-
7
- - rails >= 3.1
8
- - mongoid >= 2.4
9
-
10
5
  ## Installation
11
6
 
12
7
  Add this line to your application's Gemfile:
13
8
 
14
9
  gem 'localized_fields'
15
- gem 'mongoid', git: 'git://github.com/tiagogodinho/mongoid.git', branch: 'validates_presence'
16
10
 
17
11
  And then execute:
18
12
 
@@ -71,6 +65,15 @@ end
71
65
  <% end %>
72
66
  ```
73
67
 
68
+ ## Dependencies
69
+
70
+ - rails >= 3.1
71
+ - mongoid >= 2.4
72
+
73
+ ## Compatibility
74
+
75
+ Localized Fiedls is tested against Ruby 1.8.7, 1.9.2, 1.9.3, REE and Rubinius.
76
+
74
77
  ## Contributing
75
78
 
76
79
  1. Fork it
@@ -78,3 +81,7 @@ end
78
81
  3. Commit your changes (`git commit -am 'Added some feature'`)
79
82
  4. Push to the branch (`git push origin my-new-feature`)
80
83
  5. Create new Pull Request
84
+
85
+ ## License
86
+
87
+ MIT License. Copyright 2012 Tiago Rafael Godinho
data/Rakefile CHANGED
@@ -4,4 +4,4 @@ require 'rspec/core/rake_task'
4
4
 
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
7
- task default: 'spec'
7
+ task :default => 'spec'
@@ -0,0 +1,49 @@
1
+ module LocalizedFields
2
+ class FormBuilder < ActionView::Helpers::FormBuilder
3
+ def language
4
+ @options[:language] if @options[:language]
5
+ end
6
+
7
+ def label(attribute, options = {})
8
+ if @options.has_key?(:language)
9
+ language = @options[:language]
10
+
11
+ super(attribute, :for => "#{object_name}_#{attribute}_translations_#{language}").html_safe
12
+ else
13
+ field_name = @object_name.match(/.*\[(.*)_translations\]/)[1].capitalize
14
+ super(attribute, field_name, options).html_safe
15
+ end
16
+ end
17
+
18
+ def text_field(attribute, options = {})
19
+ if @options.has_key?(:language)
20
+ language = @options[:language]
21
+
22
+ translations = @object.send("#{attribute}_translations") || {}
23
+
24
+ value = translations.has_key?(language.to_s) ? translations[language.to_s] : nil
25
+
26
+ super(attribute, :value => value, :id => "#{object_name}_#{attribute}_translations_#{language}", :name => "#{object_name}[#{attribute}_translations][#{language}]").html_safe
27
+ else
28
+ value = @object ? @object[attribute.to_s] : nil
29
+ super(attribute, :value => value).html_safe
30
+ end
31
+ end
32
+
33
+ def text_area(attribute, options = {})
34
+ if @options.has_key?(:language)
35
+ language = @options[:language]
36
+
37
+ translations = @object.send("#{attribute}_translations") || {}
38
+
39
+ value = translations.has_key?(language.to_s) ? translations[language.to_s] : nil
40
+
41
+ super(attribute, :value => value, :id => "#{object_name}_#{attribute}_translations_#{language}", :name => "#{object_name}[#{attribute}_translations][#{language}]").html_safe
42
+ else
43
+ value = @object ? @object[attribute.to_s] : nil
44
+
45
+ super(attribute, options.merge(:value => value)).html_safe
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,23 @@
1
+ module LocalizedFields
2
+ module Helpers
3
+ module FormHelper
4
+ def localized_fields(field = nil, options = {}, &block)
5
+ if field
6
+ field_name = "#{field}_translations"
7
+ object = @object.send(field_name)
8
+ name = "#{object_name}[#{field_name}]"
9
+
10
+ @template.fields_for(name, object, options.merge(:builder => LocalizedFields::FormBuilder), &block).html_safe
11
+ else
12
+ output = ''
13
+
14
+ I18n.available_locales.each do |language|
15
+ output << @template.fields_for(object_name, @object, options.merge(:builder => LocalizedFields::FormBuilder, :language => language), &block)
16
+ end
17
+
18
+ output.html_safe
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,7 @@
1
+ module LocalizedFields
2
+ module Helpers
3
+ extend ActiveSupport::Autoload
4
+
5
+ autoload :FormHelper
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module LocalizedFields
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -4,67 +4,10 @@ require 'mongoid'
4
4
  require 'action_view'
5
5
 
6
6
  module LocalizedFields
7
- module FormHelpers
8
- def localized_fields(field = nil, options = {}, &block)
9
- if field
10
- field_name = "#{field}_translations"
11
- object = @object.send(field_name)
12
- name = "#{object_name}[#{field_name}]"
13
-
14
- @template.fields_for(name, object, options.merge(:builder => LocalizedFields::FormBuilder), &block).html_safe
15
- else
16
- output = ''
17
-
18
- I18n.available_locales.each do |language|
19
- output << @template.fields_for(object_name, @object, options.merge(:builder => LocalizedFields::FormBuilder, :language => language), &block)
20
- end
21
-
22
- output.html_safe
23
- end
24
- end
25
- end
7
+ extend ActiveSupport::Autoload
26
8
 
27
- class FormBuilder < ActionView::Helpers::FormBuilder
28
- def language
29
- @options[:language] if @options[:language]
30
- end
31
-
32
- def label(attribute, options = {})
33
- if @options.has_key?(:language)
34
- language = @options[:language]
35
-
36
- super(attribute, for: "#{object_name}_#{attribute}_translations_#{language}").html_safe
37
- else
38
- field_name = @object_name.match(/.*\[(.*)_translations\]/)[1].capitalize
39
- super(attribute, field_name, options).html_safe
40
- end
41
- end
42
-
43
- def text_field(attribute, options = {})
44
- if @options.has_key?(:language)
45
- language = @options[:language]
46
-
47
- translations = @object.send("#{attribute}_translations") || {}
48
-
49
- value = translations.has_key?(language.to_s) ? translations[language.to_s] : nil
50
-
51
- super(attribute, value: value, id: "#{object_name}_#{attribute}_translations_#{language}", name: "#{object_name}[#{attribute}_translations][#{language}]").html_safe
52
- else
53
- value = @object ? @object[attribute.to_s] : nil
54
- super(attribute, value: value).html_safe
55
- end
56
- end
57
-
58
- def text_area(attribute, options = {})
59
- if @options.has_key?(:language)
60
- language = @options[:language]
61
-
62
- super(attribute, id: "#{object_name}_#{attribute}_translations_#{language}", name: "#{object_name}[#{attribute}_translations][#{language}]").html_safe
63
- else
64
- super(attribute, options).html_safe
65
- end
66
- end
67
- end
9
+ autoload :FormBuilder
10
+ autoload :Helpers
68
11
  end
69
12
 
70
- ActionView::Helpers::FormBuilder.send :include, LocalizedFields::FormHelpers
13
+ ActionView::Helpers::FormBuilder.send :include, LocalizedFields::Helpers::FormHelper
@@ -120,5 +120,36 @@ describe 'LocalizedFields' do
120
120
 
121
121
  output.should eq(expected)
122
122
  end
123
+
124
+ context 'post with values' do
125
+ before do
126
+ @post = Post.new
127
+ @post.stub(:title_translations).and_return({ 'en' => 'title en', 'pt' => 'title pt' })
128
+ @template = ActionView::Base.new
129
+ @template.output_buffer = ''
130
+ @builder = ActionView::Helpers::FormBuilder.new(:post, @post, @template, {}, proc {})
131
+ end
132
+
133
+ it 'should return a text_area tag for en' do
134
+ output = @builder.localized_fields(:title) do |localized_field|
135
+ localized_field.text_area :en
136
+ end
137
+
138
+ expected = '<textarea cols="40" id="post_title_translations_en" name="post[title_translations][en]" rows="20">title en</textarea>'
139
+
140
+ output.should eq(expected)
141
+ end
142
+
143
+ it 'should return a text_area tag for all languages' do
144
+ output = @builder.localized_fields do |localized_field|
145
+ localized_field.text_area :title
146
+ end
147
+
148
+ expected = '<textarea cols="40" id="post_title_translations_en" name="post[title_translations][en]" rows="20">title en</textarea>' +
149
+ '<textarea cols="40" id="post_title_translations_pt" name="post[title_translations][pt]" rows="20">title pt</textarea>'
150
+
151
+ output.should eq(expected)
152
+ end
153
+ end
123
154
  end
124
155
  end
data/spec/support/post.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class Post
2
2
  include Mongoid::Document
3
3
 
4
- field :title, localize: true
4
+ field :title, :localize => true
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: localized_fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-05 00:00:00.000000000 Z
12
+ date: 2012-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &2152223900 !ruby/object:Gem::Requirement
16
+ requirement: &2152168120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.4.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152223900
24
+ version_requirements: *2152168120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: actionpack
27
- requirement: &2152222940 !ruby/object:Gem::Requirement
27
+ requirement: &2152167560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.1.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2152222940
35
+ version_requirements: *2152167560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &2152222260 !ruby/object:Gem::Requirement
38
+ requirement: &2152167060 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2152222260
46
+ version_requirements: *2152167060
47
47
  description: Helps you to create forms with localized fields using Mongoid.
48
48
  email:
49
49
  - tiagogodinho3@gmail.com
@@ -53,6 +53,7 @@ extra_rdoc_files: []
53
53
  files:
54
54
  - .gitignore
55
55
  - .rspec
56
+ - .travis.yml
56
57
  - CHANGELOG.md
57
58
  - Gemfile
58
59
  - Gemfile.lock
@@ -60,6 +61,9 @@ files:
60
61
  - README.md
61
62
  - Rakefile
62
63
  - lib/localized_fields.rb
64
+ - lib/localized_fields/form_builder.rb
65
+ - lib/localized_fields/helpers.rb
66
+ - lib/localized_fields/helpers/form_helper.rb
63
67
  - lib/localized_fields/version.rb
64
68
  - localized_fields.gemspec
65
69
  - spec/localized_fields_spec.rb