braai 1.6.0 → 1.6.1

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
@@ -3,4 +3,5 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in braai.gemspec
4
4
  gemspec
5
5
 
6
- gem "minitest-colorize"
6
+ gem "minitest-colorize"
7
+ gem "rake"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- braai (1.6.0)
4
+ braai (1.6.1)
5
5
  activesupport
6
6
 
7
7
  GEM
@@ -18,6 +18,7 @@ GEM
18
18
  mocha (0.12.4)
19
19
  metaclass (~> 0.0.1)
20
20
  multi_json (1.6.1)
21
+ rake (10.0.3)
21
22
 
22
23
  PLATFORMS
23
24
  ruby
@@ -26,3 +27,4 @@ DEPENDENCIES
26
27
  braai!
27
28
  minitest-colorize
28
29
  mocha
30
+ rake
data/README.md CHANGED
@@ -99,4 +99,5 @@ res.should match("<h2>MARK</h2>")
99
99
 
100
100
  * Mark Bates
101
101
  * Nick Plante
102
- * Kevin Incorvia
102
+ * Sam Beam
103
+ * Kevin Incorvia
@@ -1,15 +1,24 @@
1
1
  module Braai::Handlers
2
2
  class Default < Base
3
3
  def perform
4
+ value = nil
4
5
  chain = matches[1].split('.')
5
- value = template.attributes[chain.shift]
6
- return nil unless value
6
+
7
+ if template.attributes.has_key?(chain.first)
8
+ value = template.attributes[chain.shift] || ''
9
+ else
10
+ return nil unless value
11
+ end
7
12
 
8
13
  chain.each do |a|
9
14
  if value.respond_to?(a.to_sym)
10
- value = value.send(a)
15
+ value = value.send(a) || ''
11
16
  elsif value.is_a?(Hash)
12
- value = value[a.to_sym] || value[a.to_s]
17
+ if value.has_key?(a.to_sym) || value.has_key?(a.to_s)
18
+ value = value[a.to_sym] || value[a.to_s] || ''
19
+ else
20
+ return nil
21
+ end
13
22
  else
14
23
  return nil
15
24
  end
data/lib/braai/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Braai
2
- VERSION = "1.6.0"
2
+ VERSION = "1.6.1"
3
3
  end
@@ -17,6 +17,12 @@ describe Braai::Handlers::Default do
17
17
  res.must_equal("Hi {{ name.upcase }}")
18
18
  end
19
19
 
20
+ it "handles nil attributes (that are actually nil, not missing)" do
21
+ person = OpenStruct.new(salutation: nil, name: 'Fred Rogers')
22
+ res = Braai::Template.new("{{ greet }} {{ person.salutation }} {{ person.name }}").render(greet: "Hi", person: person)
23
+ res.must_equal("Hi Fred Rogers")
24
+ end
25
+
20
26
  it "handles deeply nested attributes" do
21
27
  res = Braai::Template.new(adv_template).render(greet: "Hello", name: OpenStruct.new(full_name: 'inigo montoya'))
22
28
  res.must_equal("Hello my name is INIGO MONTOYA")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braai
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-08 00:00:00.000000000 Z
12
+ date: 2013-03-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -87,12 +87,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
87
  - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
+ segments:
91
+ - 0
92
+ hash: -348262951032349536
90
93
  required_rubygems_version: !ruby/object:Gem::Requirement
91
94
  none: false
92
95
  requirements:
93
96
  - - ! '>='
94
97
  - !ruby/object:Gem::Version
95
98
  version: '0'
99
+ segments:
100
+ - 0
101
+ hash: -348262951032349536
96
102
  requirements: []
97
103
  rubyforge_project:
98
104
  rubygems_version: 1.8.25