radiant-forms-extension 2.0.1 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,201 @@
1
+ class TagError < StandardError; end
2
+
3
+ module Forms
4
+ module Tags
5
+ module Core
6
+ include Radiant::Taggable
7
+
8
+ desc %{
9
+ Render a form and its contents
10
+ <pre><code><r:form name="object[key]" [method, url] /></code></pre>
11
+
12
+ * *name* the name of the form
13
+ * *method* url submission method [ post, get, delete, put ]
14
+ * *url* address to submit the form to
15
+ }
16
+ tag 'form' do |tag|
17
+ if tag.attr['name'].present?
18
+ if tag.locals.form = Form.find_by_title(tag.attr['name'])
19
+ tag.attr['id'] ||= 'form_' + tag.locals.form.title
20
+ tag.attr['method'] ||= 'put'
21
+ tag.attr['action'] ||= tag.locals.form.action.blank? ? "/forms/#{tag.locals.form.id}" : tag.locals.form.action
22
+
23
+ parse(Forms::Tags::Helpers.render(tag))
24
+ else
25
+ raise TagError, "Could not find '#{tag.attr['name']}' form"
26
+ end
27
+ else
28
+ tag.expand
29
+ end
30
+ end
31
+
32
+ desc %{
33
+ Render a @<label />@ tag to be used inside a form
34
+ <pre><code><r:form:label for="object[key]" /></code></pre>
35
+
36
+ **Required**
37
+ * *for* the name of the field you are relating the tag to
38
+
39
+ _A label is a piece of text which activates its related input when clicked_
40
+ }
41
+ tag 'form:label' do |tag|
42
+ Forms::Tags::Helpers.require!(tag,'form:label','for')
43
+
44
+ tag.attr['for'] = tag.attr['for'].gsub('[','_').gsub(']','') unless tag.attr['for'].nil?
45
+
46
+ %(<label #{Forms::Tags::Helpers.attributes(tag)}>#{tag.expand}</label>)
47
+ end
48
+
49
+ %w(text password reset checkbox radio hidden file button).each do |type|
50
+ desc %{
51
+ Render a @<#{type}>...</#{type}>@ tag to be used in a form
52
+ <pre><code><r:form:#{type} name="object[key]" /></code></pre>
53
+
54
+ **Required**
55
+ * *name* the name of the data to be sent
56
+
57
+ **Optional**
58
+ * *class* css class names
59
+ * *placeholder* default text, which is cleared when clicked
60
+ * *maxlength* the maximum amount of characters
61
+ }
62
+ tag "form:#{type}" do |tag|
63
+ Forms::Tags::Helpers.require!(tag,"form:#{type}",'name')
64
+
65
+ value = tag.attr['value']
66
+ tag.attr['type'] = type
67
+
68
+ %(<input type="#{type}" value="#{value}" #{Forms::Tags::Helpers.attributes(tag)} />)
69
+ end
70
+ end
71
+
72
+ desc %{
73
+ Renders a @<select>...</select>@ tag to be used in a form
74
+
75
+ <pre><code><r:form:select name="object[key]"><r:option value="text" /></r:form:select></code></pre>
76
+
77
+ **Required**
78
+ * *name* the name of the data to be sent
79
+
80
+ **Optional**
81
+ * *class* css class names
82
+
83
+ _@<r:option />@ tags may be nested inside the tag to automatically generate options_
84
+ }
85
+ tag 'form:select' do |tag|
86
+ Forms::Tags::Helpers.require!(tag,'form:select','name')
87
+
88
+ tag.locals.parent_tag_name = tag.attr['name']
89
+ tag.locals.parent_tag_type = 'select'
90
+
91
+ %(<select #{Forms::Tags::Helpers.attributes(tag)}>#{tag.expand}</select>)
92
+ end
93
+
94
+ desc %{
95
+ Renders a series of @<input type="radio"/>@ tags to be used in a form
96
+
97
+ <pre><code><r:form:radios name="object[value]" value="text"><r:option value="text" /></r:form:radios></code></pre>
98
+
99
+ **Required**
100
+ * *name* the name of the data to be sent
101
+
102
+ **Optional**
103
+ * *class* css class names
104
+
105
+ _@<r:option />@ tags may be nested inside the tag to automatically generate options_
106
+ }
107
+ tag 'form:radios' do |tag|
108
+ Forms::Tags::Helpers.require!(tag,'form:radios','name')
109
+
110
+ tag.locals.parent_tag_name = tag.attr['name']
111
+ tag.locals.parent_tag_type = 'radios'
112
+ tag.expand
113
+ end
114
+
115
+ desc %{
116
+ Renders an @<option/>@ tag if the parent is a
117
+ @<r:form:select>...</r:form:select>@ or @<r:form:radios>...</r:form:radios>@
118
+
119
+ **Required**
120
+ * *value* the value you want to be sent if selected
121
+ }
122
+ tag 'form:option' do |tag|
123
+ value = tag.attr['value'] || tag.expand
124
+
125
+ if tag.locals.parent_tag_type == 'select'
126
+ text = tag.expand.length == 0 ? value : tag.expand
127
+
128
+ extra = { 'value' => value}
129
+ %(<option #{Forms::Tags::Helpers.attributes(tag, extra)}>#{text}</option>)
130
+ elsif tag.locals.parent_tag_type == 'radios'
131
+ name= tag.locals.parent_tag_type == 'radios' ? tag.locals.parent_tag_name : tag.attr['name']
132
+ id = name.gsub('[','_').gsub(']','') + '_' + value
133
+
134
+ extra = { 'id' => id, 'value' => value, 'name' => name, 'type' => 'radio' }
135
+ %(<input #{Forms::Tags::Helpers.attributes(tag, extra)} />)
136
+ end
137
+ end
138
+
139
+ desc %{
140
+ Renders an @<input type="submit" />@ tag for a form.
141
+
142
+ **Optional**
143
+ * *value* the text on the submit
144
+ }
145
+ tag 'form:submit' do |tag|
146
+ value = tag.attr['value'] || 'submit'
147
+ extra = { 'value' => value, 'type' => 'submit', 'class' => 'submit', 'name' => 'submit' }
148
+ %(<input #{Forms::Tags::Helpers.attributes(tag, extra)} />)
149
+ end
150
+
151
+ desc %{
152
+ Query the data from a submitted form
153
+
154
+ @<r:form:read name="object[value]" />@ access the object which was submitted
155
+
156
+ _This can only be used in the content section of a form, use @<r:form:get />@ in pages_
157
+ }
158
+ tag 'form:read' do |tag|
159
+ Forms::Tags::Helpers.require!(tag,'form:read','name')
160
+ data = Forms::Tags::Responses.retrieve(tag.locals.page.data, tag.attr['name'])
161
+ end
162
+
163
+ desc %{
164
+ Clears the response object
165
+
166
+ @<r:response:clear />@
167
+ }
168
+ tag 'response:clear' do |tag|
169
+ Forms::Tags::Responses.clear(tag)
170
+
171
+ nil
172
+ end
173
+
174
+ desc %{
175
+ Allows access to the response of a submitted form
176
+ @<r:response>...<r:get /><r:clear />...</r:response>@
177
+
178
+ _Will not expand if a form has not been submitted or has been cleared_
179
+ }
180
+ tag 'response' do |tag|
181
+ tag.locals.response = Forms::Tags::Responses.current(tag,request)
182
+
183
+ tag.expand if tag.locals.response.present? and tag.locals.response.result.present?
184
+ end
185
+
186
+ desc %{
187
+ Access the attributes of a submitted form.
188
+
189
+ @<r:response:get name="object[value]" />@ an object which was submitted with the form
190
+ @<r:response:get name="result[mail][value]" />@ a response to the mail extension hooking the form
191
+
192
+ _Refer to the readme on extensions to find out what they return_
193
+ }
194
+ tag 'response:get' do |tag|
195
+ Forms::Tags::Helpers.require!(tag,'response:get','name')
196
+
197
+ result = Forms::Tags::Responses.retrieve(tag.locals.response.result, tag.attr['name']).to_s
198
+ end
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,54 @@
1
+ module Forms
2
+ module Tags
3
+ module Helpers
4
+
5
+ class << self
6
+
7
+ def render(tag)
8
+ string = %{<form enctype="multipart/form-data" method="post" #{attributes(tag)}>\n}
9
+ string << %{<input type="hidden" name="_method" value="#{tag.attr['method']}" />\n}
10
+ string << %{<input type="hidden" name="page_id" value="#{tag.locals.page.id}" />\n}
11
+ string << %{<r:form>}
12
+ string << tag.locals.form.body
13
+ string << %{</r:form>}
14
+ string << %{</form>}
15
+ end
16
+
17
+ def attributes(tag, extras={})
18
+ id = tag.attr['name'] || extras['name']
19
+ id = id || tag.attr['for'] + '_label' if tag.attr['for']
20
+ id = id.gsub('[','_').gsub(']','') unless id.nil?
21
+
22
+ attrs = {
23
+ 'id' => id,
24
+ 'class' => tag.attr['type'],
25
+ 'name' => nil,
26
+ 'for' => nil,
27
+ 'action' => nil,
28
+ 'placeholder' => nil,
29
+ 'value' => nil,
30
+ 'maxlength' => nil
31
+ }.merge(extras)
32
+
33
+ result = attrs.collect do |k,v|
34
+ v = (tag.attr[k] || v)
35
+ next if v.blank?
36
+ %(#{k}="#{v}")
37
+ end.reject{|e| e.blank?}
38
+
39
+ result.join(' ')
40
+ end
41
+
42
+ def require!(tag,name,key)
43
+ if tag.attr[key].present?
44
+ return true
45
+ else
46
+ raise "'<r:#{name} />' requires the '#{key}' attribute"
47
+ end
48
+ end
49
+
50
+ end
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,58 @@
1
+ module Forms
2
+ module Tags
3
+ module Responses
4
+
5
+ class << self
6
+
7
+ def current(tag, request)
8
+ response = nil
9
+
10
+ if tag.locals.response.present?
11
+ response = tag.locals.response
12
+ elsif tag.locals.page.request.present?
13
+ session = tag.locals.page.request.session[:form_response]
14
+ begin
15
+ response = Response.find(session)
16
+ rescue
17
+ if session == Object
18
+ response = Response.create
19
+ tag.locals.page.request.session[:form_response] = result.id
20
+ end
21
+ end
22
+ end
23
+
24
+ response
25
+ end
26
+
27
+ # Returns the value from a hash when in input key is sent
28
+ # @source = hash
29
+ # @key
30
+ def retrieve(source, key)
31
+ result = nil
32
+
33
+ if source.present?
34
+ data = key.gsub("[","|").gsub("]","").split("|")
35
+
36
+ if data.present?
37
+ result = source.fetch(data[0].to_sym)
38
+ data.delete_at(0)
39
+
40
+ if data.length and result.present?
41
+ data.each do |i|
42
+ result = result.fetch(i.to_sym) rescue nil
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ result
49
+ end
50
+
51
+ def clear(tag)
52
+ tag.locals.response.update_attribute('result', nil)
53
+ end
54
+
55
+ end
56
+ end
57
+ end
58
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{radiant-forms-extension}
8
- s.version = "2.0.1"
8
+ s.version = "3.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["dirkkelly"]
12
- s.date = %q{2010-08-02}
12
+ s.date = %q{2010-10-08}
13
13
  s.description = %q{Send data from a page to a form handler, extendable with addons}
14
14
  s.email = %q{dirk.kelly@squaretalent.com}
15
15
  s.extra_rdoc_files = [
@@ -23,6 +23,8 @@ Gem::Specification.new do |s|
23
23
  "app/controllers/admin/forms_controller.rb",
24
24
  "app/controllers/forms_controller.rb",
25
25
  "app/models/form.rb",
26
+ "app/models/form_mail.rb",
27
+ "app/models/form_mailer.rb",
26
28
  "app/models/form_page.rb",
27
29
  "app/models/response.rb",
28
30
  "app/views/admin/forms/_fields.html.haml",
@@ -40,19 +42,22 @@ Gem::Specification.new do |s|
40
42
  "db/migrate/002_create_user_observer.rb",
41
43
  "db/migrate/003_rename_output_to_content.rb",
42
44
  "db/migrate/004_create_responses.rb",
45
+ "db/migrate/20100929150423_change_to_updated_by_id.rb",
43
46
  "forms_extension.rb",
44
- "lib/forms/addon_methods.rb",
45
- "lib/forms/admin_ui.rb",
46
- "lib/forms/application_controller_extensions.rb",
47
- "lib/forms/page_extensions.rb",
48
- "lib/forms/site_controller_extensions.rb",
49
- "lib/forms/tags.rb",
47
+ "lib/forms/config.rb",
48
+ "lib/forms/controllers/application_controller.rb",
49
+ "lib/forms/controllers/site_controller.rb",
50
+ "lib/forms/interface/forms.rb",
51
+ "lib/forms/models/extension.rb",
52
+ "lib/forms/models/page.rb",
53
+ "lib/forms/tags/core.rb",
54
+ "lib/forms/tags/helpers.rb",
55
+ "lib/forms/tags/responses.rb",
50
56
  "lib/tasks/forms_extension_tasks.rake",
51
57
  "public/images/admin/extensions/form/form.png",
52
58
  "radiant-forms-extension.gemspec",
53
59
  "spec/controllers/forms_controller_spec.rb",
54
60
  "spec/datasets/forms.rb",
55
- "spec/lib/forms/addon_methods_spec.rb",
56
61
  "spec/lib/forms/tags_spec.rb",
57
62
  "spec/models/form_spec.rb",
58
63
  "spec/models/response_spec.rb",
@@ -62,12 +67,11 @@ Gem::Specification.new do |s|
62
67
  s.homepage = %q{http://github.com/squaretalent/radiant-forms-extension}
63
68
  s.rdoc_options = ["--charset=UTF-8"]
64
69
  s.require_paths = ["lib"]
65
- s.rubygems_version = %q{1.3.5}
70
+ s.rubygems_version = %q{1.3.7}
66
71
  s.summary = %q{Forms Extension for Radiant CMS}
67
72
  s.test_files = [
68
73
  "spec/controllers/forms_controller_spec.rb",
69
74
  "spec/datasets/forms.rb",
70
- "spec/lib/forms/addon_methods_spec.rb",
71
75
  "spec/lib/forms/tags_spec.rb",
72
76
  "spec/models/form_spec.rb",
73
77
  "spec/models/response_spec.rb",
@@ -78,7 +82,7 @@ Gem::Specification.new do |s|
78
82
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
79
83
  s.specification_version = 3
80
84
 
81
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
85
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
82
86
  else
83
87
  end
84
88
  else
@@ -9,8 +9,8 @@ describe FormsController do
9
9
  @page = pages(:home)
10
10
  @form = forms(:test)
11
11
  @params = {
12
- 'form_id' => @form.id,
13
- 'request' => 'test'
12
+ 'id' => @form.id,
13
+ 'data' => 'test'
14
14
  }
15
15
  mock(Page).find(anything) { @page }
16
16
  mock(Form).find(anything) { @form }
@@ -19,7 +19,7 @@ describe FormsController do
19
19
  context 'initialize' do
20
20
 
21
21
  before :each do
22
- post :create, @params
22
+ put :update, @params
23
23
  end
24
24
 
25
25
  it 'should assign the page' do
@@ -31,7 +31,7 @@ describe FormsController do
31
31
  end
32
32
 
33
33
  it 'should put the params into the page data' do
34
- assigns(:page).data['request'].should == @params['request']
34
+ assigns(:page).data[:request].should == @params['request']
35
35
  end
36
36
 
37
37
  it 'should find/create a response object' do
@@ -39,7 +39,7 @@ describe FormsController do
39
39
  end
40
40
 
41
41
  it 'should add the params to the response result' do
42
- assigns(:response).result['request'].should == @params['request']
42
+ assigns(:response).result[:request].should == @params['request']
43
43
  end
44
44
 
45
45
  end
@@ -47,13 +47,13 @@ describe FormsController do
47
47
  context 'configuration' do
48
48
 
49
49
  before :each do
50
- post :create, @params
50
+ put :update, @params
51
51
  end
52
52
 
53
53
  context 'configuration exists' do
54
54
 
55
55
  it 'should assign the configuration settings' do
56
- assigns(:form)[:config][:test]['config'].should == 'test'
56
+ assigns(:form)[:extensions][:test][:config].should == 'test'
57
57
  end
58
58
 
59
59
  end
@@ -75,17 +75,17 @@ describe FormsController do
75
75
  context 'extensions' do
76
76
 
77
77
  before :each do
78
- post :create, @params
78
+ put :update, @params
79
79
  end
80
80
 
81
81
  context 'extension configured' do
82
82
 
83
83
  it 'should call that test extension' do
84
- assigns(:response).result['test_ext'].should == { 'response' => 'test' }
84
+ assigns(:response).result[:results][:test].should == { :response => 'test' }
85
85
  end
86
86
 
87
87
  it 'should not call the alt extension' do
88
- assigns(:response).result['test_alt'].should be_nil
88
+ assigns(:response).result[:results][:alt].should be_nil
89
89
  end
90
90
 
91
91
  end
@@ -104,7 +104,7 @@ describe FormsController do
104
104
 
105
105
  before :each do
106
106
  @form.redirect_to = '/redirect/url'
107
- post :create, @params
107
+ put :update, @params
108
108
  end
109
109
 
110
110
  it 'should redirect to the form redirect url' do
@@ -117,7 +117,7 @@ describe FormsController do
117
117
 
118
118
  before :each do
119
119
  @page.slug = '/page/url'
120
- post :create, @params
120
+ put :update, @params
121
121
  end
122
122
 
123
123
  it 'should render page url' do
@@ -132,7 +132,7 @@ describe FormsController do
132
132
 
133
133
  before :each do
134
134
  stub(@response).save { false }
135
- post :create, @params
135
+ put :update, @params
136
136
  end
137
137
 
138
138
  it 'should raise a form not submitted exception' do
@@ -1,12 +1,12 @@
1
- class FormsTestController
2
- include Forms::AddonMethods
1
+ class FormTest
2
+ include Forms::Models::Extension
3
3
  def create
4
4
  result = { :response => 'test' }
5
5
  end
6
6
  end
7
7
 
8
- class FormsAltController
9
- include Forms::AddonMethods
8
+ class FormAlt
9
+ include Forms::Models::Extension
10
10
  def create
11
11
  result = { :response => 'alt' }
12
12
  end
@@ -14,12 +14,11 @@ describe Forms::Tags do
14
14
  it 'should render the correct HTML' do
15
15
  tag = %{<r:form name="#{@form.title}" />}
16
16
 
17
- expected = %{<form enctype="multipart/form-data" name="#{@form.title}" method="post" action="/forms/#{@form.id}" id="form_test_form">
17
+ expected = %{<form enctype="multipart/form-data" method="post" name="#{@form.title}" action="/forms/#{@form.id}" id="form_test_form">
18
+ <input type="hidden" name="_method" value="put" />
18
19
  <input type="hidden" name="page_id" value="#{@page.id}" />
19
- <input type="hidden" name="form_id" value="#{@form.id}" />
20
20
  <input type="text" value="" name="request[test]" class="text" id="request_test" /></form>}
21
-
22
- @page.should render(tag).as(expected)
21
+ @page.should render(tag).as(expected)
23
22
  end
24
23
  end
25
24
 
@@ -109,14 +108,4 @@ describe Forms::Tags do
109
108
 
110
109
  end
111
110
 
112
- context 'form hooking' do
113
-
114
-
115
- end
116
-
117
- context 'form response' do
118
-
119
- end
120
-
121
-
122
111
  end
@@ -4,13 +4,13 @@ describe Response do
4
4
 
5
5
  before :each do
6
6
  @response = Response.new
7
- @object = { 'test' => 'test' }
7
+ @object = { :test => 'test' }
8
8
  end
9
9
 
10
10
  context 'setting' do
11
11
 
12
12
  it 'should store an object' do
13
- @response.result.should be_nil
13
+ @response.result.should == {}
14
14
  @response.result = @object
15
15
  @response.result.should_not be_nil
16
16
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant-forms-extension
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ hash: 1
5
+ prerelease: false
6
+ segments:
7
+ - 3
8
+ - 1
9
+ - 1
10
+ version: 3.1.1
5
11
  platform: ruby
6
12
  authors:
7
13
  - dirkkelly
@@ -9,7 +15,7 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-08-02 00:00:00 +08:00
18
+ date: 2010-10-08 00:00:00 +08:00
13
19
  default_executable:
14
20
  dependencies: []
15
21
 
@@ -29,6 +35,8 @@ files:
29
35
  - app/controllers/admin/forms_controller.rb
30
36
  - app/controllers/forms_controller.rb
31
37
  - app/models/form.rb
38
+ - app/models/form_mail.rb
39
+ - app/models/form_mailer.rb
32
40
  - app/models/form_page.rb
33
41
  - app/models/response.rb
34
42
  - app/views/admin/forms/_fields.html.haml
@@ -46,19 +54,22 @@ files:
46
54
  - db/migrate/002_create_user_observer.rb
47
55
  - db/migrate/003_rename_output_to_content.rb
48
56
  - db/migrate/004_create_responses.rb
57
+ - db/migrate/20100929150423_change_to_updated_by_id.rb
49
58
  - forms_extension.rb
50
- - lib/forms/addon_methods.rb
51
- - lib/forms/admin_ui.rb
52
- - lib/forms/application_controller_extensions.rb
53
- - lib/forms/page_extensions.rb
54
- - lib/forms/site_controller_extensions.rb
55
- - lib/forms/tags.rb
59
+ - lib/forms/config.rb
60
+ - lib/forms/controllers/application_controller.rb
61
+ - lib/forms/controllers/site_controller.rb
62
+ - lib/forms/interface/forms.rb
63
+ - lib/forms/models/extension.rb
64
+ - lib/forms/models/page.rb
65
+ - lib/forms/tags/core.rb
66
+ - lib/forms/tags/helpers.rb
67
+ - lib/forms/tags/responses.rb
56
68
  - lib/tasks/forms_extension_tasks.rake
57
69
  - public/images/admin/extensions/form/form.png
58
70
  - radiant-forms-extension.gemspec
59
71
  - spec/controllers/forms_controller_spec.rb
60
72
  - spec/datasets/forms.rb
61
- - spec/lib/forms/addon_methods_spec.rb
62
73
  - spec/lib/forms/tags_spec.rb
63
74
  - spec/models/form_spec.rb
64
75
  - spec/models/response_spec.rb
@@ -74,28 +85,33 @@ rdoc_options:
74
85
  require_paths:
75
86
  - lib
76
87
  required_ruby_version: !ruby/object:Gem::Requirement
88
+ none: false
77
89
  requirements:
78
90
  - - ">="
79
91
  - !ruby/object:Gem::Version
92
+ hash: 3
93
+ segments:
94
+ - 0
80
95
  version: "0"
81
- version:
82
96
  required_rubygems_version: !ruby/object:Gem::Requirement
97
+ none: false
83
98
  requirements:
84
99
  - - ">="
85
100
  - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
86
104
  version: "0"
87
- version:
88
105
  requirements: []
89
106
 
90
107
  rubyforge_project:
91
- rubygems_version: 1.3.5
108
+ rubygems_version: 1.3.7
92
109
  signing_key:
93
110
  specification_version: 3
94
111
  summary: Forms Extension for Radiant CMS
95
112
  test_files:
96
113
  - spec/controllers/forms_controller_spec.rb
97
114
  - spec/datasets/forms.rb
98
- - spec/lib/forms/addon_methods_spec.rb
99
115
  - spec/lib/forms/tags_spec.rb
100
116
  - spec/models/form_spec.rb
101
117
  - spec/models/response_spec.rb
@@ -1,14 +0,0 @@
1
- module Forms
2
- module AddonMethods
3
- def self.included(base)
4
- attr_accessor :form, :page, :data
5
- base.class_eval do
6
- def initialize(form, page)
7
- @form = form
8
- @data = page.data
9
- @page = page
10
- end
11
- end
12
- end
13
- end
14
- end