flatrack 1.1.1 → 1.2.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -2
  3. data/README.md +14 -2
  4. data/{templates → error_pages}/404.html +0 -0
  5. data/{templates → error_pages}/500.html +0 -0
  6. data/flatrack.gemspec +4 -0
  7. data/{templates → lib/flatrack/cli/templates}/.gitignore +0 -0
  8. data/{templates → lib/flatrack/cli/templates}/.keep +0 -0
  9. data/{templates → lib/flatrack/cli/templates}/Gemfile.erb +0 -0
  10. data/{templates → lib/flatrack/cli/templates}/Rakefile +0 -0
  11. data/{templates → lib/flatrack/cli/templates}/boot.rb +0 -0
  12. data/{templates → lib/flatrack/cli/templates}/config.ru +0 -0
  13. data/{templates → lib/flatrack/cli/templates}/javascript.js.coffee +0 -0
  14. data/{templates → lib/flatrack/cli/templates}/layout.html.erb +0 -0
  15. data/{logo.png → lib/flatrack/cli/templates/logo.png} +0 -0
  16. data/{templates → lib/flatrack/cli/templates}/page.html.erb +0 -0
  17. data/{templates → lib/flatrack/cli/templates}/stylesheet.css.scss +0 -0
  18. data/lib/flatrack/cli.rb +10 -1
  19. data/lib/flatrack/request.rb +2 -2
  20. data/lib/flatrack/response.rb +6 -8
  21. data/lib/flatrack/site.rb +0 -2
  22. data/lib/flatrack/template/erubis/handler.rb +76 -0
  23. data/lib/flatrack/template/erubis.rb +20 -0
  24. data/lib/flatrack/template/html.rb +11 -0
  25. data/lib/flatrack/template/rb.rb +13 -0
  26. data/lib/flatrack/template.rb +35 -0
  27. data/lib/flatrack/version.rb +1 -1
  28. data/lib/flatrack/view/capture_helper.rb +30 -0
  29. data/lib/flatrack/view/link_helper.rb +28 -0
  30. data/lib/flatrack/view/output_buffer.rb +24 -0
  31. data/lib/flatrack/view/render_helper.rb +9 -0
  32. data/lib/flatrack/view/request_helper.rb +13 -0
  33. data/lib/flatrack/view/tag_helper.rb +102 -0
  34. data/lib/flatrack/view.rb +30 -0
  35. data/lib/flatrack.rb +3 -9
  36. data/lib/rake/asset_tasks.rb +31 -23
  37. data/spec/fixtures/assets/sample.css.scss +2 -0
  38. data/spec/fixtures/assets/{application.js.coffee → sample.js.coffee} +1 -1
  39. data/spec/fixtures/templates/html_tag.html +5 -0
  40. data/spec/fixtures/templates/html_tag.html.erb +9 -0
  41. data/spec/fixtures/templates/html_tag.html.rb +5 -0
  42. data/spec/fixtures/templates/image_tag.html +2 -0
  43. data/spec/fixtures/templates/image_tag.html.erb +2 -0
  44. data/spec/fixtures/templates/image_tag.html.rb +2 -0
  45. data/spec/fixtures/templates/javascript_tag.html +2 -0
  46. data/spec/fixtures/templates/javascript_tag.html.erb +2 -0
  47. data/spec/fixtures/templates/javascript_tag.html.rb +2 -0
  48. data/spec/fixtures/templates/link_to.html +9 -0
  49. data/spec/fixtures/templates/link_to.html.erb +11 -0
  50. data/spec/fixtures/templates/link_to.html.rb +7 -0
  51. data/spec/fixtures/templates/stylesheet_tag.html +2 -0
  52. data/spec/fixtures/templates/stylesheet_tag.html.erb +2 -0
  53. data/spec/fixtures/templates/stylesheet_tag.html.rb +2 -0
  54. data/spec/lib/flatrack/asset_extensions_spec.rb +2 -2
  55. data/spec/lib/flatrack/cli_spec.rb +8 -6
  56. data/spec/lib/flatrack/request_spec.rb +4 -4
  57. data/spec/lib/flatrack/response_spec.rb +4 -4
  58. data/spec/lib/flatrack/site_spec.rb +10 -5
  59. data/spec/lib/flatrack/view/link_helper_spec.rb +25 -0
  60. data/spec/lib/flatrack/view/tag_helper_spec.rb +81 -0
  61. data/spec/lib/flatrack/view_spec.rb +52 -0
  62. data/spec/lib/flatrack_spec.rb +1 -1
  63. data/spec/lib/rake/asset_tasks_spec.rb +8 -8
  64. data/spec/spec_helper.rb +3 -2
  65. data/spec/support/fixture_helper.rb +29 -0
  66. data/spec/support/site_helper.rb +43 -39
  67. metadata +126 -33
  68. data/lib/flatrack/renderer/base.rb +0 -19
  69. data/lib/flatrack/renderer.rb +0 -30
  70. data/lib/flatrack/response/view_context.rb +0 -67
  71. data/renderers/erb.rb +0 -9
  72. data/renderers/html.rb +0 -9
  73. data/renderers/rb.rb +0 -19
  74. data/spec/lib/flatrack/renderer/base_spec.rb +0 -4
  75. data/spec/lib/flatrack/response/view_context_spec.rb +0 -93
  76. data/spec/renderers/erb_spec.rb +0 -21
  77. data/spec/renderers/html_spec.rb +0 -21
  78. data/spec/renderers/rb_spec.rb +0 -21
