high_voltage 1.0.1 → 1.1.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.
Files changed (63) hide show
  1. data/.gitignore +7 -0
  2. data/.travis.yml +3 -0
  3. data/Appraisals +7 -0
  4. data/CONTRIBUTING.md +38 -0
  5. data/Gemfile +3 -0
  6. data/Gemfile.lock +94 -0
  7. data/README.md +11 -1
  8. data/Rakefile +14 -0
  9. data/app/controllers/high_voltage/pages_controller.rb +7 -2
  10. data/config/routes.rb +2 -1
  11. data/gemfiles/rails-3.0.10.gemfile +7 -0
  12. data/gemfiles/rails-3.0.10.gemfile.lock +124 -0
  13. data/gemfiles/rails-3.1.0.gemfile +7 -0
  14. data/gemfiles/rails-3.1.0.gemfile.lock +137 -0
  15. data/high_voltage.gemspec +22 -0
  16. data/lib/high_voltage.rb +12 -0
  17. data/lib/high_voltage/version.rb +3 -0
  18. data/spec/controllers/pages_controller_spec.rb +106 -0
  19. data/spec/controllers/subclassed_pages_controller_spec.rb +41 -0
  20. data/spec/dummy/Rakefile +7 -0
  21. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  22. data/spec/dummy/app/controllers/subclassed_pages_controller.rb +7 -0
  23. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  24. data/spec/dummy/app/views/layouts/alternate.html.erb +14 -0
  25. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  26. data/spec/dummy/app/views/other/wrong.html.erb +1 -0
  27. data/spec/dummy/app/views/other_pages/also_dir/also_nested.html.erb +1 -0
  28. data/spec/dummy/app/views/other_pages/also_exists.html.erb +1 -0
  29. data/spec/dummy/app/views/other_pages/also_exists_but_references_nonexistent_partial.html.erb +2 -0
  30. data/spec/dummy/app/views/pages/dir/nested.html.erb +1 -0
  31. data/spec/dummy/app/views/pages/exists.html.erb +1 -0
  32. data/spec/dummy/app/views/pages/exists_but_references_nonexistent_partial.html.erb +2 -0
  33. data/spec/dummy/config.ru +4 -0
  34. data/spec/dummy/config/application.rb +44 -0
  35. data/spec/dummy/config/boot.rb +10 -0
  36. data/spec/dummy/config/environment.rb +5 -0
  37. data/spec/dummy/config/environments/development.rb +25 -0
  38. data/spec/dummy/config/environments/production.rb +49 -0
  39. data/spec/dummy/config/environments/test.rb +35 -0
  40. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  41. data/spec/dummy/config/initializers/inflections.rb +10 -0
  42. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  43. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  44. data/spec/dummy/config/initializers/session_store.rb +8 -0
  45. data/spec/dummy/config/locales/en.yml +5 -0
  46. data/spec/dummy/config/routes.rb +3 -0
  47. data/spec/dummy/public/404.html +26 -0
  48. data/spec/dummy/public/422.html +26 -0
  49. data/spec/dummy/public/500.html +26 -0
  50. data/spec/dummy/public/favicon.ico +0 -0
  51. data/spec/dummy/public/javascripts/application.js +2 -0
  52. data/spec/dummy/public/javascripts/controls.js +965 -0
  53. data/spec/dummy/public/javascripts/dragdrop.js +974 -0
  54. data/spec/dummy/public/javascripts/effects.js +1123 -0
  55. data/spec/dummy/public/javascripts/prototype.js +6001 -0
  56. data/spec/dummy/public/javascripts/rails.js +191 -0
  57. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  58. data/spec/dummy/script/rails +6 -0
  59. data/spec/high_voltage_spec.rb +7 -0
  60. data/spec/integration/navigation_spec.rb +9 -0
  61. data/spec/routing/routes_spec.rb +68 -0
  62. data/spec/spec_helper.rb +30 -0
  63. metadata +202 -22
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ spec/dummy/db/*.sqlite3
5
+ spec/dummy/log/*.log
6
+ spec/dummy/tmp/
7
+ *.swp
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
data/Appraisals ADDED
@@ -0,0 +1,7 @@
1
+ appraise "rails-3.1.0" do
2
+ gem "rails", "3.1.0"
3
+ end
4
+
5
+ appraise "rails-3.0.10" do
6
+ gem "rails", "3.0.10"
7
+ end
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,38 @@
1
+ We love pull requests. Here's a quick guide:
2
+
3
+ 1. Fork the repo.
4
+
5
+ 2. Run the tests. We only take pull requests with passing tests, and it's great
6
+ to know that you have a clean slate: `bundle && rake`
7
+
8
+ 3. Add a test for your change. Only refactoring and documentation changes
9
+ require no new tests. If you are adding functionality or fixing a bug, we need
10
+ a test!
11
+
12
+ 4. Make the test pass.
13
+
14
+ 5. Push to your fork and submit a pull request.
15
+
16
+
17
+ At this point you're waiting on us. We like to at least comment on, if not
18
+ accept, pull requests within three business days (and, typically, one business
19
+ day). We may suggest some changes or improvements or alternatives.
20
+
21
+ Some things that will increase the chance that your pull request is accepted,
22
+ taken straight from the Ruby on Rails guide:
23
+
24
+ * Use Rails idioms and helpers
25
+ * Include tests that fail without your code, and pass with it
26
+ * Update the documentation, the surrounding one, examples elsewhere, guides,
27
+ whatever is affected by your contribution
28
+
29
+ Syntax:
30
+
31
+ * Two spaces, no tabs.
32
+ * No trailing whitespace. Blank lines should not have any space.
33
+ * Prefer &&/|| over and/or.
34
+ * MyClass.my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
35
+ * a = b and not a=b.
36
+ * Follow the conventions you see used in the source already.
37
+
38
+ And in case we didn't emphasize it enough: we love tests!
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,94 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ high_voltage (1.1.0)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ abstract (1.0.0)
10
+ actionpack (3.0.10)
11
+ activemodel (= 3.0.10)
12
+ activesupport (= 3.0.10)
13
+ builder (~> 2.1.2)
14
+ erubis (~> 2.6.6)
15
+ i18n (~> 0.5.0)
16
+ rack (~> 1.2.1)
17
+ rack-mount (~> 0.6.14)
18
+ rack-test (~> 0.5.7)
19
+ tzinfo (~> 0.3.23)
20
+ activemodel (3.0.10)
21
+ activesupport (= 3.0.10)
22
+ builder (~> 2.1.2)
23
+ i18n (~> 0.5.0)
24
+ activesupport (3.0.10)
25
+ appraisal (0.3.8)
26
+ bundler
27
+ rake
28
+ builder (2.1.2)
29
+ capybara (1.1.0)
30
+ mime-types (>= 1.16)
31
+ nokogiri (>= 1.3.3)
32
+ rack (>= 1.0.0)
33
+ rack-test (>= 0.5.4)
34
+ selenium-webdriver (~> 2.0)
35
+ xpath (~> 0.1.4)
36
+ childprocess (0.2.2)
37
+ ffi (~> 1.0.6)
38
+ diff-lcs (1.1.3)
39
+ erubis (2.6.6)
40
+ abstract (>= 1.0.0)
41
+ ffi (1.0.9)
42
+ i18n (0.5.0)
43
+ json_pure (1.5.4)
44
+ spruz (~> 0.2.8)
45
+ mime-types (1.16)
46
+ nokogiri (1.5.0)
47
+ rack (1.2.3)
48
+ rack-mount (0.6.14)
49
+ rack (>= 1.0.0)
50
+ rack-test (0.5.7)
51
+ rack (>= 1.0)
52
+ railties (3.0.10)
53
+ actionpack (= 3.0.10)
54
+ activesupport (= 3.0.10)
55
+ rake (>= 0.8.7)
56
+ rdoc (~> 3.4)
57
+ thor (~> 0.14.4)
58
+ rake (0.9.2)
59
+ rdoc (3.9.4)
60
+ rspec (2.6.0)
61
+ rspec-core (~> 2.6.0)
62
+ rspec-expectations (~> 2.6.0)
63
+ rspec-mocks (~> 2.6.0)
64
+ rspec-core (2.6.4)
65
+ rspec-expectations (2.6.0)
66
+ diff-lcs (~> 1.1.2)
67
+ rspec-mocks (2.6.0)
68
+ rspec-rails (2.6.1)
69
+ actionpack (~> 3.0)
70
+ activesupport (~> 3.0)
71
+ railties (~> 3.0)
72
+ rspec (~> 2.6.0)
73
+ rubyzip (0.9.4)
74
+ selenium-webdriver (2.5.0)
75
+ childprocess (>= 0.2.1)
76
+ ffi (>= 1.0.7)
77
+ json_pure
78
+ rubyzip
79
+ spruz (0.2.13)
80
+ sqlite3 (1.3.4)
81
+ thor (0.14.6)
82
+ tzinfo (0.3.29)
83
+ xpath (0.1.4)
84
+ nokogiri (~> 1.3)
85
+
86
+ PLATFORMS
87
+ ruby
88
+
89
+ DEPENDENCIES
90
+ appraisal
91
+ capybara (>= 0.4.0)
92
+ high_voltage!
93
+ rspec-rails
94
+ sqlite3
data/README.md CHANGED
@@ -71,6 +71,15 @@ You can route the root url to a high voltage page like this:
71
71
 
72
72
  Which will render a homepage from app/views/pages/home.html.erb
73
73
 
74
+ Customize
75
+ --------
76
+
77
+ High Voltage uses a default path and folder of 'pages', i.e. 'url.com/pages/contact' , 'app/views/pages'
78
+
79
+ You can change this in an initializer:
80
+
81
+ HighVoltage.content_path = "site/"
82
+
74
83
  Override
75
84
  --------
76
85
 
@@ -78,6 +87,7 @@ Most common reasons to override?
78
87
 
79
88
  * You need authentication around the pages to make sure a user is signed in.
80
89
  * You need to render different layouts for different pages.
90
+ * You need to render a partial from the `app/views/pages` directory.
81
91
 
82
92
  Create a PagesController of your own:
83
93
 
@@ -86,7 +96,7 @@ Create a PagesController of your own:
86
96
  Override the default route:
87
97
 
88
98
  # in config/routes.rb
89
- resources :pages
99
+ match "/pages/*id" => 'pages#show', :as => :page, :format => false
90
100
 
91
101
  Then modify it to subclass from High Voltage, adding whatever you need:
92
102
 
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'bundler/setup'
2
+ require 'bundler/gem_tasks'
3
+ require 'appraisal'
4
+ require 'rspec/core/rake_task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ desc "Default: run the unit tests."
9
+ task :default => [:all]
10
+
11
+ desc 'Test the plugin under all supported Rails versions.'
12
+ task :all => ["appraisal:install"] do |t|
13
+ exec('rake appraisal spec')
14
+ end
@@ -1,9 +1,10 @@
1
1
  class HighVoltage::PagesController < ApplicationController
2
2
 
3
3
  unloadable
4
+ layout Proc.new { HighVoltage::layout }
4
5
 
5
6
  rescue_from ActionView::MissingTemplate do |exception|
6
- if exception.message =~ %r{Missing template pages/}
7
+ if exception.message =~ %r{Missing template #{content_path}}
7
8
  raise ActionController::RoutingError, "No such page: #{params[:id]}"
8
9
  else
9
10
  raise exception
@@ -17,7 +18,7 @@ class HighVoltage::PagesController < ApplicationController
17
18
  protected
18
19
 
19
20
  def current_page
20
- "pages/#{clean_path}"
21
+ "#{content_path}#{clean_path}"
21
22
  end
22
23
 
23
24
  def clean_path
@@ -25,4 +26,8 @@ class HighVoltage::PagesController < ApplicationController
25
26
  path.cleanpath.to_s[1..-1]
26
27
  end
27
28
 
29
+ def content_path
30
+ HighVoltage::content_path
31
+ end
32
+
28
33
  end
data/config/routes.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  Rails.application.routes.draw do
2
- match '/pages/*id' => 'high_voltage/pages#show', :as => :page, :format => false
2
+ match "/#{HighVoltage::content_path}*id" => 'high_voltage/pages#show', :as => :page, :format => false
3
+
3
4
  end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "3.0.10"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,124 @@
1
+ PATH
2
+ remote: /Users/jferris/Source/high_voltage
3
+ specs:
4
+ high_voltage (1.1.0)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ abstract (1.0.0)
10
+ actionmailer (3.0.10)
11
+ actionpack (= 3.0.10)
12
+ mail (~> 2.2.19)
13
+ actionpack (3.0.10)
14
+ activemodel (= 3.0.10)
15
+ activesupport (= 3.0.10)
16
+ builder (~> 2.1.2)
17
+ erubis (~> 2.6.6)
18
+ i18n (~> 0.5.0)
19
+ rack (~> 1.2.1)
20
+ rack-mount (~> 0.6.14)
21
+ rack-test (~> 0.5.7)
22
+ tzinfo (~> 0.3.23)
23
+ activemodel (3.0.10)
24
+ activesupport (= 3.0.10)
25
+ builder (~> 2.1.2)
26
+ i18n (~> 0.5.0)
27
+ activerecord (3.0.10)
28
+ activemodel (= 3.0.10)
29
+ activesupport (= 3.0.10)
30
+ arel (~> 2.0.10)
31
+ tzinfo (~> 0.3.23)
32
+ activeresource (3.0.10)
33
+ activemodel (= 3.0.10)
34
+ activesupport (= 3.0.10)
35
+ activesupport (3.0.10)
36
+ appraisal (0.3.8)
37
+ bundler
38
+ rake
39
+ arel (2.0.10)
40
+ builder (2.1.2)
41
+ capybara (1.1.0)
42
+ mime-types (>= 1.16)
43
+ nokogiri (>= 1.3.3)
44
+ rack (>= 1.0.0)
45
+ rack-test (>= 0.5.4)
46
+ selenium-webdriver (~> 2.0)
47
+ xpath (~> 0.1.4)
48
+ childprocess (0.2.2)
49
+ ffi (~> 1.0.6)
50
+ diff-lcs (1.1.3)
51
+ erubis (2.6.6)
52
+ abstract (>= 1.0.0)
53
+ ffi (1.0.9)
54
+ i18n (0.5.0)
55
+ json_pure (1.5.4)
56
+ spruz (~> 0.2.8)
57
+ mail (2.2.19)
58
+ activesupport (>= 2.3.6)
59
+ i18n (>= 0.4.0)
60
+ mime-types (~> 1.16)
61
+ treetop (~> 1.4.8)
62
+ mime-types (1.16)
63
+ nokogiri (1.5.0)
64
+ polyglot (0.3.2)
65
+ rack (1.2.3)
66
+ rack-mount (0.6.14)
67
+ rack (>= 1.0.0)
68
+ rack-test (0.5.7)
69
+ rack (>= 1.0)
70
+ rails (3.0.10)
71
+ actionmailer (= 3.0.10)
72
+ actionpack (= 3.0.10)
73
+ activerecord (= 3.0.10)
74
+ activeresource (= 3.0.10)
75
+ activesupport (= 3.0.10)
76
+ bundler (~> 1.0)
77
+ railties (= 3.0.10)
78
+ railties (3.0.10)
79
+ actionpack (= 3.0.10)
80
+ activesupport (= 3.0.10)
81
+ rake (>= 0.8.7)
82
+ rdoc (~> 3.4)
83
+ thor (~> 0.14.4)
84
+ rake (0.9.2)
85
+ rdoc (3.9.4)
86
+ rspec (2.6.0)
87
+ rspec-core (~> 2.6.0)
88
+ rspec-expectations (~> 2.6.0)
89
+ rspec-mocks (~> 2.6.0)
90
+ rspec-core (2.6.4)
91
+ rspec-expectations (2.6.0)
92
+ diff-lcs (~> 1.1.2)
93
+ rspec-mocks (2.6.0)
94
+ rspec-rails (2.6.1)
95
+ actionpack (~> 3.0)
96
+ activesupport (~> 3.0)
97
+ railties (~> 3.0)
98
+ rspec (~> 2.6.0)
99
+ rubyzip (0.9.4)
100
+ selenium-webdriver (2.5.0)
101
+ childprocess (>= 0.2.1)
102
+ ffi (>= 1.0.7)
103
+ json_pure
104
+ rubyzip
105
+ spruz (0.2.13)
106
+ sqlite3 (1.3.4)
107
+ thor (0.14.6)
108
+ treetop (1.4.10)
109
+ polyglot
110
+ polyglot (>= 0.3.1)
111
+ tzinfo (0.3.29)
112
+ xpath (0.1.4)
113
+ nokogiri (~> 1.3)
114
+
115
+ PLATFORMS
116
+ ruby
117
+
118
+ DEPENDENCIES
119
+ appraisal
120
+ capybara (>= 0.4.0)
121
+ high_voltage!
122
+ rails (= 3.0.10)
123
+ rspec-rails
124
+ sqlite3
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "3.1.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,137 @@
1
+ PATH
2
+ remote: /Users/jferris/Source/high_voltage
3
+ specs:
4
+ high_voltage (1.1.0)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ actionmailer (3.1.0)
10
+ actionpack (= 3.1.0)
11
+ mail (~> 2.3.0)
12
+ actionpack (3.1.0)
13
+ activemodel (= 3.1.0)
14
+ activesupport (= 3.1.0)
15
+ builder (~> 3.0.0)
16
+ erubis (~> 2.7.0)
17
+ i18n (~> 0.6)
18
+ rack (~> 1.3.2)
19
+ rack-cache (~> 1.0.3)
20
+ rack-mount (~> 0.8.2)
21
+ rack-test (~> 0.6.1)
22
+ sprockets (~> 2.0.0)
23
+ activemodel (3.1.0)
24
+ activesupport (= 3.1.0)
25
+ bcrypt-ruby (~> 3.0.0)
26
+ builder (~> 3.0.0)
27
+ i18n (~> 0.6)
28
+ activerecord (3.1.0)
29
+ activemodel (= 3.1.0)
30
+ activesupport (= 3.1.0)
31
+ arel (~> 2.2.1)
32
+ tzinfo (~> 0.3.29)
33
+ activeresource (3.1.0)
34
+ activemodel (= 3.1.0)
35
+ activesupport (= 3.1.0)
36
+ activesupport (3.1.0)
37
+ multi_json (~> 1.0)
38
+ appraisal (0.3.8)
39
+ bundler
40
+ rake
41
+ arel (2.2.1)
42
+ bcrypt-ruby (3.0.0)
43
+ builder (3.0.0)
44
+ capybara (1.1.0)
45
+ mime-types (>= 1.16)
46
+ nokogiri (>= 1.3.3)
47
+ rack (>= 1.0.0)
48
+ rack-test (>= 0.5.4)
49
+ selenium-webdriver (~> 2.0)
50
+ xpath (~> 0.1.4)
51
+ childprocess (0.2.2)
52
+ ffi (~> 1.0.6)
53
+ diff-lcs (1.1.3)
54
+ erubis (2.7.0)
55
+ ffi (1.0.9)
56
+ hike (1.2.1)
57
+ i18n (0.6.0)
58
+ json_pure (1.5.4)
59
+ spruz (~> 0.2.8)
60
+ mail (2.3.0)
61
+ i18n (>= 0.4.0)
62
+ mime-types (~> 1.16)
63
+ treetop (~> 1.4.8)
64
+ mime-types (1.16)
65
+ multi_json (1.0.3)
66
+ nokogiri (1.5.0)
67
+ polyglot (0.3.2)
68
+ rack (1.3.2)
69
+ rack-cache (1.0.3)
70
+ rack (>= 0.4)
71
+ rack-mount (0.8.3)
72
+ rack (>= 1.0.0)
73
+ rack-ssl (1.3.2)
74
+ rack
75
+ rack-test (0.6.1)
76
+ rack (>= 1.0)
77
+ rails (3.1.0)
78
+ actionmailer (= 3.1.0)
79
+ actionpack (= 3.1.0)
80
+ activerecord (= 3.1.0)
81
+ activeresource (= 3.1.0)
82
+ activesupport (= 3.1.0)
83
+ bundler (~> 1.0)
84
+ railties (= 3.1.0)
85
+ railties (3.1.0)
86
+ actionpack (= 3.1.0)
87
+ activesupport (= 3.1.0)
88
+ rack-ssl (~> 1.3.2)
89
+ rake (>= 0.8.7)
90
+ rdoc (~> 3.4)
91
+ thor (~> 0.14.6)
92
+ rake (0.9.2)
93
+ rdoc (3.9.4)
94
+ rspec (2.6.0)
95
+ rspec-core (~> 2.6.0)
96
+ rspec-expectations (~> 2.6.0)
97
+ rspec-mocks (~> 2.6.0)
98
+ rspec-core (2.6.4)
99
+ rspec-expectations (2.6.0)
100
+ diff-lcs (~> 1.1.2)
101
+ rspec-mocks (2.6.0)
102
+ rspec-rails (2.6.1)
103
+ actionpack (~> 3.0)
104
+ activesupport (~> 3.0)
105
+ railties (~> 3.0)
106
+ rspec (~> 2.6.0)
107
+ rubyzip (0.9.4)
108
+ selenium-webdriver (2.5.0)
109
+ childprocess (>= 0.2.1)
110
+ ffi (>= 1.0.7)
111
+ json_pure
112
+ rubyzip
113
+ sprockets (2.0.0)
114
+ hike (~> 1.2)
115
+ rack (~> 1.0)
116
+ tilt (~> 1.1, != 1.3.0)
117
+ spruz (0.2.13)
118
+ sqlite3 (1.3.4)
119
+ thor (0.14.6)
120
+ tilt (1.3.3)
121
+ treetop (1.4.10)
122
+ polyglot
123
+ polyglot (>= 0.3.1)
124
+ tzinfo (0.3.29)
125
+ xpath (0.1.4)
126
+ nokogiri (~> 1.3)
127
+
128
+ PLATFORMS
129
+ ruby
130
+
131
+ DEPENDENCIES
132
+ appraisal
133
+ capybara (>= 0.4.0)
134
+ high_voltage!
135
+ rails (= 3.1.0)
136
+ rspec-rails
137
+ sqlite3