localized_fields 0.0.1 → 0.0.2

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