Skip to content

Commit

Permalink
Merge 99bddb8 into 8a8343b
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnyshields committed Apr 26, 2015
2 parents 8a8343b + 99bddb8 commit 9c706b7
Show file tree
Hide file tree
Showing 12 changed files with 127 additions and 30 deletions.
19 changes: 14 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,25 @@ language: ruby
rvm:
- 1.9.3
- 2.0.0
- 2.1.0

services: mongodb
- 2.1.6
- 2.2.2

before_install: gem install bundler --pre

gemfile:
- Gemfile
- gemfiles/mongoid-master.gemfile
- spec/gemfiles/Gemfile.master
- spec/gemfiles/Gemfile.rails32
- spec/gemfiles/Gemfile.rails40
- spec/gemfiles/Gemfile.rails41
- spec/gemfiles/Gemfile.rails42

notifications:
email:
- tiagogodinho3@gmail.com

matrix:
exclude:
- rvm: 2.2.2
gemfile: spec/gemfiles/Gemfile.rails32
allow_failures:
- gemfile: spec/gemfiles/Gemfile.rails32
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
### Improvements

* Added ability to specify the label text. ([@xavier][]) commit: [7222f15][]
* Fix Travis CI for Rails 4. ([@johnnyshields][])

## 0.2.0 - June 15, 2012

Expand Down
7 changes: 0 additions & 7 deletions gemfiles/mongoid-master.gemfile

This file was deleted.

6 changes: 3 additions & 3 deletions lib/localized_fields/form_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@ def create_field(attribute, options)

value = translations.has_key?(language.to_s) ? translations[language.to_s] : nil

options = options.merge(value: value, id: "#{object_name}_#{attribute}_translations_#{language}", name: "#{object_name}[#{attribute}_translations][#{language}]")
options = options.merge(id: "#{object_name}_#{attribute}_translations_#{language}", name: "#{object_name}[#{attribute}_translations][#{language}]")
else
value = @object ? @object[attribute.to_s] : nil

options = options.merge(value: value)
end

options[:value] ||= value || ''

return attribute, options
end
end
Expand Down
1 change: 1 addition & 0 deletions localized_fields.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,5 @@ Gem::Specification.new do |gem|

gem.add_development_dependency 'rake', '~> 10.1.0'
gem.add_development_dependency 'rspec', '~> 2.14.0'
gem.add_development_dependency 'coveralls'
end
8 changes: 8 additions & 0 deletions spec/gemfiles/Gemfile.master
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
source 'http://rubygems.org'

gemspec path: '../../'

gem 'actionpack', '~> 4.2'
gem 'mongoid', github: 'mongoid'

gem 'coveralls', require: false
6 changes: 6 additions & 0 deletions spec/gemfiles/Gemfile.rails32
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source 'http://rubygems.org'

gemspec path: '../../'

gem 'actionpack', '~> 3.2'
gem 'mongoid', '~> 3.1'
6 changes: 6 additions & 0 deletions spec/gemfiles/Gemfile.rails40
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source 'http://rubygems.org'

gemspec path: '../../'

gem 'actionpack', '~> 4.0'
gem 'mongoid', '~> 4.0'
6 changes: 6 additions & 0 deletions spec/gemfiles/Gemfile.rails41
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source 'http://rubygems.org'

gemspec path: '../../'

gem 'actionpack', '~> 4.1'
gem 'mongoid', '~> 4.0'
6 changes: 6 additions & 0 deletions spec/gemfiles/Gemfile.rails42
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source 'http://rubygems.org'

gemspec path: '../../'

gem 'actionpack', '~> 4.2'
gem 'mongoid', '~> 4.0'
83 changes: 68 additions & 15 deletions spec/localized_fields_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@
describe 'LocalizedFields' do
let(:post) { Post.new }
let(:template) { ActionView::Base.new }
let(:builder) { ActionView::Helpers::FormBuilder.new(:post, post, template, {}) }
let(:builder) { ActionView::Helpers::FormBuilder.new(*builder_args) }
let(:builder_args) do
args = [:post, post, template, {}]
args += [proc {}] if rails3?
args
end

before do
template.output_buffer = ''
Expand All @@ -22,11 +27,11 @@

expected = %{<dl class="field">}
expected << %{<dt><label for="post_title_translations_en">Title</label></dt>}
expected << %{<dd><input id="post_title_translations_en" name="post[title_translations][en]" type="text" /></dd>}
expected << %{<dd><input id="post_title_translations_en" name="post[title_translations][en]" value="" type="text" /></dd>}
expected << %{</dl>}
expected << %{<dl class="field">}
expected << %{<dt><label for="post_title_translations_pt">Title</label></dt>}
expected << %{<dd><input id="post_title_translations_pt" name="post[title_translations][pt]" type="text" /></dd>}
expected << %{<dd><input id="post_title_translations_pt" name="post[title_translations][pt]" value="" type="text" /></dd>}
expected << %{</dl>}

