hobber 0.6.1 → 0.6.2

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