dynamite 0.0.0 → 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.
Files changed (35) hide show
  1. data/CDDL-LICENSE +382 -0
  2. data/README.rdoc +2 -1
  3. data/lib/assets/javascripts/dynamite.js +1 -1
  4. data/lib/assets/javascripts/dynamite/dynamite.jquery.js +201 -0
  5. data/lib/assets/javascripts/dynamite/email.dynamite.jquery.js +14 -0
  6. data/lib/assets/javascripts/dynamite/textarea.dynamite.jquery.js +14 -0
  7. data/lib/assets/javascripts/dynamite/textbox.dynamite.jquery.js +4 -0
  8. data/lib/assets/javascripts/dynamite/tickbox.dynamite.jquery.js +14 -0
  9. data/lib/default_partials/_email.html.erb +13 -0
  10. data/lib/default_partials/_textarea.html.erb +13 -0
  11. data/lib/default_partials/_textbox.html.erb +13 -0
  12. data/lib/default_partials/_tickbox.html.erb +13 -0
  13. data/lib/dynamite.rb +63 -0
  14. data/lib/dynamite/version.rb +1 -1
  15. data/lib/generators/install/templates/app/assets/stylesheets/dynamite.css +34 -0
  16. data/lib/generators/install/templates/app/assets/stylesheets/scaffolds.css.scss +56 -0
  17. data/lib/generators/install/templates/app/controllers/form_submissions_controller.rb +83 -0
  18. data/lib/generators/install/templates/app/controllers/forms_controller.rb +83 -0
  19. data/lib/generators/install/templates/app/models/form.rb +37 -0
  20. data/lib/generators/install/templates/app/models/form_schema.rb +3 -0
  21. data/lib/generators/install/templates/app/models/form_submission.rb +58 -0
  22. data/lib/generators/install/templates/app/models/form_var.rb +3 -0
  23. data/lib/generators/install/templates/app/views/form_submissions/_form.html.erb +21 -0
  24. data/lib/generators/install/templates/app/views/form_submissions/edit.html.erb +6 -0
  25. data/lib/generators/install/templates/app/views/form_submissions/index.html.erb +24 -0
  26. data/lib/generators/install/templates/app/views/form_submissions/new.html.erb +5 -0
  27. data/lib/generators/install/templates/app/views/form_submissions/show.html.erb +10 -0
  28. data/lib/generators/install/templates/app/views/forms/_form.html.erb +25 -0
  29. data/lib/generators/install/templates/app/views/forms/edit.html.erb +6 -0
  30. data/lib/generators/install/templates/app/views/forms/index.html.erb +23 -0
  31. data/lib/generators/install/templates/app/views/forms/new.html.erb +5 -0
  32. data/lib/generators/install/templates/app/views/forms/show.html.erb +15 -0
  33. data/lib/generators/install/templates/db/migrate/install_dynamite.rb +28 -0
  34. metadata +43 -8
  35. data/MIT-LICENSE +0 -20
