flatrack 1.1.1 → 1.2.0

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