padrino-helpers 0.9.7 → 0.9.9

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/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- require 'sdoc'
4
3
 
5
4
  GEM_VERSION = File.read(File.dirname(__FILE__) + '/VERSION')
6
5
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.7
1
+ 0.9.9
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/abstract_form_builder' unless defined?(AbstractFormBuilder)
1
+ require File.expand_path(File.dirname(__FILE__) + '/abstract_form_builder') unless defined?(AbstractFormBuilder)
2
2
 
3
3
  module Padrino
4
4
  module Helpers
@@ -103,7 +103,7 @@ module Padrino
103
103
  def error_messages_for(*objects)
104
104
  options = objects.extract_options!.symbolize_keys
105
105
  objects = objects.collect {|object_name| object_name.is_a?(Symbol) ? instance_variable_get("@#{object_name}") : object_name }.compact
106
- count = objects.inject(0) {|sum, object| sum + object.errors.count }
106
+ count = objects.inject(0) {|sum, object| sum + object.errors.size }
107
107
 
108
108
  unless count.zero?
109
109
  html = {}
@@ -122,12 +122,18 @@ module Padrino
122
122
  header_message = if options.include?(:header_message)
123
123
  options[:header_message]
124
124
  else
125
- object_name = options[:object_name].to_s.gsub('_', ' ')
126
- object_name = I18n.t(object_name, :default => object_name, :scope => :models, :count => 1)
125
+ object_name = options[:object_name].to_s.underscore.gsub('_', ' ')
126
+ object_name = I18n.t(:name, :default => object_name.humanize, :scope => [:models, object_name], :count => 1)
127
127
  locale.t :header, :count => count, :model => object_name
128
128
  end
129
129
  message = options.include?(:message) ? options[:message] : locale.t(:body)
130
- error_messages = objects.map {|object| object.errors.full_messages.map {|msg| content_tag(:li, msg) } }.join
130
+ error_messages = objects.map { |object|
131
+ object_name = options[:object_name].to_s.underscore.gsub('_', ' ')
132
+ object.errors.map { |f, msg|
133
+ field = I18n.t(f, :default => object_name.humanize, :scope => [:models, object_name, :attributes])
134
+ content_tag(:li, "%s %s" % [field, msg])
135
+ }
136
+ }.join
131
137
 
132
138
  contents = ''
133
139
  contents << content_tag(options[:header_tag] || :h2, header_message) unless header_message.blank?
@@ -167,7 +173,8 @@ module Padrino
167
173
  if error
168
174
  options.reverse_merge!(:tag => :span, :class => :error)
169
175
  tag = options.delete(:tag)
170
- error = [options.delete(:prepend), Array(object.errors[field]).first, options.delete(:append)].compact.join(" ")
176
+ # Array(error).first is necessary because some orm give us an array others directly a value
177
+ error = [options.delete(:prepend), Array(error).first, options.delete(:append)].compact.join(" ")
171
178
  content_tag(tag, error, options)
172
179
  else
173
180
  ''
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{padrino-helpers}
8
- s.version = "0.9.7"
8
+ s.version = "0.9.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Padrino Team", "Nathan Esquenazi", "Davide D'Agostino", "Arthur Chiu"]
12
- s.date = %q{2010-03-22}
12
+ s.date = %q{2010-03-29}
13
13
  s.description = %q{Tag helpers, asset helpers, form helpers, form builders and many more helpers for padrino}