@@ -1,52 +1,56 @@
1
- module SiteHelper
2
- extend FileUtils
3
- include FileUtils
4
-
5
- DIR = File.join Flatrack.gem_root, '../tmp/flatrack-sites'
6
- mkdir_p DIR
1
+ class Flatrack
2
+ module SiteHelper
3
+ extend FileUtils
4
+ include FileUtils
5
+
6
+ DIR = File.join Flatrack.gem_root, '../tmp/flatrack-sites'
7
+ mkdir_p DIR
8
+
9
+ def site(clean: true, &block)
10
+ sha = SecureRandom.hex
11
+ in_temp_sites do
12
+ create_site(sha, &block)
13
+ end
14
+ clean ? cleanup(sha) : sha
15
+ rescue => error
16
+ cleanup sha
17
+ raise error
18
+ end
7
19
 
8
- def site(clean: true)
9
- sha = SecureRandom.hex
10
- in_temp_sites do
11
- Flatrack::CLI.start(
12
- ['new', sha, '--verbose', 'false', '--bundle', 'false']
13
- )
14
- Dir.chdir(sha) do
20
+ def in_temp_sites
21
+ Dir.chdir DIR do
15
22
  yield
16
23
  end
17
24
  end
18
- clean ? cleanup(sha) : sha
19
- rescue => error
20
- cleanup sha
21
- raise error
22
- end
23
25
 
24
- def in_temp_sites
25
- Dir.chdir DIR do
26
- yield
26
+ def write(type, filename, contents)
27
+ Dir.chdir(type.to_s.pluralize) do
28
+ File.open(filename, 'w') do |file|
29
+ file.write(contents)
30
+ end
31
+ end
27
32
  end
28
- end
29
33
 
30
- def write(type, filename, contents)
31
- Dir.chdir(type.to_s.pluralize) do
32
- File.open(filename, 'w') do |file|
33
- file.write(contents)
34
- end
34
+ def get_page_response(page)
35
+ env = Rack::MockRequest.env_for "http://example.org/#{page}.html"
36
+ Flatrack::Site.call(env)
35
37
  end
36
- end
37
38
 
38
- def get_page_response(page)
39
- env = Rack::MockRequest.env_for "http://example.org/#{page}.html"
40
- Flatrack::Site.call(env)
41
- end
39
+ private
42
40
 
43
- private
41
+ def create_site(sha)
42
+ Flatrack::CLI.start(
43
+ ['new', sha, '--verbose', 'false', '--bundle', 'false']
44
+ )
45
+ Dir.chdir(sha) do
46
+ yield
47
+ end
48
+ end
44
49
 
45
- def cleanup(sha)
46
- Dir.chdir(DIR) do
47
- rmtree sha
50
+ def cleanup(sha)
51
+ Dir.chdir(DIR) do
52
+ rmtree sha
53
+ end
48
54
  end
49
55
  end
50
-
51
-
52
- end
56
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flatrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Waldrip
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-06 00:00:00.000000000 Z
11
+ date: 2014-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: erubis
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.7'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: tilt
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.1'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: activesupport
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -232,6 +260,34 @@ dependencies:
232
260
  - - "~>"
233
261
  - !ruby/object:Gem::Version
