noodall-form-builder 0.1.3 → 0.2.0
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/app/controllers/noodall/form_responses_controller.rb +3 -1
- data/app/models/noodall/form_response.rb +10 -10
- data/features/step_definitions/form_builder_steps.rb +3 -7
- data/features/support/defensio_mock.rb +3 -1
- data/features/support/env.rb +1 -0
- data/lib/noodall/form_builder/version.rb +1 -1
- metadata +13 -13
@@ -18,7 +18,9 @@ module Noodall
|
|
18
18
|
respond_to do |format|
|
19
19
|
if @form_response.valid? and @form_response.save
|
20
20
|
|
21
|
-
|
21
|
+
if @form_response.is_spam?
|
22
|
+
logger.info "Form response was deemed to be spam: #{@form_response.inspect}"
|
23
|
+
else
|
22
24
|
begin
|
23
25
|
# mail the response to the form recipient
|
24
26
|
FormMailer.form_response(@form, @form_response).deliver unless @form.email.blank?
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Noodall
|
2
2
|
class FormResponse
|
3
|
-
include MongoMapper::
|
3
|
+
include MongoMapper::Document
|
4
4
|
|
5
5
|
key :name, String
|
6
6
|
key :email, String, :format => /.+\@.+\..+/
|
@@ -11,14 +11,14 @@ module Noodall
|
|
11
11
|
key :defensio_signature, String
|
12
12
|
key :spaminess, Float, :default => 0
|
13
13
|
|
14
|
-
def required_fields
|
15
|
-
self.form.fields.select{ |f| f.required? }
|
16
|
-
end
|
17
|
-
|
18
14
|
before_save :check_for_spam
|
19
15
|
attr_protected :approved
|
20
16
|
|
21
|
-
|
17
|
+
belongs_to :form, :class => Noodall::Form, :foreign_key => 'noodall_form_id'
|
18
|
+
|
19
|
+
def required_fields
|
20
|
+
self.form.fields.select{ |f| f.required? }
|
21
|
+
end
|
22
22
|
|
23
23
|
def approve!
|
24
24
|
self.approved = true
|
@@ -41,9 +41,9 @@ module Noodall
|
|
41
41
|
value = self.send(name)
|
42
42
|
|
43
43
|
if value.is_a?(Array)
|
44
|
-
|
44
|
+
value.join(', ')
|
45
45
|
else
|
46
|
-
|
46
|
+
value.to_s
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -54,8 +54,8 @@ module Noodall
|
|
54
54
|
return unless status == 200
|
55
55
|
|
56
56
|
self.defensio_signature = response['signature']
|
57
|
-
self.spaminess = response['spaminess']
|
58
|
-
self.approved = response['allow']
|
57
|
+
self.spaminess = response['spaminess']
|
58
|
+
self.approved = response['allow']
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -53,13 +53,9 @@ end
|
|
53
53
|
|
54
54
|
Given /^a form exists that has had many responses$/ do
|
55
55
|
form = Factory(:form)
|
56
|
-
|
57
|
-
|
58
|
-
9.times do |i|
|
59
|
-
responses << Factory(:response)
|
56
|
+
9.times do
|
57
|
+
Factory(:response, :form => form)
|
60
58
|
end
|
61
|
-
form.responses = responses
|
62
|
-
form.save!
|
63
59
|
end
|
64
60
|
|
65
61
|
When /^I click "([^\"]*)" on the forms row in the Form List$/ do |arg1|
|
@@ -192,7 +188,7 @@ end
|
|
192
188
|
When /^a form response is deemed to be spam$/ do
|
193
189
|
When %{a website visitor visits the content}
|
194
190
|
defensio_dummy = double("defensio dummy")
|
195
|
-
defensio_dummy.stub(:post_document){ [200, {'spaminess' => 1}] }
|
191
|
+
defensio_dummy.stub(:post_document){ [200, {'spaminess' => 1, "allow" => false}] }
|
196
192
|
|
197
193
|
Noodall::FormResponse.stub(:defensio).and_return(defensio_dummy)
|
198
194
|
When %{they fill in and submit the form}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
Before do
|
2
2
|
defensio_dummy = double("defensio dummy")
|
3
|
-
defensio_dummy.stub(:post_document)
|
3
|
+
defensio_dummy.stub(:post_document) do
|
4
|
+
[200, {"spaminess" => 0.2, "allow" => true}]
|
5
|
+
end
|
4
6
|
|
5
7
|
Noodall::FormResponse.stub(:defensio).and_return(defensio_dummy)
|
6
8
|
end
|
data/features/support/env.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: noodall-form-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors: []
|
13
13
|
|
@@ -15,11 +15,13 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-04-20 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
22
|
+
name: bundler
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
25
|
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
@@ -30,12 +32,12 @@ dependencies:
|
|
30
32
|
- 0
|
31
33
|
- 0
|
32
34
|
version: 1.0.0
|
33
|
-
name: bundler
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *id001
|
36
35
|
type: :development
|
36
|
+
requirement: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
|
38
|
+
name: fastercsv
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
41
|
none: false
|
40
42
|
requirements:
|
41
43
|
- - ">="
|
@@ -44,10 +46,8 @@ dependencies:
|
|
44
46
|
segments:
|
45
47
|
- 0
|
46
48
|
version: "0"
|
47
|
-
name: fastercsv
|
48
|
-
prerelease: false
|
49
|
-
version_requirements: *id002
|
50
49
|
type: :runtime
|
50
|
+
requirement: *id002
|
51
51
|
description: Functionality for building custom forms
|
52
52
|
email: []
|
53
53
|
|