expect(output).to eq(expected)
Expand All @@ -37,8 +42,8 @@
%{<div>#{localized_field.text_field(:title).html_safe}</div>}.html_safe
end

expected = %{<div><input id="post_title_translations_en" name="post[title_translations][en]" type="text" /></div>}
expected << %{<div><input id="post_title_translations_pt" name="post[title_translations][pt]" type="text" /></div>}
expected = %{<div><input id="post_title_translations_en" name="post[title_translations][en]" value="" type="text" /></div>}
expected << %{<div><input id="post_title_translations_pt" name="post[title_translations][pt]" value="" type="text" /></div>}

expect(output).to eq(expected)
end
Expand All @@ -48,7 +53,7 @@
%{<div>#{localized_field.text_field(:en).html_safe}</div>}.html_safe
end

expected = %{<div><input id="post_title_translations_en" name="post[title_translations][en]" type="text" /></div>}
expected = %{<div><input value="" type="text" name="post[title_translations][en]" id="post_title_translations_en" /></div>}

expect(output).to eq(expected)
end
Expand Down Expand Up @@ -126,7 +131,7 @@
localized_field.text_field :en
end

expected = %{<input id="post_title_translations_en" name="post[title_translations][en]" type="text" />}
expected = %{<input value="" type="text" name="post[title_translations][en]" id="post_title_translations_en" />}

expect(output).to eq(expected)
end
Expand All @@ -136,8 +141,8 @@
localized_field.text_field :title
end

expected = %{<input id="post_title_translations_en" name="post[title_translations][en]" type="text" />}
expected << %{<input id="post_title_translations_pt" name="post[title_translations][pt]" type="text" />}
expected = %{<input id="post_title_translations_en" name="post[title_translations][en]" value="" type="text" />}
expected << %{<input id="post_title_translations_pt" name="post[title_translations][pt]" value="" type="text" />}

expect(output).to eq(expected)
end
Expand All @@ -147,21 +152,58 @@
localized_field.text_field :title, class: 'field'
end

expected = %{<input class="field" id="post_title_translations_en" name="post[title_translations][en]" type="text" />}
expected << %{<input class="field" id="post_title_translations_pt" name="post[title_translations][pt]" type="text" />}
expected = %{<input class="field" id="post_title_translations_en" name="post[title_translations][en]" value="" type="text" />}
expected << %{<input class="field" id="post_title_translations_pt" name="post[title_translations][pt]" value="" type="text" />}

expect(output).to eq(expected)
end

context 'post with values' do
before do
post.stub(:title_translations).and_return({ 'en' => 'title en', 'pt' => 'title pt' })
end

it 'returns a text_area tag for en' do
output = builder.localized_fields(:title) do |localized_field|
localized_field.text_field :en
end

expected = %{<input value="title en" type="text" name="post[title_translations][en]" id="post_title_translations_en" />}

expect(output).to eq(expected)
end

it 'returns a text_area tag for ja' do
output = builder.localized_fields(:title) do |localized_field|
localized_field.text_field :ja
end

expected = %{<input value="" type="text" name="post[title_translations][ja]" id="post_title_translations_ja" />}

expect(output).to eq(expected)
end

it 'returns a text_area tag for all languages' do
output = builder.localized_fields do |localized_field|
localized_field.text_field :title
end

expected = %{<input id="post_title_translations_en" name="post[title_translations][en]" value="title en" type="text" />}
expected << %{<input id="post_title_translations_pt" name="post[title_translations][pt]" value="title pt" type="text" />}

expect(output).to eq(expected)
end
end
end

describe 'text_area' do
it 'returns a text_area tag for en' do
output = builder.localized_fields(:title) do |localized_field|
localized_field.text_area :en, value: 'text'
localized_field.text_area :en, value: 'My Value'
end

expected = %{<textarea id="post_title_translations_en" name="post[title_translations][en]">\n}
expected << %{</textarea>}
expected = %{<textarea name="post[title_translations][en]" id="post_title_translations_en">\n}
expected << %{My Value</textarea>}

expect(output).to eq(expected)
end
Expand Down Expand Up @@ -202,7 +244,18 @@
localized_field.text_area :en
end

expected = %{<textarea id="post_title_translations_en" name="post[title_translations][en]">\ntitle en}
expected = %{<textarea name="post[title_translations][en]" id="post_title_translations_en">\ntitle en}
expected << %{</textarea>}

expect(output).to eq(expected)
end

it 'returns a text_area tag for ja' do
output = builder.localized_fields(:title) do |localized_field|
localized_field.text_area :ja
end

expected = %{<textarea name="post[title_translations][ja]" id="post_title_translations_ja">\n}
expected << %{</textarea>}

expect(output).to eq(expected)
Expand Down
8 changes: 8 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,11 @@
require 'localized_fields'

Dir[File.expand_path(File.join(File.dirname(__FILE__), 'support', '**', '*.rb'))].each { |f| require f }

def rails3?
!defined?(ActionView::VERSION::MAJOR)
end

def rails4?
ActionView::VERSION::MAJOR == 4
end

0 comments on commit 9c706b7

Please sign in to comment.