234
262
  version: '0.8'
263
+ - !ruby/object:Gem::Dependency
264
+ name: rubocop
265
+ requirement: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '0.18'
270
+ type: :development
271
+ prerelease: false
272
+ version_requirements: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: '0.18'
277
+ - !ruby/object:Gem::Dependency
278
+ name: inch
279
+ requirement: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: '0.3'
284
+ type: :development
285
+ prerelease: false
286
+ version_requirements: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - "~>"
289
+ - !ruby/object:Gem::Version
290
+ version: '0.3'
235
291
  description: |+
236
292
  A rack based static site builder with templates, layouts and project structure
237
293
  based routing.
@@ -255,50 +311,71 @@ files:
255
311
  - README.md
256
312
  - Rakefile
257
313
  - bin/flatrack
314
+ - error_pages/404.html
315
+ - error_pages/500.html
258
316
  - flatrack.gemspec
259
317
  - lib/flatrack.rb
260
318
  - lib/flatrack/asset_extensions.rb
261
319
  - lib/flatrack/cli.rb
262
- - lib/flatrack/renderer.rb
263
- - lib/flatrack/renderer/base.rb
320
+ - lib/flatrack/cli/templates/.gitignore
321
+ - lib/flatrack/cli/templates/.keep
322
+ - lib/flatrack/cli/templates/Gemfile.erb
323
+ - lib/flatrack/cli/templates/Rakefile
324
+ - lib/flatrack/cli/templates/boot.rb
325
+ - lib/flatrack/cli/templates/config.ru
326
+ - lib/flatrack/cli/templates/javascript.js.coffee
327
+ - lib/flatrack/cli/templates/layout.html.erb
328
+ - lib/flatrack/cli/templates/logo.png
329
+ - lib/flatrack/cli/templates/page.html.erb
330
+ - lib/flatrack/cli/templates/stylesheet.css.scss
264
331
  - lib/flatrack/request.rb
265
332
  - lib/flatrack/response.rb
266
- - lib/flatrack/response/view_context.rb
267
333
  - lib/flatrack/site.rb
334
+ - lib/flatrack/template.rb
335
+ - lib/flatrack/template/erubis.rb
336
+ - lib/flatrack/template/erubis/handler.rb
337
+ - lib/flatrack/template/html.rb
338
+ - lib/flatrack/template/rb.rb
268
339
  - lib/flatrack/version.rb
340
+ - lib/flatrack/view.rb
341
+ - lib/flatrack/view/capture_helper.rb
342
+ - lib/flatrack/view/link_helper.rb
343
+ - lib/flatrack/view/output_buffer.rb
344
+ - lib/flatrack/view/render_helper.rb
345
+ - lib/flatrack/view/request_helper.rb
346
+ - lib/flatrack/view/tag_helper.rb
269
347
  - lib/rake/asset_tasks.rb
270
- - logo.png
271
348
  - public/assets/manifest-6d7e78baa6d2c0670a82be957315fcbc.json
272
- - renderers/erb.rb
273
- - renderers/html.rb
274
- - renderers/rb.rb
275
- - spec/fixtures/assets/application.js.coffee
349
+ - spec/fixtures/assets/sample.css.scss
350
+ - spec/fixtures/assets/sample.js.coffee
351
+ - spec/fixtures/templates/html_tag.html
352
+ - spec/fixtures/templates/html_tag.html.erb
353
+ - spec/fixtures/templates/html_tag.html.rb
354
+ - spec/fixtures/templates/image_tag.html
355
+ - spec/fixtures/templates/image_tag.html.erb
356
+ - spec/fixtures/templates/image_tag.html.rb
357
+ - spec/fixtures/templates/javascript_tag.html
358
+ - spec/fixtures/templates/javascript_tag.html.erb
359
+ - spec/fixtures/templates/javascript_tag.html.rb
360
+ - spec/fixtures/templates/link_to.html
361
+ - spec/fixtures/templates/link_to.html.erb
362
+ - spec/fixtures/templates/link_to.html.rb
363
+ - spec/fixtures/templates/stylesheet_tag.html
364
+ - spec/fixtures/templates/stylesheet_tag.html.erb
365
+ - spec/fixtures/templates/stylesheet_tag.html.rb
276
366
  - spec/lib/flatrack/asset_extensions_spec.rb
