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 CHANGED
@@ -1,5 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem "active_support"
4
+
3
5
  group :development do
4
6
  gem 'pry'
5
7
  gem 'rspec'
@@ -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
- raise "#{self.class}: While rendering #{path} with #{tilt_template_class}: #{e.message}"
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
@@ -1,3 +1,3 @@
1
1
  module Hobber
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
@@ -8,7 +8,8 @@ module Hobber
8
8
  :data=>:data,
9
9
  :renderable_object=>:renderable_object,
10
10
  :path=>:path,
11
- :layouts=>:layouts
11
+ :layouts=>:layouts,
12
+ :url=>:url
12
13
  )
13
14
  end
14
15
  end
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.1
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-26 00:00:00.000000000 Z
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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.24
115
+ rubygems_version: 1.8.15
136
116
  signing_key:
137
117
  specification_version: 3
138
118
  summary: Minimal implementation ..