14
14
  s.email = %q{padrinorb@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -84,14 +84,14 @@ Gem::Specification.new do |s|
84
84
  s.specification_version = 3
85
85
 
86
86
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
87
- s.add_runtime_dependency(%q<padrino-core>, ["= 0.9.7"])
87
+ s.add_runtime_dependency(%q<padrino-core>, ["= 0.9.9"])
88
88
  s.add_development_dependency(%q<haml>, [">= 2.2.1"])
89
89
  s.add_development_dependency(%q<shoulda>, [">= 2.10.3"])
90
90
  s.add_development_dependency(%q<mocha>, [">= 0.9.7"])
91
91
  s.add_development_dependency(%q<rack-test>, [">= 0.5.0"])
92
92
  s.add_development_dependency(%q<webrat>, [">= 0.5.1"])
93
93
  else
94
- s.add_dependency(%q<padrino-core>, ["= 0.9.7"])
94
+ s.add_dependency(%q<padrino-core>, ["= 0.9.9"])
95
95
  s.add_dependency(%q<haml>, [">= 2.2.1"])
96
96
  s.add_dependency(%q<shoulda>, [">= 2.10.3"])
97
97
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
@@ -99,7 +99,7 @@ Gem::Specification.new do |s|
99
99
  s.add_dependency(%q<webrat>, [">= 0.5.1"])
100
100
  end
101
101
  else
102
- s.add_dependency(%q<padrino-core>, ["= 0.9.7"])
102
+ s.add_dependency(%q<padrino-core>, ["= 0.9.9"])
103
103
  s.add_dependency(%q<haml>, [">= 2.2.1"])
104
104
  s.add_dependency(%q<shoulda>, [">= 2.10.3"])
105
105
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
@@ -41,7 +41,7 @@ class MarkupDemo < Sinatra::Base
41
41
  end
42
42
 
43
43
  class MarkupUser
44
- def errors; Errors.new; end
44
+ def errors; { :fake => "must be valid", :second => "must be present", :third => "must be a number", :email => "must be a email"}; end
45
45
  def session_id; 45; end
46
46
  def gender; 'male'; end
47
47
  def remember_me; '1'; end
@@ -53,14 +53,6 @@ class Permission
53
53
  def can_delete; false; end
54
54
  end
55
55
 
56
- class Errors < Array
57
- def initialize; self << [:fake, :second, :third]; end
58
- def [](fake); true if fake == :email; end
59
- def full_messages
60
- ["This is a fake error", "This is a second fake error", "This is a third fake error"]
61
- end
62
- end
63
-
64
56
  module Outer
65
57
  class UserAccount; end
66
58
  end
@@ -1,5 +1,5 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/fixtures/markup_app/app'
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
3
 
4
4
  class TestAssetTagHelpers < Test::Unit::TestCase
5
5
  include Padrino::Helpers::AssetTagHelpers
@@ -1,5 +1,5 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/fixtures/markup_app/app'
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
3
 
4
4
  class TestFormBuilder < Test::Unit::TestCase
5
5
  include Padrino::Helpers::FormHelpers
@@ -9,11 +9,10 @@ class TestFormBuilder < Test::Unit::TestCase
9
9
  end
10
10
 
11
11
  def setup
12
- error_stub = stub(:full_messages => ["1", "2"], :count => 2, :[] => [])
13
12
  role_types = [stub(:name => 'Admin', :id => 1), stub(:name => 'Moderate', :id => 2), stub(:name => 'Limited', :id => 3)]
14
- @user = stub(:errors => error_stub, :class => 'User', :first_name => "Joe", :session_id => 54)
13
+ @user = stub(:errors => {:a => "must be present", :b => "must be valid"}, :class => 'User', :first_name => "Joe", :session_id => 54)
15
14
  @user.stubs(:role_types => role_types, :role => "1")
16
- @user_none = stub(:errors => stub(:count => 0), :class => 'User')
15
+ @user_none = stub(:errors => {}, :class => 'User')
17
16
  end
18
17
 
19
18
  def standard_builder(object=@user)
@@ -131,27 +130,35 @@ class TestFormBuilder < Test::Unit::TestCase
131
130
  should "display correct form html with valid record" do
132
131
  actual_html = standard_builder.error_messages(:header_message => "Demo form cannot be saved", :style => "foo:bar", :class => "mine")
133
132
  assert_has_tag('#field-errors h2', :content => "Demo form cannot be saved") { actual_html }
134
- assert_has_tag('#field-errors ul li', :content => "1") { actual_html }
135
- assert_has_tag('#field-errors ul li', :content => "2") { actual_html }
133
+ assert_has_tag('#field-errors ul li', :content => "User must be valid") { actual_html }
134
+ assert_has_tag('#field-errors ul li', :content => "User must be present") { actual_html }
136
135
  assert_has_tag('#field-errors', :style => "foo:bar") { actual_html }
137
136
  assert_has_tag('#field-errors', :class => "mine") { actual_html }
138
137
  end
139
138
 
140
139
  should "display correct form in haml" do
141
140
  visit '/haml/form_for'
142
- assert_have_selector '#demo div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
143
- assert_have_selector '#demo div.field-errors ul li', :content => "This is a fake error"
144
- assert_have_selector '#demo2 div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
145
- assert_have_selector '#demo2 div.field-errors ul li', :content => "This is a fake error"
141
+ assert_have_selector '#demo div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
142
+ assert_have_selector '#demo div.field-errors ul li', :content => "Markup user must be valid"
143
+ assert_have_selector '#demo div.field-errors ul li', :content => "Markup user must be present"
144
+ assert_have_selector '#demo div.field-errors ul li', :content => "Markup user must be a number"
145
+ assert_have_selector '#demo2 div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
146
+ assert_have_selector '#demo2 div.field-errors ul li', :content => "Markup user must be valid"
147
+ assert_have_selector '#demo2 div.field-errors ul li', :content => "Markup user must be present"
148
+ assert_have_selector '#demo2 div.field-errors ul li', :content => "Markup user must be a number"
146
149
  assert_have_selector '#demo input', :name => 'markup_user[email]', :class => 'invalid'
147
150
  end
148
151
 
149
152
  should "display correct form in erb" do
150
153
  visit '/erb/form_for'
151
- assert_have_selector '#demo div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
152
- assert_have_selector '#demo div.field-errors ul li', :content => "This is a fake error"
153
- assert_have_selector '#demo2 div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
154
- assert_have_selector '#demo2 div.field-errors ul li', :content => "This is a fake error"
154
+ assert_have_selector '#demo div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
155
+ assert_have_selector '#demo div.field-errors ul li', :content => "Markup user must be valid"
156
+ assert_have_selector '#demo div.field-errors ul li', :content => "Markup user must be present"
157
+ assert_have_selector '#demo div.field-errors ul li', :content => "Markup user must be a number"
158
+ assert_have_selector '#demo2 div.field-errors h2', :content => "custom MarkupUser cannot be saved!"
159
+ assert_have_selector '#demo2 div.field-errors ul li', :content => "Markup user must be valid"
160
+ assert_have_selector '#demo2 div.field-errors ul li', :content => "Markup user must be present"
161
+ assert_have_selector '#demo2 div.field-errors ul li', :content => "Markup user must be a number"
155
162
  assert_have_selector '#demo input', :name => 'markup_user[email]', :class => 'invalid'
156
163
  end
157
164
  end
@@ -1,5 +1,5 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/fixtures/markup_app/app'
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
3
 
4
4
  class TestFormHelpers < Test::Unit::TestCase
5
5
  include Padrino::Helpers::FormHelpers
@@ -76,7 +76,7 @@ class TestFormHelpers < Test::Unit::TestCase
76
76
 
77
77
  context 'for #error_messages_for method' do
78
78
  should "display correct error messages list in ruby" do
79
- user = stub(:class => "User", :errors => stub(:full_messages => ["1", "2"], :count => 2), :blank? => false)
79
+ user = stub(:class => "User", :errors => { :a => "1", :b => "2" }, :blank? => false)
80
80
  actual_html = error_messages_for(user)
81
81
  assert_has_tag('div.field-errors') { actual_html }
82
82
  assert_has_tag('div.field-errors h2', :content => "2 errors prohibited this User from being saved") { actual_html }
@@ -92,8 +92,10 @@ class TestFormHelpers < Test::Unit::TestCase
92
92
  assert_have_selector 'form.advanced-form .field-errors h2', :content => "There are problems with saving user!"
93
93
  assert_have_selector 'form.advanced-form .field-errors p', :content => "There were problems with the following fields:"
94
94
  assert_have_selector 'form.advanced-form .field-errors ul'
95
- assert_have_selector 'form.advanced-form .field-errors ul li', :count => 3
96
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "This is a second fake error"
95
+ assert_have_selector 'form.advanced-form .field-errors ul li', :count => 4
96
+ assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Markup user must be valid"
97
+ assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Markup user must be present"
98
+ assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Markup user must be a number"
97
99
  end
98
100
 
99
101
  should "display correct error messages list in haml" do
@@ -101,10 +103,12 @@ class TestFormHelpers < Test::Unit::TestCase
101
103
  assert_have_no_selector 'form.simple-form .field-errors'
102
104
  assert_have_selector 'form.advanced-form .field-errors'
103
105
  assert_have_selector 'form.advanced-form .field-errors h2', :content => "There are problems with saving user!"
104
- assert_have_selector 'form.advanced-form .field-errors p', :content => "There were problems with the following fields:"
106
+ assert_have_selector 'form.advanced-form .field-errors p', :content => "There were problems with the following fields:"
105
107
  assert_have_selector 'form.advanced-form .field-errors ul'
106
- assert_have_selector 'form.advanced-form .field-errors ul li', :count => 3
107
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "This is a second fake error"
108
+ assert_have_selector 'form.advanced-form .field-errors ul li', :count => 4
109
+ assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Markup user must be valid"
110
+ assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Markup user must be present"
111
+ assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Markup user must be a number"
108
112
  end
109
113
  end
110
114
 
@@ -1,11 +1,15 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/fixtures/markup_app/app'
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
3
 
4
4
  class TestFormatHelpers < Test::Unit::TestCase
5
5
  def app
6
6
  MarkupDemo.tap { |app| app.set :environment, :test }
7
7
  end
8
8
 
9
+ def setup
10
+ Time.stubs(:now).returns(Time.utc(1983, 11, 9, 5))
11
+ end
12
+
9
13
  include Padrino::Helpers::FormatHelpers
10
14
 
11
15
  context 'for #simple_format method' do
@@ -54,10 +58,10 @@ class TestFormatHelpers < Test::Unit::TestCase
54
58
  assert_equal "Once\nupon\na\ntime", actual_text
55
59
  end
56
60
  should "return proper formatting for default width" do
57
- actual_text = word_wrap(1.upto(50).to_a.join(" "))
58
- assert_equal 1.upto(30).to_a.join(" ") + "\n" + 31.upto(50).to_a.join(" "), actual_text
59
- actual_text = word_wrap(1.upto(50).to_a.join(" "), 80)
60
- assert_equal 1.upto(30).to_a.join(" ") + "\n" + 31.upto(50).to_a.join(" "), actual_text
61
+ actual_text = word_wrap((1..50).to_a.join(" "))
62
+ assert_equal (1..30).to_a.join(" ") + "\n" + (31..50).to_a.join(" "), actual_text
63
+ actual_text = word_wrap((1..50).to_a.join(" "), 80)
64
+ assert_equal (1..30).to_a.join(" ") + "\n" + (31..50).to_a.join(" "), actual_text
61
65
  end
62
66
  end
63
67
 
@@ -1,5 +1,5 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/fixtures/markup_app/app'
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
3
 
4
4
  class TestOutputHelpers < Test::Unit::TestCase
5
5
  def app
@@ -1,5 +1,5 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/fixtures/render_app/app'
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/render_app/app')
3
3
 
4
4
  class TestRenderHelpers < Test::Unit::TestCase
5
5
  def app
@@ -1,5 +1,5 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/fixtures/markup_app/app'
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
3
 
4
4
  class TestTagHelpers < Test::Unit::TestCase
5
5
  def app
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 9
8
- - 7
9
- version: 0.9.7
8
+ - 9
9
+ version: 0.9.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Padrino Team
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-03-22 00:00:00 -07:00
20
+ date: 2010-03-29 00:00:00 -07:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -30,8 +30,8 @@ dependencies:
30
30
  segments:
31
31
  - 0
32
32
  - 9
33
- - 7
34
- version: 0.9.7
33
+ - 9
34
+ version: 0.9.9
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency