sections_rails 0.7.2 → 0.8.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 (54) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +4 -6
  3. data/lib/sections_rails/section_asset_rendering.rb +50 -29
  4. data/lib/sections_rails/version.rb +1 -1
  5. data/spec/controllers/image_assets_controller_spec.rb +2 -2
  6. data/spec/controllers/script_assets_controller_spec.rb +1 -1
  7. data/spec/controllers/style_assets_controller_spec.rb +1 -1
  8. data/spec/dummy/config/application.rb +15 -5
  9. data/spec/dummy/config/environments/development.rb +9 -12
  10. data/spec/dummy/config/environments/test.rb +15 -12
  11. data/spec/dummy/config/initializers/secret_token.rb +1 -0
  12. data/spec/dummy/config/routes.rb +1 -1
  13. data/spec/dummy/log/development.log +2517 -0
  14. data/spec/dummy/tmp/cache/assets/development/sass/6895cbbabdbdd68bfd5eaeb8a7205320b5ae8570/sass.sassc +0 -0
  15. data/spec/dummy/tmp/cache/assets/development/sass/8498f83ad93e5e5008158dd5f1a619c70444d1b9/css_scss.css.scssc +0 -0
  16. data/spec/dummy/tmp/cache/assets/development/sass/af6c5e5e0472cd741dba44cad548e8bee004b57f/css_sass.css.sassc +0 -0
  17. data/spec/dummy/tmp/cache/assets/development/sass/c4f2628633a30efcaac4adae6d64dc98a3dc5098/scss.scssc +0 -0
  18. data/spec/dummy/tmp/cache/assets/development/sprockets/07debd2f5bdd0945f151e2b19446f044 +0 -0
  19. data/spec/dummy/tmp/cache/assets/development/sprockets/08f27e536dfd0bf16e287507b2acf9cd +0 -0
  20. data/spec/dummy/tmp/cache/assets/development/sprockets/0fca8ebe3afdfe78547af6286f823282 +0 -0
  21. data/spec/dummy/tmp/cache/assets/development/sprockets/1b3072864335229a30962921e232e038 +0 -0
  22. data/spec/dummy/tmp/cache/assets/development/sprockets/1e3b95f4fb7349356a18d5d6c25a03c5 +0 -0
  23. data/spec/dummy/tmp/cache/assets/development/sprockets/1ef0ad5f3bf9347ff721cc9adb7ac475 +0 -0
  24. data/spec/dummy/tmp/cache/assets/development/sprockets/22ca9b4c7a72cecb6e5bd86aeb2cbe1a +0 -0
  25. data/spec/dummy/tmp/cache/assets/development/sprockets/23a710a5152e77b9f6093d0ff6132cbb +0 -0
  26. data/spec/dummy/tmp/cache/assets/development/sprockets/2760c50c86bfb006436f3b08f7f86d50 +0 -0
  27. data/spec/dummy/tmp/cache/assets/development/sprockets/27cd0623d0c7bf548c06891f9ff3a7fe +0 -0
  28. data/spec/dummy/tmp/cache/assets/development/sprockets/2883d6642cddc16b7cbec8a10d604e1f +0 -0
  29. data/spec/dummy/tmp/cache/assets/development/sprockets/43f23e226a6cf9111462a1de5a4141c9 +0 -0
  30. data/spec/dummy/tmp/cache/assets/development/sprockets/4469f565cbeb63b8a9dd57c772a0063f +0 -0
  31. data/spec/dummy/tmp/cache/assets/development/sprockets/4bfa702f177bb40d4add4fa2cdc56290 +0 -0
  32. data/spec/dummy/tmp/cache/assets/development/sprockets/620334e6045e81791d00cfc3d5880e99 +0 -0
  33. data/spec/dummy/tmp/cache/assets/development/sprockets/778cbfb3c3494e0a1bff25acec1acb41 +0 -0
  34. data/spec/dummy/tmp/cache/assets/development/sprockets/88172c7017f9d54036e04229e5aeb7a9 +0 -0
  35. data/spec/dummy/tmp/cache/assets/development/sprockets/a1675ac0cfcd39baa9de6cd3800ed7d8 +0 -0
  36. data/spec/dummy/tmp/cache/assets/development/sprockets/a5d83488b94f2eb72952aead38dff3e3 +0 -0
  37. data/spec/dummy/tmp/cache/assets/development/sprockets/a6fce1b02a415f12102f90ede73a4466 +0 -0
  38. data/spec/dummy/tmp/cache/assets/development/sprockets/ab9a16c02e5840aa2caa410053c6d992 +0 -0
  39. data/spec/dummy/tmp/cache/assets/development/sprockets/ad63aa5b66774feeab4dc6bcf5cd62ba +0 -0
  40. data/spec/dummy/tmp/cache/assets/development/sprockets/b4e4bd3378cc31d280c2f1e817d7e563 +0 -0
  41. data/spec/dummy/tmp/cache/assets/development/sprockets/b55f94acb73aef21cd0314d38e7154d1 +0 -0
  42. data/spec/dummy/tmp/cache/assets/development/sprockets/bb6a12b80c6bb08c7943f43676e3c85b +0 -0
  43. data/spec/dummy/tmp/cache/assets/development/sprockets/c427bfd8150de82240a0e21a09f2555b +0 -0
  44. data/spec/dummy/tmp/cache/assets/development/sprockets/c6e5bc7bd239a1911ec2e68129e3de64 +0 -0
  45. data/spec/dummy/tmp/cache/assets/development/sprockets/dca0e46db52c9d8f506520eb6da852d5 +0 -0
  46. data/spec/dummy/tmp/cache/assets/development/sprockets/e96fdb62e07b19eed5b0da3f39778ad8 +0 -0
  47. data/spec/dummy/tmp/cache/assets/development/sprockets/ea32dd93eace3bc52cef33158a05dff0 +0 -0
  48. data/spec/dummy/tmp/cache/assets/development/sprockets/ee731240c77f9d385c44692245a14659 +0 -0
  49. data/spec/dummy/tmp/cache/assets/development/sprockets/f05f533e9d84fde309ea83909d9ce528 +0 -0
  50. data/spec/dummy/tmp/cache/assets/development/sprockets/f4e42345683e627f5c3ddbed7b0f3003 +0 -0
  51. data/spec/dummy/tmp/cache/assets/development/sprockets/f5d263c951494ab0fb39fe65f211ea9d +0 -0
  52. data/spec/dummy/tmp/cache/assets/development/sprockets/fb9a65051eb9d735f3634545d153a9eb +0 -0
  53. data/spec/spec_helper.rb +4 -2
  54. metadata +141 -33
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: eeeef33448cd6b0e68ef9770dd85824fe160db3a
4
+ data.tar.gz: ee80965c2a0212282b1247cf8c4138b7c39690bb
5
+ SHA512:
6
+ metadata.gz: 5251a0e3f15cc42a908f08b2be7f7747fb97f02dd290eb6331e9d67861f49cb1a69bfcc45778e936e0c30e4321db70b5a96c8308ebac202c92af15caeeca16b7
7
+ data.tar.gz: ec87d416e8e1e0c2d5296df248a1ccd83eae55b92ac1e93d2383bce2acc8869ad94be5909c6cbbb3fb1fa1cc1d2e9e69614ea38dc8ba612f929ca51698bf6ea3
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Sections for Rails [![Build Status](https://travis-ci.org/kevgo/sections_rails.png?branch=master)](https://travis-ci.org/kevgo/sections_rails) [![Code Climate](https://codeclimate.com/github/kevgo/sections_rails.png)](https://codeclimate.com/github/kevgo/sections_rails) [![Coverage Status](https://coveralls.io/repos/kevgo/sections_rails/badge.png?branch=master)](https://coveralls.io/r/kevgo/sections_rails)
1
+ # Sections for Rails [![Build Status](https://travis-ci.org/kevgo/sections_rails.png?branch=master)](https://travis-ci.org/kevgo/sections_rails) [![Code Climate](https://codeclimate.com/github/kevgo/sections_rails.png)](https://codeclimate.com/github/kevgo/sections_rails) [![Coverage Status](https://coveralls.io/repos/kevgo/sections_rails/badge.png?branch=master)](https://coveralls.io/r/kevgo/sections_rails) [![Dependency Status](https://gemnasium.com/kevgo/sections_rails.png)](https://gemnasium.com/kevgo/sections_rails)
2
2
 
3
3
  _A component-oriented infrastructure for the view layer of Ruby on Rails applications._
4
4
 
@@ -60,11 +60,11 @@ The generator
60
60
 
61
61
  * creates a new folder __/app/sections__, in which you put the source code for the different sections.
62
62
 
63
- * adds the folder _/app/sections_ to the asset pipeline by inserting this line into your _application.rb_ file:
63
+ * adds the folder /app/sections to the asset pipeline by inserting this line into your _application.rb_ file:
64
64
 
65
65
  config.assets.paths << 'app/sections'
66
66
 
67
- * optionally creates a demo section called _hello_world_ that you can try out as described below.
67
+ * optionally creates a demo section called __hello_world__ that you can try out as described below.
68
68
 
69
69
 
70
70
  The current implementation requires two empty asset container files: __application_sections.js__ and __application_sections.css__.
@@ -158,9 +158,7 @@ To run your section tests using [Konacha](https://github.com/jfirebaugh/konacha)
158
158
  Feel free to send unit-tested pull requests! The unit tests of this project are run using `rake`.
159
159
 
160
160
 
161
- ### Missing features
162
-
163
- _Sections_rails_ is far from complete. Some missing things are:
161
+ ### Roadmap
164
162
 
165
163
  * Support for multiple application assets, for example page-specific compiled asset files instead of one global one.
166
164
  * Support for serverside controller logic for sections, for example by integrating with https://github.com/apotonick/cells.
@@ -51,42 +51,63 @@ module SectionsRails
51
51
  end
52
52
 
53
53
 
54
- # Renders the assets of this section into the given result.
55
- def render_assets result
56
- render_js_assets result
57
- render_css_assets result
54
+ # Renders the assets of this section into the given out.
55
+ def render_assets out
56
+ render_js_assets out
57
+ render_css_assets out
58
58
  end
59
59
 
60
60
  # Renders the CSS for this section.
61
- def render_css_assets result
62
- if @options.has_key? :css
63
- if @options[:css]
64
- # Custom filename for :css given --> include the given CSS file.
65
- result << @view.stylesheet_link_tag(File.join(folder_includepath, @options[:css]))
66
- else
67
- # ":css => false" given --> don't include any CSS.
68
- end
69
- else
70
- # No option for :css given --> include the default stylesheet.
71
- css_includepath = find_css_includepath
72
- result << @view.stylesheet_link_tag(css_includepath) if css_includepath
73
- end
61
+ def render_css_assets out
62
+
63
+ # Handle default case if no options given.
64
+ return render_default_css_asset(out) unless @options.has_key? :css
65
+
66
+ # Do nothing if 'css: nil' given.
67
+ return unless @options[:css]
68
+
69
+ render_custom_css_asset @options[:css], out
74
70
  end
75
71
 
72
+
73
+ # Renders the CSS asset with the given filename.
74
+ def render_custom_css_asset filename, out
75
+ out << @view.stylesheet_link_tag(File.join(folder_includepath, @options[:css]))
76
+ end
77
+
78
+
79
+ # Renders the default CSS asset.
80
+ def render_default_css_asset out
81
+ css_includepath = find_css_includepath
82
+ out << @view.stylesheet_link_tag(css_includepath) if css_includepath
83
+ end
84
+
85
+
76
86
  # Renders the JS for this section.
77
- def render_js_assets result
78
- if @options.has_key? :js
79
- if @options[:js]
80
- result << @view.javascript_include_tag(File.join(folder_includepath, @options[:js]))
81
- else
82
- # :js => (false|nil) given --> don't include any JS.
83
- end
84
- else
85
- # No :js configuration option given --> include the default script.
86
- js_includepath = find_js_includepath
87
- result << @view.javascript_include_tag(js_includepath) if js_includepath
88
- end
87
+ def render_js_assets out
88
+
89
+ # Render default asset if no option given.
90
+ return render_default_js_asset(out) unless @options.has_key? :js
91
+
92
+ # Do nothing if 'js: nil' given.
93
+ return unless @options[:js]
94
+
95
+ render_custom_js_asset @options[:js], out
89
96
  end
97
+
98
+
99
+ # Renders the default JS asset.
100
+ def render_default_js_asset out
101
+ js_includepath = find_js_includepath
102
+ out << @view.javascript_include_tag(js_includepath) if js_includepath
103
+ end
104
+
105
+
106
+ # Renders the JS asset with the given filename.
107
+ def render_custom_js_asset filename, out
108
+ out << @view.javascript_include_tag(File.join(folder_includepath, filename))
109
+ end
110
+
90
111
  end
91
112
  end
92
113
  end
@@ -1,3 +1,3 @@
1
1
  module SectionsRails
2
- VERSION = "0.7.2"
2
+ VERSION = "0.8.0"
3
3
  end
@@ -4,9 +4,9 @@ describe ImageAssetsController do
4
4
  render_views
5
5
 
6
6
  before :each do
7
- RSpec::Matchers.define :have_image_tag do |tag_name|
7
+ RSpec::Matchers.define :have_image_tag do |image_path|
8
8
  match do |body|
9
- body =~ Regexp.new("<img.*src=\"#{tag_name}\"")
9
+ body =~ Regexp.new("<img.*src=\"#{image_path}\"")
10
10
  end
11
11
  end
12
12
  end
@@ -6,7 +6,7 @@ describe ScriptAssetsController do
6
6
  before :each do
7
7
  RSpec::Matchers.define :have_script_tag do |tag_name|
8
8
  match do |body|
9
- body =~ Regexp.new("<script.*src=\"#{tag_name}\".*<\/script>")
9
+ body =~ Regexp.new("<script src=.#{tag_name}")
10
10
  end
11
11
  end
12
12
  end
@@ -6,7 +6,7 @@ describe StyleAssetsController do
6
6
  before :each do
7
7
  RSpec::Matchers.define :have_style_tag do |tag_name|
8
8
  match do |body|
9
- body =~ Regexp.new("<link.*href=\"#{tag_name}\".*>")
9
+ body =~ Regexp.new("<link href=\"#{tag_name}")
10
10
  end
11
11
  end
12
12
  end
@@ -6,14 +6,24 @@ require "sprockets/railtie"
6
6
  # require 'rails/all'
7
7
  require 'haml'
8
8
 
9
- Bundler.require(*Rails.groups(:assets => %w(development test)))
10
- # require 'sections_rails'
9
+ Bundler.require(:default, Rails.env)
10
+ require 'sections_rails'
11
11
 
12
12
  module Dummy
13
13
  class Application < Rails::Application
14
- config.encoding = "utf-8"
15
- config.assets.enabled = true
16
- config.assets.version = '1.0'
14
+ # Settings in config/environments/* take precedence over those specified here.
15
+ # Application configuration should go into files in config/initializers
16
+ # -- all .rb files in that directory are automatically loaded.
17
+
18
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
19
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
20
+ # config.time_zone = 'Central Time (US & Canada)'
21
+
22
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
23
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
24
+ # config.i18n.default_locale = :de
25
+
26
+ config.assets.paths += %w(../../app/sections)
17
27
  end
18
28
  end
19
29
 
@@ -1,27 +1,24 @@
1
1
  Dummy::Application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
3
 
4
4
  # In the development environment your application's code is reloaded on
5
5
  # every request. This slows down response time but is perfect for development
6
6
  # since you don't have to restart the web server when you make code changes.
7
7
  config.cache_classes = false
8
8
 
9
- # Log error messages when you accidentally call methods on nil.
10
- config.whiny_nils = true
9
+ # Do not eager load code on boot.
10
+ config.eager_load = false
11
11
 
12
- # Show full error reports and disable caching
12
+ # Show full error reports and disable caching.
13
13
  config.consider_all_requests_local = true
14
14
  config.action_controller.perform_caching = false
15
15
 
16
- # Print deprecation notices to the Rails logger
16
+ # Print deprecation notices to the Rails logger.
17
17
  config.active_support.deprecation = :log
18
18
 
19
- # Only use best-standards-support built into browsers
20
- config.action_dispatch.best_standards_support = :builtin
21
-
22
- # Do not compress assets
23
- config.assets.compress = false
24
-
25
- # Expands the lines which load the assets
19
+ # Debug mode disables concatenation and preprocessing of assets.
20
+ # This option may cause significant delays in view rendering with a large
21
+ # number of complex assets.
26
22
  config.assets.debug = true
27
23
  end
24
+
@@ -1,5 +1,5 @@
1
1
  Dummy::Application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
3
 
4
4
  # The test environment is used exclusively to run your application's
5
5
  # test suite. You never need to work with it otherwise. Remember that
@@ -7,28 +7,31 @@ Dummy::Application.configure do
7
7
  # and recreated between test runs. Don't rely on the data there!
8
8
  config.cache_classes = true
9
9
 
10
- # Configure static asset server for tests with Cache-Control for performance
11
- config.serve_static_assets = true
12
- config.static_cache_control = "public, max-age=3600"
10
+ # Do not eager load code on boot. This avoids loading your whole application
11
+ # just for the purpose of running a single test. If you are using a tool that
12
+ # preloads Rails for running tests, you may have to set it to true.
13
+ config.eager_load = false
13
14
 
14
- # Log error messages when you accidentally call methods on nil
15
- config.whiny_nils = true
15
+ # Configure static asset server for tests with Cache-Control for performance.
16
+ config.serve_static_assets = true
17
+ config.static_cache_control = "public, max-age=3600"
16
18
 
17
- # Show full error reports and disable caching
19
+ # Show full error reports and disable caching.
18
20
  config.consider_all_requests_local = true
19
21
  config.action_controller.perform_caching = false
20
22
 
21
- # Raise exceptions instead of rendering exception templates
23
+ # Raise exceptions instead of rendering exception templates.
22
24
  config.action_dispatch.show_exceptions = false
23
25
 
24
- # Disable request forgery protection in test environment
25
- config.action_controller.allow_forgery_protection = false
26
+ # Disable request forgery protection in test environment.
27
+ config.action_controller.allow_forgery_protection = false
26
28
 
27
29
  # Tell Action Mailer not to deliver emails to the real world.
28
30
  # The :test delivery method accumulates sent emails in the
29
31
  # ActionMailer::Base.deliveries array.
30
- #config.action_mailer.delivery_method = :test
32
+ # config.action_mailer.delivery_method = :test
31
33
 
32
- # Print deprecation notices to the stderr
34
+ # Print deprecation notices to the stderr.
33
35
  config.active_support.deprecation = :stderr
34
36
  end
37
+
@@ -0,0 +1 @@
1
+ Dummy::Application.config.secret_key_base = 'eea8321616a4ab02c44c134c98059ad070bee6c215649081958cf30b9b96e5e740b0ac696426d61cdd68a31e00909feac9369a627c1f618bb7274de785ca58a0'
@@ -1,4 +1,4 @@
1
1
  Dummy::Application.routes.draw do
2
- match ':controller(/:action)'
2
+ get ':controller(/:action)'
3
3
  end
4
4