@@ -0,0 +1,37 @@
1
+
2
+
3
+
4
+ class Form < ActiveRecord::Base
5
+ has_many :form_submissions
6
+ has_many :form_schemas, :order => "id DESC"
7
+
8
+ validates :name, :presence => true
9
+
10
+ after_save :save_schema
11
+
12
+ @_schema = nil
13
+
14
+ def schema
15
+ if !@_schema.nil?
16
+ @_schema
17
+ elsif self.id.nil?
18
+ ""
19
+ else
20
+ @_schema = form_schemas.first.data
21
+ @_schema
22
+ end
23
+ end
24
+
25
+ def schema=(value)
26
+ @_schema = value
27
+ end
28
+
29
+
30
+ def save_schema
31
+ form_schema = FormSchema.new
32
+ form_schema.form_id = id
33
+ form_schema.data = @_schema
34
+ form_schema.save
35
+ end
36
+
37
+ end
@@ -0,0 +1,3 @@
1
+ class FormSchema < ActiveRecord::Base
2
+ belongs_to :form
3
+ end
@@ -0,0 +1,58 @@
1
+
2
+ class FormSubmission < ActiveRecord::Base
3
+ belongs_to :form_schema
4
+ has_one :form, :through => :form_schema
5
+ has_many :form_vars
6
+
7
+ validate :vars_are_valid
8
+
9
+ def vars_are_valid
10
+ current_vars = self.vars
11
+ JSON.parse(self.schema)['inputs'].each do |input|
12
+ if input['type'] == 'textbox' || input['type'] == 'email' || input['type'] == 'textarea' || input['type'] == 'email'
13
+ if current_vars[input['label']].strip == ""
14
+ errors.add input['label'].to_sym, " can't be blank"
15
+ elsif input['type'] == 'email' && !current_vars[input['label']].match(/^[^@]+@[^@]+$/)
16
+ errors.add input['label'].to_sym, " is invalid"
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ @_vars = nil
23
+
24
+ def vars
25
+ if !@_vars.nil?
26
+ @_vars
27
+ elsif self.id.nil?
28
+ {}
29
+ else
30
+ @_vars = {}
31
+ self.form_vars.each do |form_var|
32
+ @_vars[form_var.key] = form_var.value
33
+ end
34
+ @_vars
35
+ end
36
+ end
37
+
38
+ def vars=(hash)
39
+ @_vars = hash
40
+ end
41
+
42
+ def schema
43
+ FormSchema.where(:id => form_schema_id).first.data
44
+ end
45
+
46
+ after_save :save_vars
47
+ def save_vars
48
+ FormVar.delete_all(:form_submission_id => self.id)
49
+ @_vars.each do |key,value|
50
+ var = FormVar.new
51
+ var.form_submission_id = self.id
52
+ var.key = key
53
+ var.value = value
54
+ var.save
55
+ end
56
+ end
57
+
58
+ end
@@ -0,0 +1,3 @@
1
+ class FormVar < ActiveRecord::Base
2
+ belongs_to :form_submission
3
+ end
@@ -0,0 +1,21 @@
1
+ <%= form_for(@form_submission) do |f| %>
2
+ <% if @form_submission.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@form_submission.errors.count, "error") %> prohibited this form_submission from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @form_submission.errors.full_messages.each do |msg| %>
8
+ <li><%= msg %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <%= f.hidden_field :form_schema_id %>
15
+
16
+ <%= f.dynamite_inputs %>
17
+
18
+ <div class="actions">
19
+ <%= f.submit %>
20
+ </div>
21
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing form_submission</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @form_submission %> |
6
+ <%= link_to 'Back', form_submissions_path(:form_id => @form_submission.form_schema.form.id) %>
@@ -0,0 +1,24 @@
1
+ <h1>&quot;<%= @form.name %>&quot; Form Submissions</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Vars</th>
6
+ <th></th>
7
+ <th></th>
8
+ <th></th>
9
+ </tr>
10
+
11
+ <% @form_submissions.each do |form_submission| %>
12
+ <tr>
13
+ <td><%= form_submission.vars %></td>
14
+ <td><%= link_to 'Show', form_submission %></td>
15
+ <td><%= link_to 'Edit', edit_form_submission_path(form_submission) %></td>
16
+ <td><%= link_to 'Destroy', form_submission, confirm: 'Are you sure?', method: :delete %></td>
17
+ </tr>
18
+ <% end %>
19
+ </table>
20
+
21
+ <br />
22
+
23
+ <%= link_to 'New Form submission', new_form_submission_path(:form_id => @form.id) %> |
24
+ <%= link_to 'Back', forms_path %>
@@ -0,0 +1,5 @@
1
+ <h1><%= @form_submission.form.name %></h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', form_submissions_path(:form_id => @form_submission.form.id) %>
@@ -0,0 +1,10 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <b>Vars:</b>
5
+ <pre><%= @form_submission.vars %></pre>
6
+ </p>
7
+
8
+
9
+ <%= link_to 'Edit', edit_form_submission_path(@form_submission) %> |
10
+ <%= link_to 'Back', form_submissions_path(:form_id => @form_submission.form_schema.form.id) %>
@@ -0,0 +1,25 @@
1
+ <%= form_for(@form) do |f| %>
2
+ <% if @form.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@form.errors.count, "error") %> prohibited this form from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @form.errors.full_messages.each do |msg| %>
8
+ <li><%= msg %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="field">
15
+ <%= f.label :name %><br />
16
+ <%= f.text_field :name %>
17
+ </div>
18
+ <div class="field">
19
+ <%= f.label :schema %><br />
20
+ <%= f.text_area :schema, :class => 'dynamite' %>
21
+ </div>
22
+ <div class="actions">
23
+ <%= f.submit %>
24
+ </div>
25
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing form</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @form %> |
6
+ <%= link_to 'Back', forms_path %>
@@ -0,0 +1,23 @@
1
+ <h1>Listing forms</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Name</th>
6
+ <th></th>
7
+ <th></th>
8
+ <th></th>
9
+ </tr>
10
+
11
+ <% @forms.each do |form| %>
12
+ <tr>
13
+ <td><%= form.name %></td>
14
+ <td><%= link_to 'Submissions', form_submissions_path(:form_id => form.id) %></td>
15
+ <td><%= link_to 'Edit', edit_form_path(form) %></td>
16
+ <td><%= link_to 'Destroy', form, confirm: 'Are you sure?', method: :delete %></td>
17
+ </tr>
18
+ <% end %>
19
+ </table>
20
+
21
+ <br />
22
+
23
+ <%= link_to 'New Form', new_form_path %>
@@ -0,0 +1,5 @@
1
+ <h1>New form</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', forms_path %>
@@ -0,0 +1,15 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <b>Name:</b>
5
+ <%= @form.name %>
6
+ </p>
7
+
8
+ <p>
9
+ <b>Schema:</b>
10
+ <%= @form.schema %>
11
+ </p>
12
+
13
+ <%= link_to 'Add Submission', new_form_submission_path(:form_id => @form.id) %> |
14
+ <%= link_to 'Edit', edit_form_path(@form) %> |
15
+ <%= link_to 'Back', forms_path %>
@@ -0,0 +1,28 @@
1
+ class InstallDynamite < ActiveRecord::Migration
2
+ def change
3
+
4
+ create_table "form_schemas" do |t|
5
+ t.integer "form_id"
6
+ t.text "data"
7
+ t.timestamps
8
+ end
9
+
10
+ create_table "form_submissions" do |t|
11
+ t.integer "form_schema_id"
12
+ t.timestamps
13
+ end
14
+
15
+ create_table "form_vars" do |t|
16
+ t.integer "form_submission_id"
17
+ t.string "key"
18
+ t.text "value"
19
+ t.timestamps
20
+ end
21
+
22
+ create_table "forms" do |t|
23
+ t.string "name"
24
+ t.timestamps
25
+ end
26
+
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-15 00:00:00.000000000Z
12
+ date: 2011-12-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &9878160 !ruby/object:Gem::Requirement
16
+ requirement: &20782500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.1.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *9878160
24
+ version_requirements: *20782500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3
27
- requirement: &9877600 !ruby/object:Gem::Requirement
27
+ requirement: &20782080 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *9877600
35
+ version_requirements: *20782080
36
36
  description: Build forms insde your browser
