hobber 0.6.1 → 0.6.2
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.
- data/Gemfile +2 -0
- data/lib/hobber/render_action.rb +8 -1
- data/lib/hobber/renderable_object.rb +11 -2
- data/lib/hobber/rendered_object.rb +6 -1
- data/lib/hobber/version.rb +1 -1
- data/spec/lib/hobber/rendered_object_spec.rb +2 -1
- metadata +11 -31
data/Gemfile
CHANGED
data/lib/hobber/render_action.rb
CHANGED
@@ -8,6 +8,7 @@ module Hobber
|
|
8
8
|
@tmpl_vars = {}
|
9
9
|
@layouts = []
|
10
10
|
@rewrite_paths = []
|
11
|
+
@rewrite_urls = []
|
11
12
|
@target_extention = nil
|
12
13
|
|
13
14
|
if block
|
@@ -28,6 +29,10 @@ module Hobber
|
|
28
29
|
@rewrite_paths << [regexp, replacement]
|
29
30
|
end
|
30
31
|
|
32
|
+
def rewrite_url regexp, replacement
|
33
|
+
@rewrite_urls << [regexp, replacement]
|
34
|
+
end
|
35
|
+
|
31
36
|
def target_extention ext
|
32
37
|
@target_extention = ext.to_s
|
33
38
|
end
|
@@ -41,7 +46,8 @@ module Hobber
|
|
41
46
|
:data=>render_renderable_object(ro, @tmpl_vars, @layouts),
|
42
47
|
:renderable_object=>ro,
|
43
48
|
:layouts=> @layouts,
|
44
|
-
:path=>rewrite_paths(ro.path, @rewrite_paths)
|
49
|
+
:path=>rewrite_paths(ro.path, @rewrite_paths),
|
50
|
+
:url=>rewrite_paths(ro.path, @rewrite_urls))
|
45
51
|
end
|
46
52
|
end
|
47
53
|
|
@@ -49,6 +55,7 @@ module Hobber
|
|
49
55
|
|
50
56
|
def render_renderable_object ro, tmpl_vars={}, layouts=[]
|
51
57
|
tmpl_vars.merge!(ro.tmpl_vars)
|
58
|
+
tmpl_vars.merge!(:current_renderable_object => ro)
|
52
59
|
|
53
60
|
result = ro.render(tmpl_vars)
|
54
61
|
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'tilt'
|
2
2
|
require 'yaml'
|
3
|
+
require 'active_support/core_ext/hash/indifferent_access'
|
4
|
+
|
3
5
|
|
4
6
|
module Hobber
|
5
7
|
class ProblemParsingYaml < RuntimeError; end
|
8
|
+
class RenderError < RuntimeError; end
|
6
9
|
class RenderableObject
|
7
10
|
attr_reader :path, :data
|
8
11
|
|
@@ -20,6 +23,10 @@ module Hobber
|
|
20
23
|
[self]
|
21
24
|
end
|
22
25
|
|
26
|
+
def [](key)
|
27
|
+
tmpl_vars.fetch(key)
|
28
|
+
end
|
29
|
+
|
23
30
|
def data
|
24
31
|
@data ||= File.read(@path)
|
25
32
|
end
|
@@ -34,7 +41,7 @@ module Hobber
|
|
34
41
|
@data = template_data
|
35
42
|
@tmpl_vars = YAML.parse(yaml_buffer).to_ruby
|
36
43
|
end
|
37
|
-
@tmpl_vars
|
44
|
+
HashWithIndifferentAccess.new(@tmpl_vars)
|
38
45
|
rescue Psych::SyntaxError => e
|
39
46
|
raise ProblemParsingYaml.new([e.message, "while trying to extract tmpl_vars from [#{path}]"] * " -- ")
|
40
47
|
end
|
@@ -59,7 +66,9 @@ module Hobber
|
|
59
66
|
# engine
|
60
67
|
_render_template_chain(path, data, context, vars, &block)
|
61
68
|
rescue => e
|
62
|
-
|
69
|
+
render_error = RenderError.new("#{self.class}: While rendering #{path} with #{tilt_template_class}: #{e.message}")
|
70
|
+
render_error.set_backtrace(e.backtrace)
|
71
|
+
raise render_error
|
63
72
|
end
|
64
73
|
end
|
65
74
|
end
|
@@ -1,12 +1,17 @@
|
|
1
1
|
module Hobber
|
2
2
|
class RenderedObject
|
3
|
-
attr_reader :data, :path
|
3
|
+
attr_reader :data, :path, :url, :renderable_object
|
4
4
|
|
5
5
|
def initialize opts={}
|
6
6
|
@data = opts.fetch(:data)
|
7
7
|
@renderable_object = opts.fetch(:renderable_object)
|
8
8
|
@path = opts.fetch(:path)
|
9
9
|
@layouts = opts.fetch(:layouts)
|
10
|
+
@url = opts.fetch(:url)
|
11
|
+
end
|
12
|
+
|
13
|
+
def [](key)
|
14
|
+
@renderable_object.tmpl_vars.fetch(key)
|
10
15
|
end
|
11
16
|
|
12
17
|
end
|
data/lib/hobber/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-27 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: tilt
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70242806127920 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
24
|
+
version_requirements: *70242806127920
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: rdiscount
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70242806127500 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '0'
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
35
|
+
version_requirements: *70242806127500
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: haml
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70242806127080 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ! '>='
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: '0'
|
54
44
|
type: :runtime
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
46
|
+
version_requirements: *70242806127080
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: thor
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70242806126660 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ! '>='
|
@@ -69,12 +54,7 @@ dependencies:
|
|
69
54
|
version: '0'
|
70
55
|
type: :runtime
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
57
|
+
version_requirements: *70242806126660
|
78
58
|
description: Minimal implementation ..
|
79
59
|
email:
|
80
60
|
- boy.maas@gmail.com
|
@@ -132,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
112
|
version: '0'
|
133
113
|
requirements: []
|
134
114
|
rubyforge_project:
|
135
|
-
rubygems_version: 1.8.
|
115
|
+
rubygems_version: 1.8.15
|
136
116
|
signing_key:
|
137
117
|
specification_version: 3
|
138
118
|
summary: Minimal implementation ..
|