humpyard_form 0.0.1
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/Gemfile +24 -0
- data/LICENCE +20 -0
- data/README.rdoc +37 -0
- data/VERSION +1 -0
- data/app/views/humpyard_form/_datetime_input.html.haml +1 -0
- data/app/views/humpyard_form/_file_input.html.haml +1 -0
- data/app/views/humpyard_form/_form.html.haml +3 -0
- data/app/views/humpyard_form/_form_element.html.haml +9 -0
- data/app/views/humpyard_form/_image_file_input.html.haml +14 -0
- data/app/views/humpyard_form/_select_input.html.haml +4 -0
- data/app/views/humpyard_form/_string_input.html.haml +1 -0
- data/app/views/humpyard_form/_submit.html.haml +1 -0
- data/app/views/humpyard_form/_text_input.html.haml +2 -0
- data/config/locales/en.yml +3 -0
- data/lib/humpyard_form/action_controller/base.rb +35 -0
- data/lib/humpyard_form/action_view/form_helper.rb +22 -0
- data/lib/humpyard_form/compass.rb +6 -0
- data/lib/humpyard_form/config.rb +42 -0
- data/lib/humpyard_form/engine.rb +7 -0
- data/lib/humpyard_form/form_builder.rb +145 -0
- data/lib/humpyard_form.rb +53 -0
- metadata +165 -0
data/Gemfile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
source 'http://gemcutter.org'
|
2
|
+
|
3
|
+
gem "rails", :git => "git://github.com/rails/rails.git"
|
4
|
+
gem 'haml', :git => 'git://github.com/nex3/haml.git'
|
5
|
+
gem 'compass', :git => 'git://github.com/chriseppstein/compass.git'
|
6
|
+
|
7
|
+
group :test do
|
8
|
+
gem 'test-unit'
|
9
|
+
gem 'rspec-rails', '>= 2.0.0.beta.7'
|
10
|
+
gem 'capybara', '>= 0.3.7'
|
11
|
+
gem 'database_cleaner', '>= 0.5.2'
|
12
|
+
gem 'cucumber', '= 0.6.4' #'> 0.7.0.beta.2' # as 0.7.2.beta.2 is not running for us
|
13
|
+
gem 'cucumber-rails', :git => 'git://github.com/aslakhellesoy/cucumber-rails.git'
|
14
|
+
gem 'pickle', '>= 0.2.4'
|
15
|
+
gem 'capybara', '>= 0.3.5'
|
16
|
+
gem 'factory_girl', '>= 1.2.3'
|
17
|
+
gem 'markup_validity', '>= 1.1.0'
|
18
|
+
gem 'sqlite3-ruby', :require => 'sqlite3'
|
19
|
+
gem 'thin'
|
20
|
+
end
|
21
|
+
|
22
|
+
if RUBY_VERSION < '1.9'
|
23
|
+
gem 'ruby-debug', '>= 0.10.3'
|
24
|
+
end
|
data/LICENCE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009-2010 Sven G. Brönstrup
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
= humpyard_form
|
2
|
+
|
3
|
+
A HumpyardForm is doing fare control. So HumpyardForm is an authentication system for Rails 3 applications.
|
4
|
+
|
5
|
+
== Installation
|
6
|
+
|
7
|
+
* Add HumpyardForm to your Rails application's Gemfile. It does require edge rails at the moment.
|
8
|
+
gem 'rails', :git => 'git://github.com/rails/rails.git'
|
9
|
+
gem 'haml', :git => 'git://github.com/nex3/haml.git'
|
10
|
+
gem 'compass', :git => 'git://github.com/chriseppstein/compass.git'
|
11
|
+
gem 'humpyard_form', :git => 'git://github.com/starpeak/humpyard_form.git'
|
12
|
+
|
13
|
+
* Change into your Rails application's directory
|
14
|
+
|
15
|
+
* Generate HumpyardForm skeleton
|
16
|
+
rails generate humpyard_form:skeleton
|
17
|
+
|
18
|
+
* Migrate the HumpyardForm database tables
|
19
|
+
rake humpyard_form:db:migrate
|
20
|
+
|
21
|
+
== API Documentation
|
22
|
+
|
23
|
+
* API Documentation can be created by running
|
24
|
+
rake rdoc
|
25
|
+
from the humpyard_form project directory.
|
26
|
+
|
27
|
+
== Note on Patches/Pull Requests
|
28
|
+
|
29
|
+
* Fork the project.
|
30
|
+
* Make your feature addition or bug fix.
|
31
|
+
* Add tests for it. No discussion. No tests, no game. We use rspec and cucumber with associated addons.
|
32
|
+
* Commit, do not mess with rakefile, version, or history. If you want to have your own version, thats fine. But bump your version in a seperate commit that can be ignored when pulling.
|
33
|
+
* Send me a pull request. Bonus points for topic branches.
|
34
|
+
|
35
|
+
== Copyright
|
36
|
+
|
37
|
+
Copyright (c) 2010 Sven G. Brönstrup. See LICENSE for details.
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
@@ -0,0 +1 @@
|
|
1
|
+
%input{:type => "text", :name => "#{form.namespace}[#{name}]", :value => "#{form.object.send(name)}", :'data-date-input' => "true", :class => "datetime-field text ui-widget-content ui-corner-all field-highlight"}
|
@@ -0,0 +1 @@
|
|
1
|
+
%input{:type => "file", :name => "#{form.namespace}[#{name}]", :value => "#{form.object.send(name)}", :class => "text ui-widget-content ui-corner-all field-highlight"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
- puts name
|
2
|
+
.input{:class => "attr_#{name}"}
|
3
|
+
%div
|
4
|
+
%label{:for => "#{form.namespace}[#{name}]", :class => form.object.class.validators_on(name.to_s).map(&:class).include?(ActiveModel::Validations::PresenceValidator) ? 'required' : false}
|
5
|
+
= form.object.class.human_attribute_name(name)
|
6
|
+
%span.field-errors.ui-state-error-text{:style => form.object.errors[name].first.nil? ? 'display:none;' : ''}
|
7
|
+
= form.object.errors[name].first
|
8
|
+
%div
|
9
|
+
= render :partial => "/humpyard_form/#{as.to_s}_input", :locals => {:form => form, :name => name, :options => options}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
- if form.object.send(name).file?
|
2
|
+
- if form.object.send(name).styles.keys.include?(:thumb)
|
3
|
+
- style = form.object.send(name).styles[:thumb]
|
4
|
+
= image_tag form.object.send(name).url(:thumb), :size => style.geometry.match(/(\d+x\d+)/)[1]
|
5
|
+
- else
|
6
|
+
= image_tag form.object.send(name).ur
|
7
|
+
[
|
8
|
+
= form.object.send("#{name}_file_name")
|
9
|
+
= form.object.send("#{name}_file_size")
|
10
|
+
= form.object.send("#{name}_content_type")
|
11
|
+
]
|
12
|
+
- else
|
13
|
+
[none]
|
14
|
+
%input{:type => "file", :name => "#{form.namespace}[#{name}]", :value => "#{form.object.send(name)}", :class => "text ui-widget-content ui-corner-all field-highlight"}
|
@@ -0,0 +1 @@
|
|
1
|
+
%input{:type => "text", :name => "#{form.namespace}[#{name}]", :value => "#{form.object.send(name)}", :class => "text ui-widget-content ui-corner-all field-highlight"}
|
@@ -0,0 +1 @@
|
|
1
|
+
%button Submit
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module HumpyardForm
|
2
|
+
module ActionController #:nodoc:
|
3
|
+
module Base #:nodoc:
|
4
|
+
|
5
|
+
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
ActionController::Base.send :include, HumpyardForm::ActionController::Base
|
11
|
+
|
12
|
+
# register a custom json renderer for humpyard form to overcome xhr file upload limits.
|
13
|
+
# if a file input is present in the form, it should be sent as a normal form
|
14
|
+
# submit, targeted to a (hidden) iframe. client code can pick up the response from there.
|
15
|
+
# two things with this workaround: the MIME type cannot be the proper json type
|
16
|
+
# because the response would end up being downloaded by common browsers.
|
17
|
+
# additionally, there is some escaping going on in the browser which can
|
18
|
+
# render the json unparseable. to prevent this, we send the json wrapped
|
19
|
+
# in a <textarea> element. (this is the way jquery.form handles things)
|
20
|
+
# until there is a decent way to upload files using xhr (also supporting
|
21
|
+
# streaming large uploads), we have to use this rather ugly hack.
|
22
|
+
# this code is based on the original rails :json option for rendering.
|
23
|
+
# to use the workaround, include a parameter url_quirk=true in the request.
|
24
|
+
|
25
|
+
ActionController.add_renderer :json do |json, options|
|
26
|
+
json = ActiveSupport::JSON.encode(json) unless json.respond_to?(:to_str)
|
27
|
+
json = "#{options[:callback]}(#{json})" unless options[:callback].blank?
|
28
|
+
if params[:ul_quirk]
|
29
|
+
self.content_type ||= Mime::HTML
|
30
|
+
self.response_body = "<textarea>" + json + "</textarea>"
|
31
|
+
else
|
32
|
+
self.content_type ||= Mime::JSON
|
33
|
+
self.response_body = json
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module HumpyardForm
|
2
|
+
module ActionView
|
3
|
+
module FormHelper
|
4
|
+
def humpyard_form_for(record, options={}, &block)
|
5
|
+
form = HumpyardForm::FormBuilder.new(self, record, options)
|
6
|
+
inner_haml = capture_haml(form, &block)
|
7
|
+
render :partial => '/humpyard_form/form', :locals => {:form => form, :inner_haml => inner_haml}
|
8
|
+
end
|
9
|
+
|
10
|
+
# execute a block with a given locale
|
11
|
+
def with_locale(locale, &block)
|
12
|
+
old_locale = I18n.locale
|
13
|
+
I18n.locale = locale
|
14
|
+
yield(locale)
|
15
|
+
I18n.locale = old_locale
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
ActionView::Base.send :include, HumpyardForm::ActionView::FormHelper
|
@@ -0,0 +1,6 @@
|
|
1
|
+
require 'compass'
|
2
|
+
|
3
|
+
options = Hash.new
|
4
|
+
options[:stylesheets_directory] = ::File.expand_path(::File.join(::File.dirname(__FILE__), '..', '..', 'compass', 'stylesheets'))
|
5
|
+
options[:templates_directory] = ::File.expand_path(::File.join(File.dirname(__FILE__), '..', '..', 'compass', 'templates'))
|
6
|
+
::Compass::Frameworks.register('humpyard_form', options)
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module HumpyardForm
|
2
|
+
####
|
3
|
+
# HumpyardForm::Config is responsible for holding and managing the configuration
|
4
|
+
# for your HumpyardForm Rails Application.
|
5
|
+
#
|
6
|
+
# Possible configuration options are:
|
7
|
+
# +table_name_prefix+::
|
8
|
+
# The prefix for the SQL tables
|
9
|
+
#
|
10
|
+
# The default value is <tt>"humpyard_form_"</tt>
|
11
|
+
# +admin_prefix+::
|
12
|
+
# The prefix for the admin controllers
|
13
|
+
#
|
14
|
+
# The default value is <tt>"admin"</tt>
|
15
|
+
|
16
|
+
class Config
|
17
|
+
def initialize(&block) #:nodoc:
|
18
|
+
configure(&block) if block_given?
|
19
|
+
end
|
20
|
+
|
21
|
+
# Configure your HumpyardForm Rails Application with the given parameters in
|
22
|
+
# the block. For possible options see above.
|
23
|
+
def configure(&block)
|
24
|
+
yield(self)
|
25
|
+
end
|
26
|
+
|
27
|
+
def locales=(locales) #:nodoc:
|
28
|
+
if locales.nil?
|
29
|
+
@locales = nil
|
30
|
+
elsif locales.class == Array
|
31
|
+
@locales = locales.map{|l| l.to_sym}
|
32
|
+
else
|
33
|
+
@locales = locales.split(',').collect{|l| l.to_sym}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def locales #:nodoc:
|
38
|
+
@locales ||= [:en]
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
module HumpyardForm
|
2
|
+
####
|
3
|
+
# HumpyardForm::FormHelper is a helper for forms
|
4
|
+
class FormBuilder
|
5
|
+
attr_reader :object, :options, :html_options, :url, :form_type
|
6
|
+
|
7
|
+
@@file_methods = [ :file?, :public_filename ]
|
8
|
+
|
9
|
+
cattr_accessor :file_methods
|
10
|
+
|
11
|
+
def initialize(renderer, object, options={})
|
12
|
+
@renderer = renderer
|
13
|
+
@object = @renderer.convert_to_model(object)
|
14
|
+
@html_options = options.delete(:html) || {}
|
15
|
+
@url = options.delete(:url) || @renderer.polymorphic_path(@object)
|
16
|
+
@options = options
|
17
|
+
|
18
|
+
if object.respond_to?(:persisted?) && object.persisted?
|
19
|
+
@form_type = 'Edit'
|
20
|
+
@html_options[:'data-action'] = @renderer.dom_class(object, :edit),
|
21
|
+
@html_options[:method] = :put
|
22
|
+
else
|
23
|
+
@form_type = 'New'
|
24
|
+
@html_options[:'data-action'] = @renderer.dom_class(object, :new),
|
25
|
+
@html_options[:method] = :post
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def namespace
|
30
|
+
if @options[:as]
|
31
|
+
@options[:as]
|
32
|
+
else
|
33
|
+
@object.class.name.underscore.gsub('/', '_')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def inputs
|
38
|
+
end
|
39
|
+
|
40
|
+
# def input(method, options = {})
|
41
|
+
# options[:required] = method_required?(method) unless options.key?(:required)
|
42
|
+
# options[:as] ||= default_input_type(method)
|
43
|
+
#
|
44
|
+
# html_class = [ options[:as], (options[:required] ? :required : :optional) ]
|
45
|
+
# html_class << 'error' if @object && @object.respond_to?(:errors) && !@object.errors[method.to_sym].blank?
|
46
|
+
#
|
47
|
+
# wrapper_html = options.delete(:wrapper_html) || {}
|
48
|
+
# wrapper_html[:id] ||= generate_html_id(method)
|
49
|
+
# wrapper_html[:class] = (html_class << wrapper_html[:class]).flatten.compact.join(' ')
|
50
|
+
#
|
51
|
+
# if options[:input_html] && options[:input_html][:id]
|
52
|
+
# options[:label_html] ||= {}
|
53
|
+
# options[:label_html][:for] ||= options[:input_html][:id]
|
54
|
+
# end
|
55
|
+
#
|
56
|
+
# input_parts = @@inline_order.dup
|
57
|
+
# input_parts.delete(:errors) if options[:as] == :hidden
|
58
|
+
#
|
59
|
+
# list_item_content = input_parts.map do |type|
|
60
|
+
# send(:"inline_#{type}_for", method, options)
|
61
|
+
# end.compact.join("\n")
|
62
|
+
#
|
63
|
+
# return template.content_tag(:li, list_item_content, wrapper_html)
|
64
|
+
# end
|
65
|
+
|
66
|
+
|
67
|
+
def input(method, options={}) #:nodoc:
|
68
|
+
#options[:required] = method_required?(method) unless options.key?(:required)
|
69
|
+
options[:as] ||= default_input_type(method)
|
70
|
+
options[:translation_info] = translation_info(method)
|
71
|
+
#puts options.inspect
|
72
|
+
@renderer.render :partial => "/humpyard_form/form_element", :locals => {:form => self, :name => method, :options => options, :as => options[:as]}
|
73
|
+
end
|
74
|
+
|
75
|
+
def submit(options={})
|
76
|
+
@renderer.render :partial => '/humpyard_form/submit', :locals => {:form => self, :options => options}
|
77
|
+
end
|
78
|
+
|
79
|
+
def translation_info(method) #:nodoc:
|
80
|
+
if @object.respond_to?(:translated_attribute_names) and @object.translated_attribute_names.include?(method)
|
81
|
+
tmp = @object.translation_class.new
|
82
|
+
if tmp
|
83
|
+
column = tmp.column_for_attribute(method) if tmp.respond_to?(:column_for_attribute)
|
84
|
+
if column
|
85
|
+
{:locales => HumpyardForm::config.locales, :column => column}
|
86
|
+
end
|
87
|
+
end
|
88
|
+
else
|
89
|
+
false
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# For methods that have a database column, take a best guess as to what the input method
|
94
|
+
# should be. In most cases, it will just return the column type (eg :string), but for special
|
95
|
+
# cases it will simplify (like the case of :integer, :float & :decimal to :numeric), or do
|
96
|
+
# something different (like :password and :select).
|
97
|
+
#
|
98
|
+
# If there is no column for the method (eg "virtual columns" with an attr_accessor), the
|
99
|
+
# default is a :string, a similar behaviour to Rails' scaffolding.
|
100
|
+
#
|
101
|
+
def default_input_type(method) #:nodoc:
|
102
|
+
column = @object.column_for_attribute(method) if @object.respond_to?(:column_for_attribute)
|
103
|
+
|
104
|
+
# translated attributes dont have a column info at this point
|
105
|
+
# check the associated translation class
|
106
|
+
if not column
|
107
|
+
tx_info = translation_info(method)
|
108
|
+
if tx_info
|
109
|
+
column = tx_info[:column]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
if column
|
114
|
+
# handle the special cases where the column type doesn't map to an input method
|
115
|
+
return :time_zone if column.type == :string && method.to_s =~ /time_zone/
|
116
|
+
return :select if column.type == :integer && method.to_s =~ /_id$/
|
117
|
+
return :datetime if column.type == :timestamp
|
118
|
+
return :numeric if [:integer, :float, :decimal].include?(column.type)
|
119
|
+
return :password if column.type == :string && method.to_s =~ /password/
|
120
|
+
return :country if column.type == :string && method.to_s =~ /country/
|
121
|
+
|
122
|
+
# otherwise assume the input name will be the same as the column type (eg string_input)
|
123
|
+
return column.type
|
124
|
+
else
|
125
|
+
if @object
|
126
|
+
#return :select if find_reflection(method)
|
127
|
+
|
128
|
+
file = @object.send(method) if @object.respond_to?(method)
|
129
|
+
if file && @@file_methods.any? { |m| file.respond_to?(m) }
|
130
|
+
if file.styles.keys.empty?
|
131
|
+
return :file
|
132
|
+
else
|
133
|
+
return :image_file
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
return :password if method.to_s =~ /password/
|
139
|
+
return :string
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
####
|
2
|
+
# Welcome to HumpyardForm
|
3
|
+
|
4
|
+
module HumpyardForm
|
5
|
+
# This is the actual version of the HumpyardForm gem
|
6
|
+
VERSION = ::File.read(::File.join(::File.dirname(__FILE__), "..", "VERSION")).strip
|
7
|
+
|
8
|
+
def self.load options = {} #:nodoc:
|
9
|
+
require ::File.expand_path('../humpyard_form/rake_tasks', __FILE__)
|
10
|
+
end
|
11
|
+
|
12
|
+
# This is the path to the HumpyardForm gem's root directory
|
13
|
+
def base_directory
|
14
|
+
::File.expand_path(::File.join(::File.dirname(__FILE__), '..'))
|
15
|
+
end
|
16
|
+
|
17
|
+
# This is the path to the HumpyardForm gem's lib directory
|
18
|
+
def lib_directory
|
19
|
+
::File.expand_path(::File.join(::File.dirname(__FILE__)))
|
20
|
+
end
|
21
|
+
|
22
|
+
module_function :base_directory, :lib_directory
|
23
|
+
|
24
|
+
class << self
|
25
|
+
# To access the actual configuration of your HumpyardForm, you can call this.
|
26
|
+
#
|
27
|
+
# An example would be <tt>HumpyardForm.config.www_prefix = 'cms/:locale/'</tt>
|
28
|
+
#
|
29
|
+
# See HumpyardForm::Config for configuration options.
|
30
|
+
def config
|
31
|
+
@config ||= HumpyardForm::Config.new
|
32
|
+
end
|
33
|
+
|
34
|
+
# Configure the HumpyardForm
|
35
|
+
# See HumpyardForm::Config.configure for details
|
36
|
+
def configure(&block)
|
37
|
+
config.configure(&block)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
require File.expand_path('../humpyard_form/config', __FILE__)
|
43
|
+
require File.expand_path('../humpyard_form/engine', __FILE__)
|
44
|
+
require File.expand_path('../humpyard_form/compass', __FILE__)
|
45
|
+
|
46
|
+
require 'i18n'
|
47
|
+
I18n.load_path += Dir.glob("#{File.dirname(__FILE__)}/../config/locales/*.yml")
|
48
|
+
puts "=> #{I18n.t 'humpyard_form.start', :version => HumpyardForm::VERSION}"
|
49
|
+
|
50
|
+
require File.expand_path('../humpyard_form/action_controller/base', __FILE__)
|
51
|
+
require File.expand_path('../humpyard_form/action_view/form_helper', __FILE__)
|
52
|
+
|
53
|
+
|
metadata
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: humpyard_form
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Sven G. Broenstrup
|
13
|
+
- Andreas Pieper
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-05-02 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: builder
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rails
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 3
|
42
|
+
- 0
|
43
|
+
- 0
|
44
|
+
- beta
|
45
|
+
version: 3.0.0.beta
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: haml
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 2
|
57
|
+
- 2
|
58
|
+
- 20
|
59
|
+
version: 2.2.20
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: acts_as_tree
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
segments:
|
70
|
+
- 0
|
71
|
+
- 1
|
72
|
+
- 1
|
73
|
+
version: 0.1.1
|
74
|
+
type: :runtime
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: cancan
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 1
|
85
|
+
- 1
|
86
|
+
- 1
|
87
|
+
version: 1.1.1
|
88
|
+
type: :runtime
|
89
|
+
version_requirements: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: globalize2
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
- 2
|
100
|
+
- 0
|
101
|
+
version: 0.2.0
|
102
|
+
type: :runtime
|
103
|
+
version_requirements: *id006
|
104
|
+
description: HumpyardForm is an form builder for Rails 3 applications. It is developed as part of the humpyard cms
|
105
|
+
email: info@humpyard.org
|
106
|
+
executables: []
|
107
|
+
|
108
|
+
extensions: []
|
109
|
+
|
110
|
+
extra_rdoc_files: []
|
111
|
+
|
112
|
+
files:
|
113
|
+
- lib/humpyard_form/action_controller/base.rb
|
114
|
+
- lib/humpyard_form/action_view/form_helper.rb
|
115
|
+
- lib/humpyard_form/compass.rb
|
116
|
+
- lib/humpyard_form/config.rb
|
117
|
+
- lib/humpyard_form/engine.rb
|
118
|
+
- lib/humpyard_form/form_builder.rb
|
119
|
+
- lib/humpyard_form.rb
|
120
|
+
- app/views/humpyard_form/_datetime_input.html.haml
|
121
|
+
- app/views/humpyard_form/_file_input.html.haml
|
122
|
+
- app/views/humpyard_form/_form.html.haml
|
123
|
+
- app/views/humpyard_form/_form_element.html.haml
|
124
|
+
- app/views/humpyard_form/_image_file_input.html.haml
|
125
|
+
- app/views/humpyard_form/_select_input.html.haml
|
126
|
+
- app/views/humpyard_form/_string_input.html.haml
|
127
|
+
- app/views/humpyard_form/_submit.html.haml
|
128
|
+
- app/views/humpyard_form/_text_input.html.haml
|
129
|
+
- config/locales/en.yml
|
130
|
+
- VERSION
|
131
|
+
- README.rdoc
|
132
|
+
- LICENCE
|
133
|
+
- Gemfile
|
134
|
+
has_rdoc: true
|
135
|
+
homepage: http://humpyard.org/
|
136
|
+
licenses: []
|
137
|
+
|
138
|
+
post_install_message:
|
139
|
+
rdoc_options: []
|
140
|
+
|
141
|
+
require_paths:
|
142
|
+
- lib
|
143
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
segments:
|
148
|
+
- 0
|
149
|
+
version: "0"
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
segments:
|
155
|
+
- 0
|
156
|
+
version: "0"
|
157
|
+
requirements: []
|
158
|
+
|
159
|
+
rubyforge_project:
|
160
|
+
rubygems_version: 1.3.6
|
161
|
+
signing_key:
|
162
|
+
specification_version: 3
|
163
|
+
summary: HumpyardForm is a Rails form builder
|
164
|
+
test_files: []
|
165
|
+
|