277
367
  - spec/lib/flatrack/cli_spec.rb
278
- - spec/lib/flatrack/renderer/base_spec.rb
279
368
  - spec/lib/flatrack/request_spec.rb
280
- - spec/lib/flatrack/response/view_context_spec.rb
281
369
  - spec/lib/flatrack/response_spec.rb
282
370
  - spec/lib/flatrack/site_spec.rb
371
+ - spec/lib/flatrack/view/link_helper_spec.rb
372
+ - spec/lib/flatrack/view/tag_helper_spec.rb
373
+ - spec/lib/flatrack/view_spec.rb
283
374
  - spec/lib/flatrack_spec.rb
284
375
  - spec/lib/rake/asset_tasks_spec.rb
285
- - spec/renderers/erb_spec.rb
286
- - spec/renderers/html_spec.rb
287
- - spec/renderers/rb_spec.rb
288
376
  - spec/spec_helper.rb
377
+ - spec/support/fixture_helper.rb
289
378
  - spec/support/site_helper.rb
290
- - templates/.gitignore
291
- - templates/.keep
292
- - templates/404.html
293
- - templates/500.html
294
- - templates/Gemfile.erb
295
- - templates/Rakefile
296
- - templates/boot.rb
297
- - templates/config.ru
298
- - templates/javascript.js.coffee
299
- - templates/layout.html.erb
300
- - templates/page.html.erb
301
- - templates/stylesheet.css.scss
302
379
  homepage: https://github.com/jwaldrip/flatrack
303
380
  licenses:
304
381
  - MIT
@@ -324,18 +401,34 @@ signing_key:
324
401
  specification_version: 4
325
402
  summary: Deliver static files with style.
326
403
  test_files:
327
- - spec/fixtures/assets/application.js.coffee
404
+ - spec/fixtures/assets/sample.css.scss
405
+ - spec/fixtures/assets/sample.js.coffee
406
+ - spec/fixtures/templates/html_tag.html
407
+ - spec/fixtures/templates/html_tag.html.erb
408
+ - spec/fixtures/templates/html_tag.html.rb
409
+ - spec/fixtures/templates/image_tag.html
410
+ - spec/fixtures/templates/image_tag.html.erb
411
+ - spec/fixtures/templates/image_tag.html.rb
412
+ - spec/fixtures/templates/javascript_tag.html
413
+ - spec/fixtures/templates/javascript_tag.html.erb
414
+ - spec/fixtures/templates/javascript_tag.html.rb
415
+ - spec/fixtures/templates/link_to.html
416
+ - spec/fixtures/templates/link_to.html.erb
417
+ - spec/fixtures/templates/link_to.html.rb
418
+ - spec/fixtures/templates/stylesheet_tag.html
419
+ - spec/fixtures/templates/stylesheet_tag.html.erb
420
+ - spec/fixtures/templates/stylesheet_tag.html.rb
328
421
  - spec/lib/flatrack/asset_extensions_spec.rb
329
422
  - spec/lib/flatrack/cli_spec.rb
330
- - spec/lib/flatrack/renderer/base_spec.rb
331
423
  - spec/lib/flatrack/request_spec.rb
332
- - spec/lib/flatrack/response/view_context_spec.rb
333
424
  - spec/lib/flatrack/response_spec.rb
334
425
  - spec/lib/flatrack/site_spec.rb
426
+ - spec/lib/flatrack/view/link_helper_spec.rb
427
+ - spec/lib/flatrack/view/tag_helper_spec.rb
428
+ - spec/lib/flatrack/view_spec.rb
335
429
  - spec/lib/flatrack_spec.rb
336
430
  - spec/lib/rake/asset_tasks_spec.rb
337
- - spec/renderers/erb_spec.rb
338
- - spec/renderers/html_spec.rb
339
- - spec/renderers/rb_spec.rb
340
431
  - spec/spec_helper.rb
432
+ - spec/support/fixture_helper.rb
341
433
  - spec/support/site_helper.rb
