noodall-form-builder 0.3.3 → 0.4.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/Gemfile +1 -1
- data/{public → app/assets}/images/admin/spam-flag.png +0 -0
- data/{public → app/assets}/javascripts/admin/formbuilder.js +0 -0
- data/app/models/contact_form.rb +0 -2
- data/app/models/noodall/form_response.rb +19 -10
- data/lib/noodall/form_builder/engine.rb +9 -2
- data/lib/noodall/form_builder/version.rb +1 -1
- data/spec/dummy/config/defensio.yml +1 -15
- metadata +35 -64
data/Gemfile
CHANGED
File without changes
|
File without changes
|
data/app/models/contact_form.rb
CHANGED
@@ -11,7 +11,8 @@ module Noodall
|
|
11
11
|
key :defensio_signature, String
|
12
12
|
key :spaminess, Float, :default => 0
|
13
13
|
|
14
|
-
before_save :check_for_spam
|
14
|
+
before_save :check_for_spam, :if => :defensio_configuired?
|
15
|
+
|
15
16
|
attr_protected :approved
|
16
17
|
|
17
18
|
timestamps!
|
@@ -21,7 +22,7 @@ module Noodall
|
|
21
22
|
def required_fields
|
22
23
|
self.form.fields.select{ |f| f.required? }
|
23
24
|
end
|
24
|
-
|
25
|
+
|
25
26
|
def correct_fields?
|
26
27
|
self.form.fields.each do |f|
|
27
28
|
return false unless self.respond_to?(f.name.downcase.parameterize("_").to_sym)
|
@@ -57,6 +58,10 @@ module Noodall
|
|
57
58
|
end
|
58
59
|
|
59
60
|
protected
|
61
|
+
def defensio_configuired?
|
62
|
+
defined?(Defensio) && !self.class.defensio_config.blank?
|
63
|
+
end
|
64
|
+
|
60
65
|
def check_for_spam
|
61
66
|
if self.defensio_signature.blank?
|
62
67
|
status, response = self.class.defensio.post_document(self.defensio_attributes)
|
@@ -66,7 +71,7 @@ module Noodall
|
|
66
71
|
self.spaminess = response['spaminess']
|
67
72
|
self.approved = response['allow']
|
68
73
|
end
|
69
|
-
return true
|
74
|
+
return true
|
70
75
|
end
|
71
76
|
|
72
77
|
def self.defensio
|
@@ -78,8 +83,12 @@ module Noodall
|
|
78
83
|
end
|
79
84
|
|
80
85
|
def self.defensio_config
|
81
|
-
|
82
|
-
|
86
|
+
begin
|
87
|
+
@defensio_config ||= YAML::load(File.open(File.join(Rails.root, 'config', 'defensio.yml')))
|
88
|
+
rescue Exception => e
|
89
|
+
puts "Failed to load Defensio config: #{e}"
|
90
|
+
@defensio_config = {}
|
91
|
+
end
|
83
92
|
end
|
84
93
|
|
85
94
|
def defensio_attributes
|
@@ -103,17 +112,17 @@ module Noodall
|
|
103
112
|
required_fields.each do |field|
|
104
113
|
self.errors.add(field.underscored_name.to_sym, "can't be empty") if self.send(field.underscored_name).blank?
|
105
114
|
end
|
106
|
-
return true if self.errors.empty?
|
115
|
+
return true if self.errors.empty?
|
107
116
|
end
|
108
|
-
|
117
|
+
|
109
118
|
def method_missing(method)
|
110
|
-
# If the form doesn't have a field that matches this method, act normally. Otherwise, return nil to show the field is empty.
|
111
|
-
if form.fields.select{|f| f.underscored_name.to_sym == method}.empty?
|
119
|
+
# If the form doesn't have a field that matches this method, act normally. Otherwise, return nil to show the field is empty.
|
120
|
+
if form.fields.select{|f| f.underscored_name.to_sym == method}.empty?
|
112
121
|
super
|
113
122
|
else
|
114
123
|
return nil
|
115
124
|
end
|
116
125
|
end
|
117
|
-
|
126
|
+
|
118
127
|
end
|
119
128
|
end
|
@@ -11,9 +11,16 @@ module Noodall
|
|
11
11
|
Noodall::UI.menu_items['Forms'] = :noodall_admin_forms_path
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
if Rails::VERSION::MINOR == 0 # if rails 3.0.x
|
15
|
+
initializer "static assets" do |app|
|
16
|
+
app.middleware.use ::ActionDispatch::Static, "#{root}/app/assets"
|
17
|
+
end
|
18
|
+
else
|
19
|
+
initializer "Add noodall assets to precomiler" do |app|
|
20
|
+
app.config.assets.precompile += %w( admin/formbuilder.js )
|
21
|
+
end
|
16
22
|
end
|
23
|
+
|
17
24
|
end
|
18
25
|
end
|
19
26
|
end
|
@@ -1,16 +1,2 @@
|
|
1
|
-
|
2
|
-
api_key: 6cd604f9b2765b05c5ac729b3594fc49
|
3
|
-
spam_threshold: 0.75
|
4
|
-
|
5
|
-
development:
|
6
|
-
<<: *defaults
|
7
|
-
|
8
|
-
test:
|
9
|
-
<<: *defaults
|
10
|
-
|
11
|
-
production:
|
12
|
-
<<: *defaults
|
13
|
-
|
14
|
-
staging:
|
15
|
-
<<: *defaults
|
1
|
+
api_key: 6cd604f9b2765b05c5ac729b3594fc49
|
16
2
|
|
metadata
CHANGED
@@ -1,70 +1,53 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: noodall-form-builder
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 3
|
10
|
-
version: 0.3.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Steve England
|
14
9
|
- Daniel Craig
|
15
10
|
- Alex Heaton
|
16
11
|
autorequire:
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
dependencies:
|
23
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
date: 2011-11-29 00:00:00.000000000Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
24
17
|
name: bundler
|
25
|
-
|
18
|
+
requirement: &13067740 !ruby/object:Gem::Requirement
|
26
19
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 23
|
31
|
-
segments:
|
32
|
-
- 1
|
33
|
-
- 0
|
34
|
-
- 0
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
35
23
|
version: 1.0.0
|
36
24
|
type: :development
|
37
25
|
prerelease: false
|
38
|
-
|
39
|
-
- !ruby/object:Gem::Dependency
|
26
|
+
version_requirements: *13067740
|
27
|
+
- !ruby/object:Gem::Dependency
|
40
28
|
name: fastercsv
|
41
|
-
|
29
|
+
requirement: &13067280 !ruby/object:Gem::Requirement
|
42
30
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
segments:
|
48
|
-
- 0
|
49
|
-
version: "0"
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
50
35
|
type: :runtime
|
51
36
|
prerelease: false
|
52
|
-
|
37
|
+
version_requirements: *13067280
|
53
38
|
description: Functionality for building custom forms
|
54
39
|
email: []
|
55
|
-
|
56
40
|
executables: []
|
57
|
-
|
58
41
|
extensions: []
|
59
|
-
|
60
42
|
extra_rdoc_files: []
|
61
|
-
|
62
|
-
files:
|
43
|
+
files:
|
63
44
|
- .gitignore
|
64
45
|
- Gemfile
|
65
46
|
- MIT-LICENSE
|
66
47
|
- README.rdoc
|
67
48
|
- Rakefile
|
49
|
+
- app/assets/images/admin/spam-flag.png
|
50
|
+
- app/assets/javascripts/admin/formbuilder.js
|
68
51
|
- app/controllers/noodall/admin/fields_controller.rb
|
69
52
|
- app/controllers/noodall/admin/form_responses_controller.rb
|
70
53
|
- app/controllers/noodall/admin/forms_controller.rb
|
@@ -127,8 +110,6 @@ files:
|
|
127
110
|
- lib/noodall/form_builder/routes.rb
|
128
111
|
- lib/noodall/form_builder/version.rb
|
129
112
|
- noodall-form-builder.gemspec
|
130
|
-
- public/images/admin/spam-flag.png
|
131
|
-
- public/javascripts/admin/formbuilder.js
|
132
113
|
- spec/dummy/Rakefile
|
133
114
|
- spec/dummy/app/controllers/application_controller.rb
|
134
115
|
- spec/dummy/app/helpers/application_helper.rb
|
@@ -174,41 +155,31 @@ files:
|
|
174
155
|
- spec/integration/navigation_spec.rb
|
175
156
|
- spec/noodall_form_builder_spec.rb
|
176
157
|
- spec/spec_helper.rb
|
177
|
-
has_rdoc: true
|
178
158
|
homepage: http://rubygems.org/gems/noodall-form-builder
|
179
159
|
licenses: []
|
180
|
-
|
181
160
|
post_install_message:
|
182
161
|
rdoc_options: []
|
183
|
-
|
184
|
-
require_paths:
|
162
|
+
require_paths:
|
185
163
|
- lib
|
186
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
187
165
|
none: false
|
188
|
-
requirements:
|
189
|
-
- -
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
|
192
|
-
segments:
|
166
|
+
requirements:
|
167
|
+
- - ! '>='
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
170
|
+
segments:
|
193
171
|
- 0
|
194
|
-
|
195
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
|
+
hash: 2077469177402188089
|
173
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
174
|
none: false
|
197
|
-
requirements:
|
198
|
-
- -
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
hash: 23
|
201
|
-
segments:
|
202
|
-
- 1
|
203
|
-
- 3
|
204
|
-
- 6
|
175
|
+
requirements:
|
176
|
+
- - ! '>='
|
177
|
+
- !ruby/object:Gem::Version
|
205
178
|
version: 1.3.6
|
206
179
|
requirements: []
|
207
|
-
|
208
180
|
rubyforge_project:
|
209
|
-
rubygems_version: 1.
|
181
|
+
rubygems_version: 1.8.6
|
210
182
|
signing_key:
|
211
183
|
specification_version: 3
|
212
184
|
summary: Noodall Form Builder
|
213
185
|
test_files: []
|
214
|
-
|