foundation_rails_helper 0.2.1 → 0.3

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/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml CHANGED
@@ -1,2 +1,3 @@
1
1
  rvm:
2
- - 1.9.2
2
+ - 1.9.2
3
+ - 1.8.7
data/README.md CHANGED
@@ -1,23 +1,22 @@
1
1
  # FoundationRailsHelper [![Build Status](https://secure.travis-ci.org/sgruhier/foundation_rails_helper.png)](http://travis-ci.org/sgruhier/foundation_rails_helper)
2
2
 
3
- Gem for rails 3 application that uses the excellent Zurb Foundation framework.
3
+ Gem for Rails 3 applications that use the excellent Zurb Foundation framework.
4
4
 
5
5
  * [Zurb Foundation](https://github.com/zurb/foundation)
6
6
  * [Zurb Foundation Rails](https://github.com/zurb/foundation-rails)
7
7
 
8
- It includes so far
8
+ So far it includes:
9
9
 
10
- * A custum FormBuilder to generate form with Foundation framework. It replaces the current `form_for` so you don't have to
11
- change your rails code.
12
- Errors messages are propertly displayed
13
- * A `display_flash_messages` helper method to use Zurb Foundation Alerts UI
10
+ * A custom FormBuilder that generates a form using the Foundation framework. It replaces the current `form_for` so you don't have to change your Rails code. Error messages are properly displayed.
14
11
 
15
- I use this gem only been with Rails 3.1 and ruby 1.9.2. It should work for Rails 3.0.
12
+ * A `display_flash_messages` helper method that uses Zurb Foundation Alerts UI.
13
+
14
+ This gem has been used with Rails 3.1, 3.2 and ruby 1.9.2, 1.9.3. It should work for Rails 3.0.
16
15
 
17
16
  ## Screenshots
18
17
 
19
18
  ### Forms
20
- A classic devise sign up views will look like this:
19
+ A classic devise sign up view will look like this:
21
20
 
22
21
  ```erb
23
22
  <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
@@ -28,6 +27,7 @@ A classic devise sign up views will look like this:
28
27
  <%= f.submit %>
29
28
  <% end %>
30
29
  ```
30
+
31
31
  <table>
32
32
  <tr>
33
33
  <th>Form</th>
@@ -47,28 +47,33 @@ A classic devise sign up views will look like this:
47
47
 
48
48
  Add this line to your application's Gemfile:
49
49
 
50
- gem "zurb-foundation"
51
- gem 'foundation_rails_helper'
50
+ ```ruby
51
+ gem 'zurb-foundation'
52
+ gem 'foundation_rails_helper'
53
+ ```
52
54
 
53
55
  And then execute:
54
56
 
55
- $ bundle
56
-
57
+ ```bash
58
+ $ bundle
59
+ ```
57
60
 
58
61
  ## Usage
59
62
 
60
- For form helpers, nothing to do,
63
+ There is nothing additional to do for form helpers.
61
64
 
62
- To get access to `display_flash_messages` in your views add in your `app/helpers/application_helper.rb` file
65
+ To get access to `display_flash_messages` in your views, add
63
66
 
67
+ ```ruby
68
+ include FoundationRailsHelper::FlashHelper
64
69
  ```
65
- include FoundationRailsHelper::FlashHelper
66
- ```
70
+
71
+ to `app/helpers/application_helper.rb`
67
72
 
68
73
  ## TODO
69
74
 
70
75
  * Handle more UI components
71
- * Make somehting for ajax forms
76
+ * Make something for ajax forms
72
77
 
73
78
  ## Contributing
74
79
 
@@ -76,8 +81,8 @@ To get access to `display_flash_messages` in your views add in your `app/helpers
76
81
  2. Create your feature branch (`git checkout -b my-new-feature`)
77
82
  3. Commit your changes (`git commit -am 'Added some feature'`)
78
83
  4. Push to the branch (`git push origin my-new-feature`)
79
- 5. Create new Pull Request
80
-
84
+ 5. Create a new Pull Request
81
85
 
82
86
  ## Copyright
87
+
83
88
  Sébastien Gruhier (http://xilinus.com, http://v2.maptimize.com) - MIT LICENSE - 2012
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require "bundler/gem_tasks"
3
3
  require 'rspec/core/rake_task'
4
4
 
5
5
  RSpec::Core::RakeTask.new(:spec)
6
- task default: :spec
6
+ task :default => :spec
@@ -2,7 +2,7 @@
2
2
  require File.expand_path('../lib/foundation_rails_helper/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Sébastien Gruhier"]
5
+ gem.authors = ["Sebastien Gruhier"]
6
6
  gem.email = ["sebastien.gruhier@xilinus.com"]
7
7
  gem.description = %q{Rails 3 for zurb foundation CSS framework. Form builder, flash message, ...}
8
8
  gem.summary = %q{Rails 3 helpers for zurb foundation CSS framework}
@@ -14,8 +14,8 @@ Gem::Specification.new do |gem|
14
14
  gem.name = "foundation_rails_helper"
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = FoundationRailsHelper::VERSION
17
-
18
- gem.add_dependency 'railties', '~> 3.0'
17
+
18
+ gem.add_dependency 'railties', '~> 3.0'
19
19
  gem.add_dependency "actionpack", '~> 3.0'
20
20
  gem.add_development_dependency "rspec-rails"
21
21
  gem.add_development_dependency "capybara"
@@ -2,20 +2,22 @@ require 'action_view/helpers'
2
2
 
3
3
  module FoundationRailsHelper
4
4
  module FlashHelper
5
- # <div class="alert-box [success warning error]">
6
- # This is a success alert (div.alert-box.success).
5
+ # <div class="alert-box [success alert secondary]">
6
+ # This is an alert box.
7
7
  # <a href="" class="close">&times;</a>
8
8
  # </div>
9
- KEY_MATCHING = {
10
- :notice => :success,
11
- :info => :warning,
12
- :failure => :error,
13
- :alert => :error,
9
+ DEFAULT_KEY_MATCHING = {
10
+ :alert => :alert,
11
+ :notice => :success,
12
+ :info => :standard,
13
+ :secondary => :secondary,
14
14
  }
15
- def display_flash_messages
16
- flash.inject "" do |message, (key, value)|
17
- message += content_tag :div, :class => "alert-box #{KEY_MATCHING[key] || key}" do
18
- (value + link_to("x", "#", :class => :close)).html_safe
15
+ def display_flash_messages(key_matching = {})
16
+ key_matching = DEFAULT_KEY_MATCHING.merge(key_matching)
17
+
18
+ flash.inject "" do |message, (key, value)|
19
+ message += content_tag :div, :class => "alert-box #{key_matching[key] || :standard}" do
20
+ (value + link_to("&times;".html_safe, "#", :class => :close)).html_safe
19
21
  end
20
22
  end.html_safe
21
23
  end
@@ -3,80 +3,116 @@ require 'action_view/helpers'
3
3
  module FoundationRailsHelper
4
4
  class FormBuilder < ActionView::Helpers::FormBuilder
5
5
  include ActionView::Helpers::TagHelper
6
- def error_for(attribute)
7
- content_tag(:small, object.errors[attribute].join(', '), :class => :error) unless object.errors[attribute].blank?
8
- end
9
-
10
- %w(file_field email_field text_field text_area select).each do |method_name|
11
- define_method(method_name) do |attribute, options = {}|
12
- field(attribute, options) do |class_name|
13
- super(attribute, :class => class_name)
14
- end
6
+ %w(file_field email_field text_field text_area telephone_field phone_field url_field number_field).each do |method_name|
7
+ define_method(method_name) do |*args|
8
+ attribute = args[0]
9
+ options = args[1] || {}
10
+ field(attribute, options) do |options|
11
+ super(attribute, options)
12
+ end
15
13
  end
16
14
  end
17
-
18
- def check_box(attribute, options = {})
19
- l = label(attribute, options)
20
- c = super(attribute, options)
21
- l.gsub(/(for=\"\w*\"\>)/, "\\1#{c} ").html_safe
15
+
16
+ def check_box(attribute, options = {})
17
+ custom_label(attribute, options[:label], options[:label_options]) do
18
+ options.delete(:label)
19
+ options.delete(:label_options)
20
+ super(attribute, options)
21
+ end + error_and_hint(attribute, options)
22
22
  end
23
-
23
+
24
24
  def radio_button(attribute, tag_value, options = {})
25
25
  options[:for] ||= "#{object.class.to_s.downcase}_#{attribute}_#{tag_value}"
26
26
  l = label(attribute, options)
27
27
  c = super(attribute, tag_value, options)
28
28
  l.gsub(/(for=\"\w*\"\>)/, "\\1#{c} ").html_safe
29
29
  end
30
-
30
+
31
31
  def password_field(attribute, options = {})
32
- field attribute, options do |class_name|
33
- super(attribute, :class => class_name, :autocomplete => :off)
32
+ field attribute, options do |options|
33
+ super(attribute, options.merge(:autocomplete => :off))
34
34
  end
35
35
  end
36
-
36
+
37
37
  def datetime_select(attribute, options = {})
38
- field attribute, options do |class_name|
39
- super(attribute, {}, :class => class_name, :autocomplete => :off)
38
+ field attribute, options do |options|
39
+ super(attribute, {}, options.merge(:autocomplete => :off))
40
+ end
41
+ end
42
+
43
+ def date_select(attribute, options = {}, html_options = {})
44
+ field attribute, html_options do |html_options|
45
+ super(attribute, options, html_options.merge(:autocomplete => :off))
46
+ end
47
+ end
48
+
49
+ def time_zone_select(attribute, options = {})
50
+ field attribute, options do |options|
51
+ super(attribute, {}, options.merge(:autocomplete => :off))
40
52
  end
41
53
  end
42
-
43
- def date_select(attribute, options = {})
44
- field attribute, options do |class_name|
45
- super(attribute, {}, :class => class_name, :autocomplete => :off)
54
+
55
+ def select(attribute, choices, options = {}, html_options = {})
56
+ field attribute, options do |options|
57
+ html_options[:autocomplete] ||= :off
58
+ super(attribute, choices, options, html_options)
46
59
  end
47
60
  end
48
-
61
+
49
62
  def autocomplete(attribute, url, options = {})
50
- field attribute, options do |class_name|
51
- autocomplete_field(attribute, url, :class => class_name,
52
- :update_elements => options[:update_elements],
53
- :min_lenth => 0,
54
- :value => object.send(attribute))
55
- end
63
+ field attribute, options do |options|
64
+ autocomplete_field(attribute, url, options.merge(:update_elements => options[:update_elements],
65
+ :min_length => 0,
66
+ :value => object.send(attribute)))
67
+ end
56
68
  end
57
69
 
58
70
  def submit(value=nil, options={})
59
- options[:class] ||= "nice small radius blue button"
71
+ options[:class] ||= "small radius success button"
60
72
  super(value, options)
61
73
  end
62
-
74
+
63
75
  private
64
- def custom_label(attribute, text = nil)
65
- has_error = !object.errors[attribute].blank?
66
- label(attribute, text, :class => has_error ? :red : '')
76
+ def has_error?(attribute)
77
+ !object.errors[attribute].blank?
78
+ end
79
+
80
+ def error_for(attribute, options = {})
81
+ class_name = "error"
82
+ class_name += " #{options[:class]}" if options[:class]
83
+ content_tag(:small, object.errors[attribute].join(', '), :class => class_name) if has_error?(attribute)
84
+ end
85
+
86
+ def custom_label(attribute, text, options, &block)
87
+ if text == false
88
+ text = ""
89
+ elsif text.nil?
90
+ text = object.class.human_attribute_name(attribute)
91
+ end
92
+ text = block.call.html_safe + text if block_given?
93
+ options ||= {}
94
+ options[:class] ||= ""
95
+ options[:class] += " error" if has_error?(attribute)
96
+ label(attribute, text, options)
67
97
  end
68
-
69
- def error_and_hint(attribute)
98
+
99
+ def error_and_hint(attribute, options = {})
70
100
  html = ""
71
101
  html += content_tag(:span, options[:hint], :class => :hint) if options[:hint]
72
- html += error_for(attribute) || ""
102
+ html += error_for(attribute, options) || ""
73
103
  html.html_safe
74
104
  end
75
-
105
+
76
106
  def field(attribute, options, &block)
77
- html = custom_label(attribute, options[:label])
78
- html += yield("#{options[:class] || "medium"} input-text")
79
- html += error_and_hint(attribute)
107
+ html = ''.html_safe
108
+ html = custom_label(attribute, options[:label], options[:label_options]) if false != options[:label]
109
+ options[:class] ||= "medium"
110
+ options[:class] = "#{options[:class]} input-text"
111
+ options[:class] += " error" if has_error?(attribute)
112
+ options.delete(:label)
113
+ options.delete(:label_options)
114
+ html += yield(options)
115
+ html += error_and_hint(attribute, options)
80
116
  end
81
117
  end
82
118
  end
@@ -1,3 +1,3 @@
1
1
  module FoundationRailsHelper
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3"
3
3
  end
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe FoundationRailsHelper::FlashHelper do
6
+ include ActionView::Context if defined?(ActionView::Context)
7
+ include ActionView::Helpers::UrlHelper
8
+ include ActionView::Helpers::TagHelper
9
+ include FoundationRailsHelper::FlashHelper
10
+
11
+ FoundationRailsHelper::FlashHelper::DEFAULT_KEY_MATCHING.each do |message_type, foundation_type|
12
+ it "displays flash message with #{foundation_type} class for #{message_type} message" do
13
+ self.stub!(:flash).and_return({message_type => "Flash message"})
14
+ node = Capybara.string display_flash_messages
15
+ node.should have_css("div.alert-box.#{foundation_type}", :text => "Flash message")
16
+ node.should have_css("div.alert-box a.close", :text => "×")
17
+ end
18
+ end
19
+
20
+ it "displays flash message with overridden key matching" do
21
+ self.stub!(:flash).and_return({:notice => "Flash message"})
22
+ node = Capybara.string display_flash_messages({:notice => :alert})
23
+ node.should have_css("div.alert-box.alert")
24
+ end
25
+
26
+ it "displays flash message with custom key matching" do
27
+ self.stub!(:flash).and_return({:custom_type => "Flash message"})
28
+ node = Capybara.string display_flash_messages({:custom_type => :custom_class})
29
+ node.should have_css("div.alert-box.custom_class")
30
+ end
31
+
32
+ it "displays flash message with standard class if key doesn't match" do
33
+ self.stub!(:flash).and_return({:custom_type => "Flash message"})
34
+ node = Capybara.string display_flash_messages
35
+ node.should have_css("div.alert-box.standard")
36
+ end
37
+ end
@@ -10,7 +10,7 @@ describe "FoundationRailsHelper::FormHelper" do
10
10
  it 'should have FoundationRailsHelper::FormHelper as default buidler' do
11
11
  form_for(@author) do |builder|
12
12
  builder.class.should == FoundationRailsHelper::FormBuilder
13
- end
13
+ end
14
14
  end
15
15
 
16
16
  describe "input generators" do
@@ -20,24 +20,60 @@ describe "FoundationRailsHelper::FormHelper" do
20
20
  node.should have_css('label[for="author_login"]', :text => "Login")
21
21
  node.should have_css('input.medium.input-text[type="text"][name="author[login]"]')
22
22
  node.find_field('author_login').value.should == @author.login
23
- end
23
+ end
24
24
  end
25
-
25
+
26
+ it "should generate text_field input without label" do
27
+ form_for(@author) do |builder|
28
+ node = Capybara.string builder.text_field(:login, :label => false)
29
+ node.should_not have_css('label[for="author_login"]', :text => "Login")
30
+ node.should have_css('input.medium.input-text[type="text"][name="author[login]"]')
31
+ node.find_field('author_login').value.should == @author.login
32
+ end
33
+ end
34
+
26
35
  it "should generate password_field input" do
27
36
  form_for(@author) do |builder|
28
37
  node = Capybara.string builder.password_field(:password)
29
38
  node.should have_css('label[for="author_password"]', :text => "Password")
30
39
  node.should have_css('input.medium.input-text[type="password"][name="author[password]"]')
31
40
  node.find_field('author_password').value.should be_nil
32
- end
41
+ end
33
42
  end
34
-
43
+
35
44
  it "should generate email_field input" do
36
45
  form_for(@author) do |builder|
37
46
  node = Capybara.string builder.email_field(:email)
38
47
  node.should have_css('label[for="author_email"]', :text => "Email")
39
48
  node.should have_css('input.medium.input-text[type="email"][name="author[email]"]')
40
49
  node.find_field('author_email').value.should == @author.email
50
+ end
51
+ end
52
+
53
+ it "should generate url_field input" do
54
+ form_for(@author) do |builder|
55
+ node = Capybara.string builder.url_field(:url)
56
+ node.should have_css('label[for="author_url"]', :text => "Url")
57
+ node.should have_css('input.medium.input-text[type="url"][name="author[url]"]')
58
+ node.find_field('author_url').value.should == @author.url
59
+ end
60
+ end
61
+
62
+ it "should generate phone_field input" do
63
+ form_for(@author) do |builder|
64
+ node = Capybara.string builder.phone_field(:phone)
65
+ node.should have_css('label[for="author_phone"]', :text => "Phone")
66
+ node.should have_css('input.medium.input-text[type="tel"][name="author[phone]"]')
67
+ node.find_field('author_phone').value.should == @author.phone
68
+ end
69
+ end
70
+
71
+ it "should generate number_field input" do
72
+ form_for(@author) do |builder|
73
+ node = Capybara.string builder.number_field(:some_number)
74
+ node.should have_css('label[for="author_some_number"]', :text => "Some number")
75
+ node.should have_css('input.medium.input-text[type="number"][name="author[some_number]"]')
76
+ node.find_field('author_some_number').value.should == @author.some_number
41
77
  end
42
78
  end
43
79
 
@@ -46,47 +82,79 @@ describe "FoundationRailsHelper::FormHelper" do
46
82
  node = Capybara.string builder.text_area(:description)
47
83
  node.should have_css('label[for="author_description"]', :text => "Description")
48
84
  node.should have_css('textarea.medium.input-text[name="author[description]"]')
49
- node.find_field('author_description').value.should == @author.description
50
- end
85
+ node.find_field('author_description').value.strip.should == @author.description
86
+ end
51
87
  end
52
-
88
+
53
89
  it "should generate file_field input" do
54
90
  form_for(@author) do |builder|
55
91
  node = Capybara.string builder.file_field(:avatar)
56
92
  node.should have_css('label[for="author_avatar"]', :text => "Avatar")
57
93
  node.should have_css('input.medium.input-text[type="file"][name="author[avatar]"]')
58
94
  node.find_field('author_avatar').value.should be_nil
59
- end
95
+ end
60
96
  end
61
-
97
+
98
+ it "should generate select input" do
99
+ form_for(@author) do |builder|
100
+ node = Capybara.string builder.select(:description, [["Choice #1", :a], ["Choice #2", :b]])
101
+ node.should have_css('label[for="author_description"]', :text => "Description")
102
+ node.should have_css('select[name="author[description]"]')
103
+ node.should have_css('select[name="author[description]"] option[value="a"]', :text => "Choice #1")
104
+ node.should have_css('select[name="author[description]"] option[value="b"]', :text => "Choice #2")
105
+ end
106
+ end
107
+
62
108
  it "should generate check_box input" do
63
109
  form_for(@author) do |builder|
64
110
  node = Capybara.string builder.check_box(:active)
65
111
  node.should have_css('label[for="author_active"] input[type="hidden"][name="author[active]"][value="0"]')
66
112
  node.should have_css('label[for="author_active"] input[type="checkbox"][name="author[active]"]')
67
- end
113
+ node.should have_css('label[for="author_active"]', :text => "Active")
114
+ end
68
115
  end
69
-
116
+ it "should generate check_box input without a label" do
117
+ form_for(@author) do |builder|
118
+ node = Capybara.string builder.check_box(:active, :label => false)
119
+ node.should have_css('label[for="author_active"] input[type="hidden"][name="author[active]"][value="0"]')
120
+ node.should have_css('label[for="author_active"] input[type="checkbox"][name="author[active]"]')
121
+ node.should have_css('label[for="author_active"]', :text => "")
122
+ end
123
+ end
124
+
70
125
  it "should generate radio_button input" do
71
126
  form_for(@author) do |builder|
72
- node = Capybara.string builder.radio_button(:active, "ok")
127
+ node = Capybara.string builder.label(:active) + builder.radio_button(:active, "ok")
73
128
  node.should have_css('label[for="author_active_ok"] input[type="radio"][name="author[active]"]')
74
- end
129
+ end
75
130
  end
76
-
131
+
77
132
  it "should generate date_select input" do
78
133
  form_for(@author) do |builder|
79
- node = Capybara.string builder.date_select(:birthdate)
134
+ node = Capybara.string builder.label(:birthdate) + builder.date_select(:birthdate)
80
135
  node.should have_css('label[for="author_birthdate"]', :text => "Birthdate")
81
136
  %w(1 2 3).each {|i| node.should have_css("select.medium.input-text[name='author[birthdate(#{i}i)]']") }
82
137
  node.should have_css('select#author_birthdate_1i option[selected="selected"][value="1969"]')
83
138
  node.should have_css('select#author_birthdate_2i option[selected="selected"][value="6"]')
84
139
  node.should have_css('select#author_birthdate_3i option[selected="selected"][value="18"]')
85
140
  %w(4 5).each {|i| node.should_not have_css("select.medium.input-text[name='author[birthdate(#{i}i)]']") }
86
- end
141
+ end
142
+ end
143
+
144
+ it "should generate date_select input with :discard_year => true" do
145
+ form_for(@author) do |builder|
146
+ node = Capybara.string builder.label(:birthdate) + builder.date_select(:birthdate, :discard_year => true)
147
+ node.should have_css('label[for="author_birthdate"]', :text => "Birthdate")
148
+ %w(2 3).each {|i| node.should have_css("select.medium.input-text[name='author[birthdate(#{i}i)]']") }
149
+ node.should_not have_css('select#author_birthdate_1i option[selected="selected"][value="1969"]')
150
+ node.should have_css('select#author_birthdate_2i option[selected="selected"][value="6"]')
151
+ node.should have_css('select#author_birthdate_3i option[selected="selected"][value="18"]')
152
+ %w(1 4 5).each {|i| node.should_not have_css("select.medium.input-text[name='author[birthdate(#{i}i)]']") }
153
+ end
87
154
  end
155
+
88
156
  end
89
-
157
+
90
158
  describe "errors generator" do
91
159
  it "should not display errors" do
92
160
  form_for(@author) do |builder|
@@ -56,7 +56,7 @@ module FoundationRailsSpecHelper
56
56
  def persisted?
57
57
  end
58
58
  end
59
-
59
+
60
60
  def mock_everything
61
61
  # Resource-oriented styles like form_for(@post) will expect a path method for the object,
62
62
  # so we're defining some here.
@@ -69,6 +69,9 @@ module FoundationRailsSpecHelper
69
69
  @author.stub!(:to_label).and_return('Fred Smith')
70
70
  @author.stub!(:login).and_return('fred_smith')
71
71
  @author.stub!(:email).and_return('fred@foo.com')
72
+ @author.stub!(:url).and_return('http://example.com')
73
+ @author.stub!(:some_number).and_return('42')
74
+ @author.stub!(:phone).and_return('317 456 2564')
72
75
  @author.stub!(:password).and_return('secret')
73
76
  @author.stub!(:active).and_return(true)
74
77
  @author.stub!(:description).and_return('bla bla bla')
@@ -84,7 +87,7 @@ module FoundationRailsSpecHelper
84
87
  ::Author.stub!(:find).and_return([@author])
85
88
  ::Author.stub!(:all).and_return([@author])
86
89
  ::Author.stub!(:where).and_return([@author])
87
- ::Author.stub!(:human_attribute_name).and_return { |column_name| column_name.humanize }
90
+ ::Author.stub!(:human_attribute_name).and_return { |column_name| column_name.to_s.humanize }
88
91
  ::Author.stub!(:human_name).and_return('::Author')
89
92
  ::Author.stub!(:content_columns).and_return([mock('column', :name => 'login'), mock('column', :name => 'created_at')])
90
93
  ::Author.stub!(:to_key).and_return(nil)
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foundation_rails_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: '0.3'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - Sébastien Gruhier
8
+ - Sebastien Gruhier
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-15 00:00:00.000000000Z
12
+ date: 2013-01-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
- requirement: &70200733481280 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70200733481280
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: actionpack
27
- requirement: &70200733480760 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '3.0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70200733480760
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rspec-rails
38
- requirement: &70200733480380 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70200733480380
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: capybara
49
- requirement: &70200733407720 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,7 +69,12 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70200733407720
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  description: Rails 3 for zurb foundation CSS framework. Form builder, flash message,
59
79
  ...
60
80
  email:
@@ -64,6 +84,7 @@ extensions: []
64
84
  extra_rdoc_files: []
65
85
  files:
66
86
  - .gitignore
87
+ - .rspec
67
88
  - .travis.yml
68
89
  - CHANGELOG.md
69
90
  - Gemfile
@@ -77,7 +98,7 @@ files:
77
98
  - lib/foundation_rails_helper/form_builder.rb
78
99
  - lib/foundation_rails_helper/version.rb
79
100
  - lib/railtie.rb
80
- - spec/foundation_rails_helper/flash_spec.rb
101
+ - spec/foundation_rails_helper/flash_helper_spec.rb
81
102
  - spec/foundation_rails_helper/form_builder_spec.rb
82
103
  - spec/spec_helper.rb
83
104
  - spec/support/mock_rails.rb
@@ -101,12 +122,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
122
  version: '0'
102
123
  requirements: []
103
124
  rubyforge_project:
104
- rubygems_version: 1.8.10
125
+ rubygems_version: 1.8.23
105
126
  signing_key:
106
127
  specification_version: 3
107
128
  summary: Rails 3 helpers for zurb foundation CSS framework
108
129
  test_files:
109
- - spec/foundation_rails_helper/flash_spec.rb
130
+ - spec/foundation_rails_helper/flash_helper_spec.rb
110
131
  - spec/foundation_rails_helper/form_builder_spec.rb
111
132
  - spec/spec_helper.rb
112
133
  - spec/support/mock_rails.rb
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "FoundationRailsHelper::FlashHelper" do
4
- include ActionView::Context if defined?(ActionView::Context)
5
- include ActionView::Helpers::UrlHelper
6
- include ActionView::Helpers::TagHelper
7
- include FoundationRailsHelper::FlashHelper
8
-
9
- %w(error warning success).each do |message_type|
10
- it "should display a flash for #{message_type} message" do
11
- self.stub!(:flash).and_return({message_type => "Error message"})
12
- node = Capybara.string display_flash_messages
13
- node.should have_css("div.alert-box.#{message_type}", :text => "Error message")
14
- node.should have_css("div.alert-box a.close", :text => "x")
15
-
16
- end
17
- end
18
- it "should use flash key matching" do
19
- self.stub!(:flash).and_return({:notice => "Error message"})
20
- node = Capybara.string display_flash_messages
21
- node.should have_css("div.alert-box.success")
22
- end
23
- end