sinatra_more 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -208,6 +208,7 @@ A form_tag might look like:
208
208
  * Supports form methods 'put' and 'delete' through hidden field
209
209
  * Defaults to StandardFormBuilder but you can easily create your own!
210
210
  * <tt>form_for(@user, '/register', :id => 'register') { |f| ...field-elements... }</tt>
211
+ * <tt>form_for(:user, '/register', :id => 'register') { |f| ...field-elements... }</tt>
211
212
 
212
213
  The following are fields provided by AbstractFormBuilder that can be used within a form_for:
213
214
 
data/Rakefile CHANGED
@@ -14,7 +14,6 @@ begin
14
14
  gem.authors = ["Nathan Esquenazi"]
15
15
  gem.add_runtime_dependency "sinatra", ">= 0.9.2"
16
16
  gem.add_runtime_dependency "activesupport", ">= 2.2.2"
17
- gem.add_runtime_dependency "warden", ">= 0.4.0"
18
17
  gem.add_development_dependency "haml", ">= 2.2.1"
19
18
  gem.add_development_dependency "shoulda", ">= 2.10.2"
20
19
  gem.add_development_dependency "mocha", ">= 0.9.7"
data/TODO CHANGED
@@ -1,24 +1,21 @@
1
1
  = UNFINISHED
2
2
 