37
37
  email:
38
38
  - it@leanbid.com
@@ -40,18 +40,46 @@ executables: []
40
40
  extensions: []
41
41
  extra_rdoc_files: []
42
42
  files:
43
+ - lib/generators/install/templates/db/migrate/install_dynamite.rb
44
+ - lib/generators/install/templates/app/views/forms/edit.html.erb
45
+ - lib/generators/install/templates/app/views/forms/_form.html.erb
46
+ - lib/generators/install/templates/app/views/forms/new.html.erb
47
+ - lib/generators/install/templates/app/views/forms/index.html.erb
48
+ - lib/generators/install/templates/app/views/forms/show.html.erb
49
+ - lib/generators/install/templates/app/views/form_submissions/edit.html.erb
50
+ - lib/generators/install/templates/app/views/form_submissions/_form.html.erb
51
+ - lib/generators/install/templates/app/views/form_submissions/new.html.erb
52
+ - lib/generators/install/templates/app/views/form_submissions/index.html.erb
53
+ - lib/generators/install/templates/app/views/form_submissions/show.html.erb
54
+ - lib/generators/install/templates/app/controllers/form_submissions_controller.rb
55
+ - lib/generators/install/templates/app/controllers/forms_controller.rb
56
+ - lib/generators/install/templates/app/assets/stylesheets/dynamite.css
57
+ - lib/generators/install/templates/app/assets/stylesheets/scaffolds.css.scss
58
+ - lib/generators/install/templates/app/models/form_schema.rb
59
+ - lib/generators/install/templates/app/models/form_submission.rb
60
+ - lib/generators/install/templates/app/models/form_var.rb
61
+ - lib/generators/install/templates/app/models/form.rb
43
62
  - lib/dynamite/railtie.rb
