lperichon-formtastic 0.9.2
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/MIT-LICENSE +20 -0
- data/README.textile +469 -0
- data/Rakefile +88 -0
- data/generators/form/USAGE +15 -0
- data/generators/form/form_generator.rb +114 -0
- data/generators/form/templates/view__form.html.erb +5 -0
- data/generators/form/templates/view__form.html.haml +4 -0
- data/generators/formtastic/formtastic_generator.rb +24 -0
- data/generators/formtastic/templates/formtastic.css +137 -0
- data/generators/formtastic/templates/formtastic.rb +51 -0
- data/generators/formtastic/templates/formtastic_changes.css +10 -0
- data/generators/formtastic_stylesheets/formtastic_stylesheets_generator.rb +16 -0
- data/lib/formtastic.rb +1408 -0
- data/lib/locale/en.yml +8 -0
- data/rails/init.rb +3 -0
- data/spec/buttons_spec.rb +149 -0
- data/spec/commit_button_spec.rb +344 -0
- data/spec/custom_builder_spec.rb +62 -0
- data/spec/error_proc_spec.rb +27 -0
- data/spec/errors_spec.rb +85 -0
- data/spec/form_helper_spec.rb +110 -0
- data/spec/include_blank_spec.rb +70 -0
- data/spec/input_spec.rb +2209 -0
- data/spec/inputs_spec.rb +374 -0
- data/spec/label_spec.rb +54 -0
- data/spec/semantic_fields_for_spec.rb +42 -0
- data/spec/spec.opts +2 -0
- data/spec/test_helper.rb +159 -0
- metadata +93 -0
data/spec/spec.opts
ADDED
data/spec/test_helper.rb
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'rubygems'
|
3
|
+
|
4
|
+
def smart_require(lib_name, gem_name, gem_version = '>= 0.0.0')
|
5
|
+
begin
|
6
|
+
require lib_name if lib_name
|
7
|
+
rescue LoadError
|
8
|
+
if gem_name
|
9
|
+
gem gem_name, gem_version
|
10
|
+
require lib_name if lib_name
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
smart_require 'spec', 'spec', '>= 1.2.6'
|
16
|
+
smart_require false, 'rspec-rails', '>= 1.2.6'
|
17
|
+
smart_require 'hpricot', 'hpricot', '>= 0.6.1'
|
18
|
+
smart_require 'rspec_hpricot_matchers', 'rspec_hpricot_matchers', '>= 1.0.0'
|
19
|
+
smart_require 'active_support', 'activesupport', '>= 2.3.4'
|
20
|
+
smart_require 'action_controller', 'actionpack', '>= 2.3.4'
|
21
|
+
smart_require 'action_view', 'actionpack', '>= 2.3.4'
|
22
|
+
|
23
|
+
Spec::Runner.configure do |config|
|
24
|
+
config.include(RspecHpricotMatchers)
|
25
|
+
end
|
26
|
+
|
27
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
28
|
+
|
29
|
+
require 'formtastic'
|
30
|
+
|
31
|
+
module FormtasticSpecHelper
|
32
|
+
include ActionView::Helpers::FormHelper
|
33
|
+
include ActionView::Helpers::FormTagHelper
|
34
|
+
include ActionView::Helpers::FormOptionsHelper
|
35
|
+
include ActionView::Helpers::UrlHelper
|
36
|
+
include ActionView::Helpers::TagHelper
|
37
|
+
include ActionView::Helpers::TextHelper
|
38
|
+
include ActionView::Helpers::ActiveRecordHelper
|
39
|
+
include ActionView::Helpers::RecordIdentificationHelper
|
40
|
+
include ActionView::Helpers::DateHelper
|
41
|
+
include ActionView::Helpers::CaptureHelper
|
42
|
+
include ActiveSupport
|
43
|
+
include ActionController::PolymorphicRoutes
|
44
|
+
|
45
|
+
include Formtastic::SemanticFormHelper
|
46
|
+
|
47
|
+
def default_input_type(column_type, column_name = :generic_column_name)
|
48
|
+
@new_post.stub!(column_name)
|
49
|
+
@new_post.stub!(:column_for_attribute).and_return(mock('column', :type => column_type)) unless column_type.nil?
|
50
|
+
|
51
|
+
semantic_form_for(@new_post) do |builder|
|
52
|
+
@default_type = builder.send(:default_input_type, column_name)
|
53
|
+
end
|
54
|
+
|
55
|
+
return @default_type
|
56
|
+
end
|
57
|
+
|
58
|
+
class ::Post
|
59
|
+
def id
|
60
|
+
end
|
61
|
+
end
|
62
|
+
class ::Author
|
63
|
+
end
|
64
|
+
|
65
|
+
def mock_everything
|
66
|
+
|
67
|
+
# Resource-oriented styles like form_for(@post) will expect a path method for the object,
|
68
|
+
# so we're defining some here.
|
69
|
+
def post_path(o); "/posts/1"; end
|
70
|
+
def posts_path; "/posts"; end
|
71
|
+
def new_post_path; "/posts/new"; end
|
72
|
+
|
73
|
+
def author_path(o); "/authors/1"; end
|
74
|
+
def authors_path; "/authors"; end
|
75
|
+
def new_author_path; "/authors/new"; end
|
76
|
+
|
77
|
+
@fred = mock('user')
|
78
|
+
@fred.stub!(:class).and_return(::Author)
|
79
|
+
@fred.stub!(:to_label).and_return('Fred Smith')
|
80
|
+
@fred.stub!(:login).and_return('fred_smith')
|
81
|
+
@fred.stub!(:id).and_return(37)
|
82
|
+
@fred.stub!(:new_record?).and_return(false)
|
83
|
+
@fred.stub!(:errors).and_return(mock('errors', :[] => nil))
|
84
|
+
|
85
|
+
@bob = mock('user')
|
86
|
+
@bob.stub!(:class).and_return(::Author)
|
87
|
+
@bob.stub!(:to_label).and_return('Bob Rock')
|
88
|
+
@bob.stub!(:login).and_return('bob')
|
89
|
+
@bob.stub!(:id).and_return(42)
|
90
|
+
@bob.stub!(:posts).and_return([])
|
91
|
+
@bob.stub!(:post_ids).and_return([])
|
92
|
+
@bob.stub!(:new_record?).and_return(false)
|
93
|
+
@bob.stub!(:errors).and_return(mock('errors', :[] => nil))
|
94
|
+
|
95
|
+
::Author.stub!(:find).and_return([@fred, @bob])
|
96
|
+
::Author.stub!(:human_attribute_name).and_return { |column_name| column_name.humanize }
|
97
|
+
::Author.stub!(:human_name).and_return('::Author')
|
98
|
+
::Author.stub!(:reflect_on_validations_for).and_return([])
|
99
|
+
::Author.stub!(:reflect_on_association).and_return { |column_name| mock('reflection', :options => {}, :klass => Post, :macro => :has_many) if column_name == :posts }
|
100
|
+
|
101
|
+
# Sometimes we need a mock @post object and some Authors for belongs_to
|
102
|
+
@new_post = mock('post')
|
103
|
+
@new_post.stub!(:class).and_return(::Post)
|
104
|
+
@new_post.stub!(:id).and_return(nil)
|
105
|
+
@new_post.stub!(:new_record?).and_return(true)
|
106
|
+
@new_post.stub!(:errors).and_return(mock('errors', :[] => nil))
|
107
|
+
@new_post.stub!(:author).and_return(nil)
|
108
|
+
|
109
|
+
@freds_post = mock('post')
|
110
|
+
@freds_post.stub!(:class).and_return(::Post)
|
111
|
+
@freds_post.stub!(:to_label).and_return('Fred Smith')
|
112
|
+
@freds_post.stub!(:id).and_return(19)
|
113
|
+
@freds_post.stub!(:author).and_return(@fred)
|
114
|
+
@freds_post.stub!(:author_id).and_return(@fred.id)
|
115
|
+
@freds_post.stub!(:authors).and_return([@fred])
|
116
|
+
@freds_post.stub!(:author_ids).and_return([@fred.id])
|
117
|
+
@freds_post.stub!(:new_record?).and_return(false)
|
118
|
+
@freds_post.stub!(:errors).and_return(mock('errors', :[] => nil))
|
119
|
+
@fred.stub!(:posts).and_return([@freds_post])
|
120
|
+
@fred.stub!(:post_ids).and_return([@freds_post.id])
|
121
|
+
|
122
|
+
::Post.stub!(:human_attribute_name).and_return { |column_name| column_name.humanize }
|
123
|
+
::Post.stub!(:human_name).and_return('Post')
|
124
|
+
::Post.stub!(:reflect_on_all_validations).and_return([])
|
125
|
+
::Post.stub!(:reflect_on_validations_for).and_return([])
|
126
|
+
::Post.stub!(:reflect_on_association).and_return do |column_name|
|
127
|
+
case column_name
|
128
|
+
when :author, :author_status
|
129
|
+
mock('reflection', :options => {}, :klass => ::Author, :macro => :belongs_to)
|
130
|
+
when :authors
|
131
|
+
mock('reflection', :options => {}, :klass => ::Author, :macro => :has_and_belongs_to_many)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
::Post.stub!(:find).and_return([@freds_post])
|
135
|
+
|
136
|
+
@new_post.stub!(:title)
|
137
|
+
@new_post.stub!(:body)
|
138
|
+
@new_post.stub!(:published)
|
139
|
+
@new_post.stub!(:column_for_attribute).with(:meta_description).and_return(mock('column', :type => :string, :limit => 255))
|
140
|
+
@new_post.stub!(:column_for_attribute).with(:title).and_return(mock('column', :type => :string, :limit => 255))
|
141
|
+
@new_post.stub!(:column_for_attribute).with(:body).and_return(mock('column', :type => :text))
|
142
|
+
@new_post.stub!(:column_for_attribute).with(:published).and_return(mock('column', :type => :boolean))
|
143
|
+
end
|
144
|
+
|
145
|
+
def self.included(base)
|
146
|
+
base.class_eval do
|
147
|
+
|
148
|
+
attr_accessor :output_buffer
|
149
|
+
|
150
|
+
def protect_against_forgery?
|
151
|
+
false
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
|
159
|
+
::ActiveSupport::Deprecation.silenced = true
|
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lperichon-formtastic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Justin French / Luis Perichon
|
8
|
+
autorequire: formtastic
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-11-14 00:00:00 -03:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: A Rails form builder plugin/gem with semantically rich and accessible markup
|
17
|
+
email: info@luisperichon.com.ar
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.textile
|
24
|
+
files:
|
25
|
+
- MIT-LICENSE
|
26
|
+
- README.textile
|
27
|
+
- Rakefile
|
28
|
+
- generators/form/USAGE
|
29
|
+
- generators/form/form_generator.rb
|
30
|
+
- generators/form/templates/view__form.html.erb
|
31
|
+
- generators/form/templates/view__form.html.haml
|
32
|
+
- generators/formtastic/formtastic_generator.rb
|
33
|
+
- generators/formtastic/templates/formtastic.css
|
34
|
+
- generators/formtastic/templates/formtastic.rb
|
35
|
+
- generators/formtastic/templates/formtastic_changes.css
|
36
|
+
- generators/formtastic_stylesheets/formtastic_stylesheets_generator.rb
|
37
|
+
- lib/formtastic.rb
|
38
|
+
- lib/locale/en.yml
|
39
|
+
- rails/init.rb
|
40
|
+
- spec/buttons_spec.rb
|
41
|
+
- spec/commit_button_spec.rb
|
42
|
+
- spec/custom_builder_spec.rb
|
43
|
+
- spec/error_proc_spec.rb
|
44
|
+
- spec/errors_spec.rb
|
45
|
+
- spec/form_helper_spec.rb
|
46
|
+
- spec/include_blank_spec.rb
|
47
|
+
- spec/input_spec.rb
|
48
|
+
- spec/inputs_spec.rb
|
49
|
+
- spec/label_spec.rb
|
50
|
+
- spec/semantic_fields_for_spec.rb
|
51
|
+
- spec/spec.opts
|
52
|
+
- spec/test_helper.rb
|
53
|
+
has_rdoc: true
|
54
|
+
homepage: http://github.com/lperichon/formtastic
|
55
|
+
licenses: []
|
56
|
+
|
57
|
+
post_install_message: "\n ========================================================================\n\n Thanks for installing Formtastic!\n \n You can now (optionally) run the generater to copy some stylesheets and\n a config initializer into your application:\n \n ./script/generate formtastic\n \n The following files will be added:\n \n RAILS_ROOT/public/stylesheets/formtastic.css\n RAILS_ROOT/public/stylesheets/formtastic_changes.css\n RAILS_ROOT/config/initializers/formtastic.rb\n \n Find out more and get involved:\n\n http://github.com/justinfrench/formtastic\n http://groups.google.com.au/group/formtastic\n \n ========================================================================\n "
|
58
|
+
rdoc_options:
|
59
|
+
- --charset=UTF-8
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: "0"
|
67
|
+
version:
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: "0"
|
73
|
+
version:
|
74
|
+
requirements: []
|
75
|
+
|
76
|
+
rubyforge_project:
|
77
|
+
rubygems_version: 1.3.5
|
78
|
+
signing_key:
|
79
|
+
specification_version: 3
|
80
|
+
summary: A Rails form builder plugin/gem with semantically rich and accessible markup
|
81
|
+
test_files:
|
82
|
+
- spec/test_helper.rb
|
83
|
+
- spec/form_helper_spec.rb
|
84
|
+
- spec/include_blank_spec.rb
|
85
|
+
- spec/inputs_spec.rb
|
86
|
+
- spec/errors_spec.rb
|
87
|
+
- spec/error_proc_spec.rb
|
88
|
+
- spec/buttons_spec.rb
|
89
|
+
- spec/custom_builder_spec.rb
|
90
|
+
- spec/commit_button_spec.rb
|
91
|
+
- spec/label_spec.rb
|
92
|
+
- spec/input_spec.rb
|
93
|
+
- spec/semantic_fields_for_spec.rb
|