3
+ * Add support for a MailerPlugin which will make sending emails a breeze (http://github.com/hiroshi/pony)
4
+ * Add support for fields_for tag in formbuilder
5
+ * Add support for button tag method, mail_to helper
6
+ * Add support for check_box_group, radio_button_group which create a set of checkboxes or radio buttons
7
+ * Look into creating sinatra generators using rubigen (http://github.com/drnic/rubigen)
8
+ * http://github.com/quirkey/sinatra-gen
9
+ * http://github.com/monkrb/monk
3
10
  * Become total warden solution (basically just require warden gem installed, do everything else)
4
11
  * Look into removing overlapping methods and simply leverage sinatra_warden
5
12
  * Take advantage of shared strategies: http://github.com/hassox/warden_strategies/tree/master/lib/
6
13
  * Make warden password strategy support a callback which explains what to do with username, password
7
14
  * WardenPlugin.authenticate_callback { |username, password| User.authenticate(username, password) }
8
- * Add support for fields_for tag in formbuilder
9
- * Add support for missing formbuilder fields (select, and standard_form_builder methods i.e check_box_group)
10
- * Look into creating sinatra generators using rubigen (http://github.com/drnic/rubigen)
11
- * http://github.com/quirkey/sinatra-gen
12
- * http://github.com/monkrb/monk
13
- * Look into adding any missing helpers from:
14
- * http://github.com/brianjlandau/nice-n-easy
15
- * http://github.com/brianjlandau/nice-n-easy/blob/master/lib/sinatra/nice_easy_helpers.rb
16
- * http://github.com/kelredd/sinatra-helpers/blob/master/lib/sinatra_helpers/erb/links.rb
17
- * http://github.com/kelredd/sinatra-helpers/blob/master/lib/sinatra_helpers/erb/forms.rb
18
- * http://github.com/twilson63/sinatra-formhelpers/blob/master/lib/sinatra/formhelpers.rb
19
15
 
20
16
  = COMPLETED
21
17
 
18
+ * Add support for missing formbuilder fields (select, and standard_form_builder methods i.e check_box_group)
22
19
  * Add support for missing formhelpers/fields (radio_button_tag, select_tag)
23
20
  * Add support for select_tag :multiple => true
24
21
  * Add support for forms with method => put, delete using hidden field
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
@@ -3,9 +3,8 @@ class AbstractFormBuilder
3
3
 
4
4
  def initialize(template, object)
5
5
  raise "FormBuilder template must be initialized!" unless template
6
- raise "FormBuilder object must be initialized!" unless object
7
6
  @template = template
8
- @object = object
7
+ @object = build_object(object)
9
8
  end
10
9
 
11
10
  # f.error_messages
@@ -92,7 +91,7 @@ class AbstractFormBuilder
92
91
  # Returns the object's models name
93
92
  # => user_assignment
94
93
  def object_name
95
- object.class.to_s.underscore
94
+ object.is_a?(Symbol) ? object : object.class.to_s.underscore
96
95
  end
97
96
 
98
97
  # Returns true if the value matches the value in the field
@@ -119,4 +118,11 @@ class AbstractFormBuilder
119
118
  def field_id(field, value=nil)
120
119
  value.blank? ? "#{object_name}_#{field}" : "#{object_name}_#{field}_#{value}"
121
120
  end
121
+
122
+ # Either a symbol or a record
123
+ def build_object(explicit_object)
124
+ explicit_object.is_a?(Symbol) ? explicit_object.to_s.classify.constantize.new : explicit_object
125
+ raise "FormBuilder object must be initialized or use a symbol instead! (i.e :user)" unless explicit_object
126
+ explicit_object
127
+ end
122
128
  end
@@ -5,6 +5,7 @@ Dir[File.dirname(__FILE__) + '/warden_plugin/**/*.rb'].each {|file| load file }
5
5
  module SinatraMore
6
6
  module WardenPlugin
7
7
  def self.registered(app)
8
+ raise "WardenPlugin::Error - Install with 'sudo gem install warden' or require 'warden' in your app." unless Warden::Manager
8
9
  app.use Warden::Manager do |manager|
9
10
  manager.default_strategies :password
10
11
  manager.failure_app = app
data/sinatra_more.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra_more}
8
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nathan Esquenazi"]
12
- s.date = %q{2009-10-28}
12
+ s.date = %q{2009-10-29}
13
13
  s.description = %q{Expands sinatra with standard helpers and tools to allow for complex applications}
14
14
  s.email = %q{nesquena@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -97,7 +97,6 @@ Gem::Specification.new do |s|
97
97
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
98
98
  s.add_runtime_dependency(%q<sinatra>, [">= 0.9.2"])
99
99
  s.add_runtime_dependency(%q<activesupport>, [">= 2.2.2"])
100
- s.add_runtime_dependency(%q<warden>, [">= 0.4.0"])
101
100
  s.add_development_dependency(%q<haml>, [">= 2.2.1"])
102
101
  s.add_development_dependency(%q<shoulda>, [">= 2.10.2"])
103
102
  s.add_development_dependency(%q<mocha>, [">= 0.9.7"])
@@ -106,7 +105,6 @@ Gem::Specification.new do |s|
106
105
  else
107
106
  s.add_dependency(%q<sinatra>, [">= 0.9.2"])
108
107
  s.add_dependency(%q<activesupport>, [">= 2.2.2"])
109
- s.add_dependency(%q<warden>, [">= 0.4.0"])
110
108
  s.add_dependency(%q<haml>, [">= 2.2.1"])
111
109
  s.add_dependency(%q<shoulda>, [">= 2.10.2"])
112
110
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
@@ -116,7 +114,6 @@ Gem::Specification.new do |s|
116
114
  else
117
115
  s.add_dependency(%q<sinatra>, [">= 0.9.2"])
118
116
  s.add_dependency(%q<activesupport>, [">= 2.2.2"])
119
- s.add_dependency(%q<warden>, [">= 0.4.0"])
120
117
  s.add_dependency(%q<haml>, [">= 2.2.1"])
121
118
  s.add_dependency(%q<shoulda>, [">= 2.10.2"])
122
119
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
@@ -49,4 +49,8 @@
49
49
  <%= f.select_block :state, :options => ['California', 'Texas'], :class => 'selector' %>
50
50
  <%= f.submit_block "Create", { :class => 'button' } %>
51
51
  <%= f.image_submit_block "buttons/ok.png", { :class => 'image' } %>
52
+ <% end %>
53
+
54
+ <% form_for :markup_user, '/third_demo', :id => 'demo3', :method => 'get' do |f| %>
55
+ <%= f.text_field_block :username %>
52
56
  <% end %>
@@ -26,6 +26,13 @@ class TestFormBuilder < Test::Unit::TestCase
26
26
  assert_has_tag('form', :action => '/register', :id => 'register', :method => 'post', :content => "Demo") { actual_html }
27
27
  assert_has_tag('form input[type=hidden]', :name => '_method', :count => 0) { actual_html } # no method action field
28
28
  end
29
+
30
+ should "display correct form html with fake object" do
31
+ actual_html = form_for(:markup_user, '/register', :id => 'register', :method => 'post') { |f| f.text_field :username }
32
+ assert_has_tag('form', :action => '/register', :id => 'register', :method => 'post') { actual_html }
33
+ assert_has_tag('form input', :type => 'text', :name => 'markup_user[username]') { actual_html }
34
+ assert_has_tag('form input[type=hidden]', :name => '_method', :count => 0) { actual_html } # no method action field
35
+ end
29
36
 
30
37
  should "display correct form html with method :post" do
31
38
  actual_html = form_for(@user, '/update', :method => 'put') { "Demo" }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra_more
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Esquenazi
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-28 00:00:00 -07:00
12
+ date: 2009-10-29 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,16 +32,6 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.2.2
34
34
  version:
35
- - !ruby/object:Gem::Dependency
36
- name: warden
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 0.4.0
44
- version:
45
35
  - !ruby/object:Gem::Dependency
46
36
  name: haml
47
37
  type: :development