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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -2
- data/README.md +14 -2
- data/{templates → error_pages}/404.html +0 -0
- data/{templates → error_pages}/500.html +0 -0
- data/flatrack.gemspec +4 -0
- data/{templates → lib/flatrack/cli/templates}/.gitignore +0 -0
- data/{templates → lib/flatrack/cli/templates}/.keep +0 -0
- data/{templates → lib/flatrack/cli/templates}/Gemfile.erb +0 -0
- data/{templates → lib/flatrack/cli/templates}/Rakefile +0 -0
- data/{templates → lib/flatrack/cli/templates}/boot.rb +0 -0
- data/{templates → lib/flatrack/cli/templates}/config.ru +0 -0
- data/{templates → lib/flatrack/cli/templates}/javascript.js.coffee +0 -0
- data/{templates → lib/flatrack/cli/templates}/layout.html.erb +0 -0
- data/{logo.png → lib/flatrack/cli/templates/logo.png} +0 -0
- data/{templates → lib/flatrack/cli/templates}/page.html.erb +0 -0
- data/{templates → lib/flatrack/cli/templates}/stylesheet.css.scss +0 -0
- data/lib/flatrack/cli.rb +10 -1
- data/lib/flatrack/request.rb +2 -2
- data/lib/flatrack/response.rb +6 -8
- data/lib/flatrack/site.rb +0 -2
- data/lib/flatrack/template/erubis/handler.rb +76 -0
- data/lib/flatrack/template/erubis.rb +20 -0
- data/lib/flatrack/template/html.rb +11 -0
- data/lib/flatrack/template/rb.rb +13 -0
- data/lib/flatrack/template.rb +35 -0
- data/lib/flatrack/version.rb +1 -1
- data/lib/flatrack/view/capture_helper.rb +30 -0
- data/lib/flatrack/view/link_helper.rb +28 -0
- data/lib/flatrack/view/output_buffer.rb +24 -0
- data/lib/flatrack/view/render_helper.rb +9 -0
- data/lib/flatrack/view/request_helper.rb +13 -0
- data/lib/flatrack/view/tag_helper.rb +102 -0
- data/lib/flatrack/view.rb +30 -0
- data/lib/flatrack.rb +3 -9
- data/lib/rake/asset_tasks.rb +31 -23
- data/spec/fixtures/assets/sample.css.scss +2 -0
- data/spec/fixtures/assets/{application.js.coffee → sample.js.coffee} +1 -1
- data/spec/fixtures/templates/html_tag.html +5 -0
- data/spec/fixtures/templates/html_tag.html.erb +9 -0
- data/spec/fixtures/templates/html_tag.html.rb +5 -0
- data/spec/fixtures/templates/image_tag.html +2 -0
- data/spec/fixtures/templates/image_tag.html.erb +2 -0
- data/spec/fixtures/templates/image_tag.html.rb +2 -0
- data/spec/fixtures/templates/javascript_tag.html +2 -0
- data/spec/fixtures/templates/javascript_tag.html.erb +2 -0
- data/spec/fixtures/templates/javascript_tag.html.rb +2 -0
- data/spec/fixtures/templates/link_to.html +9 -0
- data/spec/fixtures/templates/link_to.html.erb +11 -0
- data/spec/fixtures/templates/link_to.html.rb +7 -0
- data/spec/fixtures/templates/stylesheet_tag.html +2 -0
- data/spec/fixtures/templates/stylesheet_tag.html.erb +2 -0
- data/spec/fixtures/templates/stylesheet_tag.html.rb +2 -0
- data/spec/lib/flatrack/asset_extensions_spec.rb +2 -2
- data/spec/lib/flatrack/cli_spec.rb +8 -6
- data/spec/lib/flatrack/request_spec.rb +4 -4
- data/spec/lib/flatrack/response_spec.rb +4 -4
- data/spec/lib/flatrack/site_spec.rb +10 -5
- data/spec/lib/flatrack/view/link_helper_spec.rb +25 -0
- data/spec/lib/flatrack/view/tag_helper_spec.rb +81 -0
- data/spec/lib/flatrack/view_spec.rb +52 -0
- data/spec/lib/flatrack_spec.rb +1 -1
- data/spec/lib/rake/asset_tasks_spec.rb +8 -8
- data/spec/spec_helper.rb +3 -2
- data/spec/support/fixture_helper.rb +29 -0
- data/spec/support/site_helper.rb +43 -39
- metadata +126 -33
- data/lib/flatrack/renderer/base.rb +0 -19
- data/lib/flatrack/renderer.rb +0 -30
- data/lib/flatrack/response/view_context.rb +0 -67
- data/renderers/erb.rb +0 -9
- data/renderers/html.rb +0 -9
- data/renderers/rb.rb +0 -19
- data/spec/lib/flatrack/renderer/base_spec.rb +0 -4
- data/spec/lib/flatrack/response/view_context_spec.rb +0 -93
- data/spec/renderers/erb_spec.rb +0 -21
- data/spec/renderers/html_spec.rb +0 -21
- data/spec/renderers/rb_spec.rb +0 -21
data/spec/support/site_helper.rb
CHANGED
@@ -1,52 +1,56 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
-
|
9
|
-
|
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
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
39
|
-
env = Rack::MockRequest.env_for "http://example.org/#{page}.html"
|
40
|
-
Flatrack::Site.call(env)
|
41
|
-
end
|
39
|
+
private
|
42
40
|
|
43
|
-
|
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
|
-
|
46
|
-
|
47
|
-
|
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.
|
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-
|
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/
|
263
|
-
- lib/flatrack/
|
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
|
-
-
|
273
|
-
-
|
274
|
-
-
|
275
|
-
- spec/fixtures/
|
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/
|
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
|
data/lib/flatrack/renderer.rb
DELETED
@@ -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
data/renderers/html.rb
DELETED
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,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
|
data/spec/renderers/erb_spec.rb
DELETED
@@ -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
|
data/spec/renderers/html_spec.rb
DELETED
@@ -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
|
data/spec/renderers/rb_spec.rb
DELETED
@@ -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
|