44
63
  - lib/dynamite/version.rb
45
64
  - lib/dynamite/engine.rb
46
65
  - lib/dynamite.rb
47
66
  - lib/tasks/dynamite_tasks.rake
67
+ - lib/default_partials/_email.html.erb
68
+ - lib/default_partials/_textarea.html.erb
69
+ - lib/default_partials/_textbox.html.erb
70
+ - lib/default_partials/_tickbox.html.erb
71
+ - lib/assets/javascripts/dynamite/dynamite.jquery.js
72
+ - lib/assets/javascripts/dynamite/tickbox.dynamite.jquery.js
73
+ - lib/assets/javascripts/dynamite/textbox.dynamite.jquery.js
74
+ - lib/assets/javascripts/dynamite/email.dynamite.jquery.js
75
+ - lib/assets/javascripts/dynamite/textarea.dynamite.jquery.js
48
76
  - lib/assets/javascripts/dynaform/dynaform.jquery.js
49
77
  - lib/assets/javascripts/dynaform/email.dynaform.jquery.js
50
78
  - lib/assets/javascripts/dynaform/tickbox.dynaform.jquery.js
51
79
  - lib/assets/javascripts/dynaform/textarea.dynaform.jquery.js
52
80
  - lib/assets/javascripts/dynaform/textbox.dynaform.jquery.js
53
81
  - lib/assets/javascripts/dynamite.js
54
- - MIT-LICENSE
82
+ - CDDL-LICENSE
55
83
  - Rakefile
56
84
  - README.rdoc
57
85
  - test/dynamite_test.rb
@@ -84,7 +112,8 @@ files:
84
112
  - test/dummy/app/assets/stylesheets/application.css
85
113
  - test/test_helper.rb
86
114
  homepage: https://github.com/PS-Computer-Services-Ltd/dynamite
87
- licenses: []
115
+ licenses:
116
+ - CDDL
88
117
  post_install_message:
89
118
  rdoc_options: []
90
119
  require_paths:
@@ -95,12 +124,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
95
124
  - - ! '>='
96
125
  - !ruby/object:Gem::Version
97
126
  version: '0'
127
+ segments:
128
+ - 0
129
+ hash: 2305634846029880877
98
130
  required_rubygems_version: !ruby/object:Gem::Requirement
99
131
  none: false
100
132
  requirements:
101
133
  - - ! '>='
102
134
  - !ruby/object:Gem::Version
103
135
  version: '0'
136
+ segments:
137
+ - 0
138
+ hash: 2305634846029880877
104
139
  requirements: []
105
140
  rubyforge_project:
106
141
  rubygems_version: 1.8.10
data/MIT-LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright 2011 YOURNAME
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.