sections_rails 0.7.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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