434
+ has_rdoc:
@@ -1,19 +0,0 @@
1
- class Flatrack
2
- module Renderer
3
- class Base
4
- attr_reader :contents
5
-
6
- def self.renders(ext = nil)
7
- @renders = ext.to_sym
8
- end
9
-
10
- def self.renders?(ext)
11
- @renders == ext.to_sym
12
- end
13
-
14
- def initialize(file)
15
- @contents = File.read file
16
- end
17
- end
18
- end
19
- end
@@ -1,30 +0,0 @@
1
- class Flatrack
2
- module Renderer
3
- extend ActiveSupport::Autoload
4
-
5
- autoload :Base
6
-
7
- def find(type, file)
8
- template = find_by_type type, file
9
- fail FileNotFound, "could not find #{file}" unless template
10
- ext = File.extname(template).sub(/\./, '')
11
- renderer = Base.descendants.find do |descendant|
12
- descendant.renders?(ext)
13
- end || fail(RendererNotFound, "could not find a renderer for #{file}")
14
-
15
- renderer.new template
16
- end
17
-
18
- private
19
-
20
- def find_by_type(type, file)
21
- if File.exists?(file)
22
- file
23
- else
24
- Dir[File.join type.to_s.pluralize, "#{file}*"].first
25
- end
26
- end
27
-
28
- module_function :find, :find_by_type
29
- end
30
- end
@@ -1,67 +0,0 @@
1
- class Flatrack
2
- class Response
3
- class ViewContext
4
- include AssetExtensions
5
-
6
- def initialize(response)
7
- @response = response
8
- end
9
-
10
- def get_binding(&block)
11
- binding(&block)
12
- end
13
-
14
- def html_tag(tag, options = {}, &block)
15
- meta = options.map { |k, v| "#{k}=\"#{v}\"" }
16
- prefix = [tag, *meta].join(' ')
17
- "<#{prefix}" + (block_given? ? ">#{yield}</#{tag}>" : '/>')
18
- end
19
-
20
- def image_tag(uri, options = {})
21
- uri = asset_path(uri)
22
- html_tag(:img, { src: uri }.merge(options))
23
- end
24
-
25
- def javascript_tag(uri)
26
- uri = asset_path(uri) + '.js' if uri.is_a? Symbol
27
- html_tag(:script, src: uri) { nil }
28
- end
29
-
30
- def link_to(link_or_name, link_or_options=nil, options={})
31
- name = link_or_name
32
- link, options = if link_or_options.is_a?(Hash)
33
- [name, link_or_options]
34
- else
35
- [link_or_options, options]
36
- end
37
-
38
- html_tag(:a, link_to_options(link, options)) { name }
39
- end
40
-
41
- def params
42
- @response.request.params
43
- end
44
-
45
- def path
46
- @response.request.path
47
- end
48
-
49
- def render(file)
50
- Renderer.find(:partial, file.to_s).render(self)
51
- end
52
-
53
- def stylesheet_tag(uri)
54
- uri = asset_path(uri) + '.css' if uri.is_a? Symbol
55
- html_tag(:link, rel: 'stylesheet', type: 'text/css', href: uri)
56
- end
57
-
58
- private
59
-
60
- def link_to_options(link, opts={})
61
- link << '?' + opts.delete(:params).to_param if opts[:params].present?
62
- { href: link }.merge(opts)
63
- end
64
-
65
- end
66
- end
67
- end
data/renderers/erb.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'flatrack/renderer/base'
2
-
3
- class Flatrack::Renderer::ERB < Flatrack::Renderer::Base
4
- renders :erb
5
-
6
- def render(context = binding, &block)
7
- ::ERB.new(contents).result context.get_binding(&block)
8
- end
9
- end
data/renderers/html.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'flatrack/renderer/base'
2
-
3
- class Flatrack::Renderer::Html < Flatrack::Renderer::Base
4
- renders :html
5
-
6
- def render(*args)
7
- contents
8
- end
9
- end
data/renderers/rb.rb DELETED
@@ -1,19 +0,0 @@
1
- require 'flatrack/renderer/base'
2
-
3
- class Flatrack::Renderer::Rb < Flatrack::Renderer::Base
4
- renders :rb
5
-
6
- def render(context)
7
- eval <<-RUBY, context.get_binding
8
- r = nil
9
- evaluator = Thread.start do
10
- $SAFE = 3
11
- r = begin
12
- #{contents}
13
- end
14
- end
15
- nil while evaluator.alive?
16
- r
17
- RUBY
18
- end
19
- end
@@ -1,4 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Flatrack::Renderer::Base do
4
- end
@@ -1,93 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Flatrack::Response::ViewContext do
4
- include SiteHelper
5
-
6
- let(:uri) { URI.parse 'http://example.org/index.html' }
7
- let(:env){ Rack::MockRequest.env_for uri.to_s }
8
- let(:request){ Flatrack::Request.new env }
9
- let(:response){ Flatrack::Response.new request }
10
- subject(:view){ described_class.new response }
11
-
12
- describe '#initialize' do
13
- it 'should set the response' do
14
- view = described_class.allocate
15
- expect {
16
- view.send :initialize, response
17
- }.to change {
18
- view.instance_variable_get :@response
19
- }.to response
20
- end
21
- end
22
-
23
- describe '#get_binding' do
24
- it 'should yield to the view_context' do
25
- view.get_binding do
26
- expect(self.class).to be_a described_class
27
- end
28
- end
29
- end
30
-
31
- describe '#image_tag' do
32
- it 'should be a proper image tag' do
33
- expect(view.image_tag 'test.png')
34
- .to eq "<img src=\"/assets/test.png\"/>"
35
- end
36
- end
37
-
38
- describe '#javascript_tag' do
39
- it 'should be a proper javascript tag' do
40
- expect(view.javascript_tag :test)
41
- .to eq "<script src=\"/assets/test.js\"></script>"
42
- end
43
- end
44
-
45
- describe '#link_to' do
46
- it 'should be a proper link tag with a name' do
47
- expect(view.link_to 'test', '/test.html', params: { foo: 'bar' }, class: 'test')
48
- .to eq "<a href=\"/test.html?foo=bar\" class=\"test\">test</a>"
49
- end
50
-
51
- it 'should be a proper link tag without a name' do
52
- expect(view.link_to '/test.html', params: { foo: 'bar' }, class: 'test')
53
- .to eq "<a href=\"/test.html?foo=bar\" class=\"test\">/test.html?foo=bar</a>"
54
- end
55
- end
56
-
57
- describe '#params' do
58
- let(:uri) { URI.parse 'http://example.org/index.html?foo=bar' }
59
- it 'should be extracted from the uri path' do
60
- expect(view.params).to include foo: 'bar'
61
- end
62
- end
63
-
64
- describe '#path' do
65
- it 'should be extracted from the uri path' do
66
- expect(view.path).to eq uri.path
67
- end
68
- end
69
-
70
- describe '#render' do
71
- let(:template) do
72
- <<-ERB
73
- <%= 'Hello World'.reverse %>
74
- ERB
75
- end
76
-
77
- it 'should properly render a partial' do
78
- site do
79
- write(:partial, 'sample.erb', template)
80
- result = view.render(:sample)
81
- expect(result).to include 'Hello World'.reverse
82
- end
83
- end
84
- end
85
-
86
- describe '#stylesheet_tag' do
87
- it 'should be a proper stylesheet tag' do
88
- expect(view.stylesheet_tag :test)
89
- .to eq "<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/test.css\"/>"
90
- end
91
- end
92
-
93
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Flatrack::Renderer::ERB do
4
- include SiteHelper
5
-
6
- let(:template) do
7
- <<-ERB
8
- <%= 'Hello World'.reverse %>
9
- ERB
10
- end
11
-
12
- it 'should render properly' do
13
- sha = SecureRandom.hex
14
- site do
15
- write(:page, "#{sha}.html.erb", template)
16
- status, headers, body = get_page_response(sha)
17
- expect(body.first).to include 'Hello World'.reverse
18
- end
19
- end
20
-
21
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Flatrack::Renderer::Html do
4
- include SiteHelper
5
-
6
- let(:template) do
7
- <<-HTML
8
- <body>Hello World</body>
9
- HTML
10
- end
11
-
12
- it 'should render properly' do
13
- sha = SecureRandom.hex
14
- site do
15
- write(:page, "#{sha}.html.html", template)
16
- status, headers, body = get_page_response(sha)
17
- expect(body.first).to include template
18
- end
19
- end
20
-
21
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Flatrack::Renderer::Rb do
4
- include SiteHelper
5
-
6
- let(:template) do
7
- <<-RUBY
8
- 'Hello World'.reverse
9
- RUBY
10
- end
11
-
12
- it 'should render properly' do
13
- sha = SecureRandom.hex
14
- site do
15
- write(:page, "#{sha}.html.rb", template)
16
- status, headers, body = get_page_response(sha)
17
- expect(body.first).to include 'Hello World'.reverse
18
- end
19
- end
20
-
21
- end