sections_rails 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +82 -92
- data/lib/sections_rails/section.rb +11 -174
- data/lib/sections_rails/section_asset_rendering.rb +92 -0
- data/lib/sections_rails/section_partial_rendering.rb +100 -0
- data/lib/sections_rails/version.rb +1 -1
- data/lib/sections_rails/view_finder.rb +10 -8
- data/lib/sections_rails.rb +1 -1
- data/spec/controllers/image_assets_controller_spec.rb +38 -0
- data/spec/controllers/partials_controller_spec.rb +25 -11
- data/spec/controllers/script_assets_controller_spec.rb +7 -7
- data/spec/controllers/style_assets_controller_spec.rb +10 -10
- data/spec/controllers/view_types_controller_spec.rb +3 -3
- data/spec/dummy/app/controllers/image_assets_controller.rb +14 -0
- data/spec/dummy/app/controllers/partials_controller.rb +6 -0
- data/spec/dummy/app/views/image_assets/gif.html.erb +1 -0
- data/spec/dummy/app/views/image_assets/jpeg.html.erb +1 -0
- data/spec/dummy/app/views/image_assets/jpg.html.erb +1 -0
- data/spec/dummy/app/views/image_assets/png.html.erb +1 -0
- data/spec/dummy/app/views/partials/custom_partial_with_block.html.erb +3 -0
- data/spec/dummy/app/views/partials/tag_option.html.erb +1 -0
- data/spec/dummy/config/application.rb +4 -3
- data/spec/dummy/config/boot.rb +7 -3
- data/spec/dummy/config/environments/test.rb +1 -4
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +3204 -16064
- data/spec/dummy/log/production.log +61 -0
- data/spec/dummy/log/test.log +2041 -0
- data/spec/sections_rails/config_spec.rb +31 -0
- data/spec/sections_rails/partial_parser_spec.rb +12 -12
- data/spec/sections_rails/section_spec.rb +16 -54
- data/spec/sections_rails/view_finder_spec.rb +4 -4
- data/spec/spec_helper.rb +3 -0
- metadata +73 -35
- data/spec/dummy/tmp/cache/assets/CB9/B60/sprockets%2Fe7b839a0806e5c20e5018197f56cd656 +0 -0
- data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/D76/4D0/sprockets%2F8a096b6dd59bfda3e461617a95524eaf +0 -0
- data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/DE1/6A0/sprockets%2Fcae9aba95894da8a28fa8a5387dc565f +0 -0
- data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/E1D/010/sprockets%2Fdffad412d86bfdfbb1f307d711da21d3 +0 -0
@@ -19,14 +19,16 @@ module SectionsRails
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Used for :prepare_pages. Not used right now.
|
22
|
-
def self.parse_views views
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
22
|
+
# def self.parse_views views
|
23
|
+
# result = {}
|
24
|
+
# views_to_parse.each do |view_to_parse|
|
25
|
+
# puts root
|
26
|
+
|
27
|
+
# view_text = IO.read(File.join root, view_to_parse)
|
28
|
+
# result[view_to_parse] = find_sections_in_text view_text
|
29
|
+
# end
|
30
|
+
# result
|
31
|
+
# end
|
30
32
|
|
31
33
|
end
|
32
34
|
end
|
data/lib/sections_rails.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module SectionsRails
|
2
2
|
require 'action_view'
|
3
3
|
require "sections_rails/section"
|
4
|
-
require "sections_rails/railtie" if defined?(Rails)
|
4
|
+
require "sections_rails/railtie" #if defined?(Rails)
|
5
5
|
|
6
6
|
def section name, options = {}, &block
|
7
7
|
SectionsRails::Section.new(name, self, options).render &block
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ImageAssetsController do
|
4
|
+
render_views
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
RSpec::Matchers.define :have_image_tag do |tag_name|
|
8
|
+
match do |body|
|
9
|
+
body =~ Regexp.new("<img.*src=\"#{tag_name}\"")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
after :each do
|
15
|
+
expect(response).to be_success
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'supports GIF images' do
|
19
|
+
get :gif
|
20
|
+
expect(response.body).to have_image_tag '/assets/image_assets/gif/pic.gif'
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'supports JPG images' do
|
24
|
+
get :jpg
|
25
|
+
expect(response.body).to have_image_tag '/assets/image_assets/jpg/pic.jpg'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'supports JPEG images' do
|
29
|
+
get :jpeg
|
30
|
+
expect(response.body).to have_image_tag '/assets/image_assets/jpeg/pic.jpeg'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'supports PNG images' do
|
34
|
+
get :png
|
35
|
+
expect(response.body).to have_image_tag '/assets/image_assets/png/pic.png'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
@@ -5,24 +5,31 @@ describe PartialsController do
|
|
5
5
|
|
6
6
|
describe 'supported partial types' do
|
7
7
|
after :each do
|
8
|
-
response.
|
8
|
+
expect(response).to be_success
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'allows to use ERB partials' do
|
12
12
|
get :erb_section
|
13
|
-
response.body.strip.
|
13
|
+
expect(response.body.strip).to eql 'ERB partial content'
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'allows to use HAML partials' do
|
17
17
|
get :haml_section
|
18
|
-
response.body.strip.
|
18
|
+
expect(response.body.strip).to eql 'HAML partial content'
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
context 'no partial options given' do
|
23
23
|
it 'renders the default partial' do
|
24
24
|
get :no_options
|
25
|
-
response.body.strip.
|
25
|
+
expect(response.body.strip).to eql 'default partial content'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'partial with tag option given' do
|
30
|
+
it 'renders an empty tag even though the section contains a partial' do
|
31
|
+
get :tag_option
|
32
|
+
expect(response.body.strip).to eql '<div class="tag_option"></div>'
|
26
33
|
end
|
27
34
|
end
|
28
35
|
|
@@ -32,11 +39,11 @@ describe PartialsController do
|
|
32
39
|
end
|
33
40
|
|
34
41
|
it 'renders the given partial' do
|
35
|
-
response.body.
|
42
|
+
expect(response.body).to include 'custom partial content'
|
36
43
|
end
|
37
44
|
|
38
45
|
it "doesn't render the default partial" do
|
39
|
-
response.body.
|
46
|
+
expect(response.body).to_not include 'default partial content'
|
40
47
|
end
|
41
48
|
end
|
42
49
|
|
@@ -46,11 +53,11 @@ describe PartialsController do
|
|
46
53
|
end
|
47
54
|
|
48
55
|
it "doesn't render the partial tag" do
|
49
|
-
response.body.strip.
|
56
|
+
expect(response.body.strip).to_not include '<div class="disabled">'
|
50
57
|
end
|
51
58
|
|
52
59
|
it "doesn't render the partial" do
|
53
|
-
response.body.strip.
|
60
|
+
expect(response.body.strip).to_not include 'disabled partial content'
|
54
61
|
end
|
55
62
|
end
|
56
63
|
|
@@ -66,14 +73,21 @@ describe PartialsController do
|
|
66
73
|
|
67
74
|
it 'renders partials normally' do
|
68
75
|
get :production_mode
|
69
|
-
response.body.strip.
|
76
|
+
expect(response.body.strip).to include 'partial content'
|
70
77
|
end
|
71
78
|
end
|
72
79
|
|
73
80
|
describe 'partial with block' do
|
74
|
-
it '
|
81
|
+
it 'renders the block inside the partial' do
|
75
82
|
get :partial_with_block
|
76
|
-
response.body.strip.
|
83
|
+
expect(response.body.strip).to match /partial line 1.\n+block content.\n+partial line 2./
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe 'partial with custom partial name and block' do
|
88
|
+
it 'renders the block inside the custom partial' do
|
89
|
+
get :custom_partial_with_block
|
90
|
+
expect(response.body.strip).to match /custom partial line 1.\n+\s*block content\n+custom partial line 2./
|
77
91
|
end
|
78
92
|
end
|
79
93
|
end
|
@@ -12,18 +12,18 @@ describe ScriptAssetsController do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
after :each do
|
15
|
-
response.
|
15
|
+
expect(response).to be_success
|
16
16
|
end
|
17
17
|
|
18
18
|
describe 'supported script languages' do
|
19
19
|
it 'allows to use JavaScript assets' do
|
20
20
|
get :javascript
|
21
|
-
response.body.
|
21
|
+
expect(response.body).to have_script_tag '/assets/script_assets/javascript/javascript.js'
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'allows to use CoffeeScript assets' do
|
25
25
|
get :coffeescript
|
26
|
-
response.body.
|
26
|
+
expect(response.body).to have_script_tag '/assets/script_assets/coffeescript/coffeescript.js'
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -33,18 +33,18 @@ describe ScriptAssetsController do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'includes the given script file into the page' do
|
36
|
-
response.body.
|
36
|
+
expect(response.body).to have_script_tag '/assets/script_assets/custom_script/different_name.js'
|
37
37
|
end
|
38
38
|
|
39
39
|
it "doesn't include the default script file into the page" do
|
40
|
-
response.body.
|
40
|
+
expect(response.body).to_not have_script_tag '/assets/script_assets/custom_script/custom_script.js'
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
context 'setting the script configuration option to false' do
|
45
45
|
it "doesn't include any script tag into the page" do
|
46
46
|
get :no_script
|
47
|
-
response.body.
|
47
|
+
expect(response.body).to_not match /<script/
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -59,7 +59,7 @@ describe ScriptAssetsController do
|
|
59
59
|
|
60
60
|
it "doesn't render script assets" do
|
61
61
|
get :production_mode
|
62
|
-
response.
|
62
|
+
expect(response).to_not have_script_tag '/assets/script_assets/production_mode/production_mode.js'
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
@@ -12,33 +12,33 @@ describe StyleAssetsController do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
after :each do
|
15
|
-
response.
|
15
|
+
expect(response).to be_success
|
16
16
|
end
|
17
17
|
|
18
18
|
describe 'supported style languages' do
|
19
19
|
it 'CSS assets' do
|
20
20
|
get :css
|
21
|
-
response.body.
|
21
|
+
expect(response.body).to have_style_tag '/assets/style_assets/css/css.css'
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'SASS assets' do
|
25
25
|
get :sass
|
26
|
-
response.body.
|
26
|
+
expect(response.body).to have_style_tag '/assets/style_assets/sass/sass.css'
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'CSS.SASS assets' do
|
30
30
|
get :css_sass
|
31
|
-
response.body.
|
31
|
+
expect(response.body).to have_style_tag '/assets/style_assets/css_sass/css_sass.css'
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'SCSS assets' do
|
35
35
|
get :scss
|
36
|
-
response.body.
|
36
|
+
expect(response.body).to have_style_tag '/assets/style_assets/scss/scss.css'
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'CSS.SCSS assets' do
|
40
40
|
get :css_scss
|
41
|
-
response.body.
|
41
|
+
expect(response.body).to have_style_tag '/assets/style_assets/css_scss/css_scss.css'
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -48,18 +48,18 @@ describe StyleAssetsController do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it 'includes the given style file into the page' do
|
51
|
-
response.body.
|
51
|
+
expect(response.body).to have_style_tag '/assets/style_assets/custom_style/different_name.css'
|
52
52
|
end
|
53
53
|
|
54
54
|
it "doesn't include the default script file into the page" do
|
55
|
-
response.body.
|
55
|
+
expect(response.body).to_not have_style_tag '/assets/style_assets/custom_style/custom_style.css'
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
context 'setting the script configuration option to false' do
|
60
60
|
it "doesn't include any script tag into the page" do
|
61
61
|
get :no_style
|
62
|
-
response.body.
|
62
|
+
expect(response.body).to_not have_style_tag '/assets/style_assets/no_style/no_style.css'
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -75,7 +75,7 @@ describe StyleAssetsController do
|
|
75
75
|
|
76
76
|
it "doesn't render style assets" do
|
77
77
|
get :production_mode
|
78
|
-
response.body.
|
78
|
+
expect(response.body).to_not have_style_tag '/assets/style_assets/production_mode/production_mode.css'
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
@@ -5,17 +5,17 @@ describe ViewTypesController do
|
|
5
5
|
|
6
6
|
describe 'supported view types' do
|
7
7
|
after :each do
|
8
|
-
response.
|
8
|
+
expect(response).to be_success
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'allows to use the section helper in ERB views' do
|
12
12
|
get :erb
|
13
|
-
response.body.strip.
|
13
|
+
expect(response.body.strip).to eql 'Foo partial content'
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'allows to use the section helper in HAML views' do
|
17
17
|
get :haml
|
18
|
-
response.body.strip.
|
18
|
+
expect(response.body.strip).to eql 'Foo partial content'
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag 'image_assets/gif/pic.gif' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag 'image_assets/jpeg/pic.jpeg' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag 'image_assets/jpg/pic.jpg' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag 'image_assets/png/pic.png' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= section 'partials/tag_option', partial: :tag %>
|
@@ -3,10 +3,11 @@ require File.expand_path('../boot', __FILE__)
|
|
3
3
|
require "action_controller/railtie"
|
4
4
|
require "action_view/railtie"
|
5
5
|
require "sprockets/railtie"
|
6
|
+
# require 'rails/all'
|
7
|
+
require 'haml'
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
end
|
9
|
+
Bundler.require(*Rails.groups(:assets => %w(development test)))
|
10
|
+
# require 'sections_rails'
|
10
11
|
|
11
12
|
module Dummy
|
12
13
|
class Application < Rails::Application
|
data/spec/dummy/config/boot.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
gemfile = File.expand_path('../../../../Gemfile', __FILE__)
|
2
3
|
|
3
|
-
|
4
|
-
ENV['BUNDLE_GEMFILE']
|
4
|
+
if File.exist?(gemfile)
|
5
|
+
ENV['BUNDLE_GEMFILE'] = gemfile
|
6
|
+
require 'bundler'
|
7
|
+
Bundler.setup
|
8
|
+
end
|
5
9
|
|
6
|
-
|
10
|
+
$:.unshift File.expand_path('../../../../lib', __FILE__)
|
7
11
|
|
@@ -27,10 +27,7 @@ Dummy::Application.configure do
|
|
27
27
|
# Tell Action Mailer not to deliver emails to the real world.
|
28
28
|
# The :test delivery method accumulates sent emails in the
|
29
29
|
# ActionMailer::Base.deliveries array.
|
30
|
-
config.action_mailer.delivery_method = :test
|
31
|
-
|
32
|
-
# Raise exception on mass assignment protection for Active Record models
|
33
|
-
config.active_record.mass_assignment_sanitizer = :strict
|
30
|
+
#config.action_mailer.delivery_method = :test
|
34
31
|
|
35
32
|
# Print deprecation notices to the stderr
|
36
33
|
config.active_support.deprecation = :stderr
|
File without changes
|
File without changes
|