halogen 0.0.1 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 491dfa5f8eb8f51c4973205d1fbab6e883ce40db
4
- data.tar.gz: 79c6b3b9b20ba7e86b6684daa38440b60b34460c
3
+ metadata.gz: ecf269aadcd3040623710454934d01055e58f022
4
+ data.tar.gz: c389775b46ff5daabf1bb4ccaae8b4967f4eaf89
5
5
  SHA512:
6
- metadata.gz: a69872769a3355f338b642ff0ae66dcbbc37a76edb9e74f7826e3abf7c53d8525ef8399a042db3d4d38b971d3bd7851984395779af628cd1df99e10983224024
7
- data.tar.gz: d6ba44f85ce1d6b5bf1108975aa3426354f8f1b32d3cfc62bd16d91d9f894ac14e8186d8ca6121a561d0e5659cef16b7a81c9421ea386328421329c98c5b4b06
6
+ metadata.gz: f9ae4d73ca13c7ad45c68c718a527111b522adcc9b02772d641403edb9e642c564afd0a5172b2cb6908c034a35059a03f143555af0a812ad2a97e488529d67c9
7
+ data.tar.gz: a36c479ad935f1f2d74df13f14afb7652630dc6a9ca37b652cbf64499f2198b3afc839889f4c7328f0eb154b3265180b26799f065c60827ac4a447a4e767f256
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Halogen
2
2
 
3
- [![Build Status](https://travis-ci.org/mode/halogen.svg)](https://travis-ci.org/mode/halogen)
3
+ [![Code Climate](https://codeclimate.com/repos/552430af695680100500b659/badges/cdae8d5a10147d135be9/gpa.svg)](https://codeclimate.com/repos/552430af695680100500b659/feed)
4
4
 
5
5
  This library provides a framework-agnostic interface for generating
6
6
  [HAL+JSON](http://stateless.co/hal_specification.html)
@@ -192,7 +192,7 @@ link(:find, :templated) { '/goats/{?id}' }
192
192
  # => { _links: { find: { href: '/goats/{?id}', templated: true } } ... }
193
193
  ```
194
194
 
195
- ### Embedded resources
195
+ #### Embedded resources
196
196
 
197
197
  Embedded resources are not rendered by default. They will be included if both
198
198
  of the following conditions are met:
@@ -76,7 +76,10 @@ module Halogen
76
76
  def render_child(repr, opts)
77
77
  return unless repr.class.included_modules.include?(Halogen)
78
78
 
79
- repr.options.merge!(embed: opts, parent: self)
79
+ repr.options[:embed] ||= {}
80
+ repr.options[:embed].merge!(opts)
81
+
82
+ repr.options[:parent] = self
80
83
 
81
84
  repr.render
82
85
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
  #
3
3
  module Halogen
4
- VERSION = '0.0.1' # :nodoc:
4
+ VERSION = '0.0.2' # :nodoc:
5
5
  end
@@ -147,29 +147,35 @@ describe Halogen::Embeds do
147
147
 
148
148
  describe '#render_child' do
149
149
  let :representer do
150
- klass.new
150
+ Class.new do
151
+ include Halogen
152
+
153
+ property(:verify_parent) { parent.object_id }
154
+ property(:verify_opts) { options[:embed] }
155
+ end.new
151
156
  end
152
157
 
153
158
  it 'returns nil if child is not a representer' do
154
159
  [nil, 1, ''].each do |child|
155
- expect(representer.render_child(child, {})).to be_nil
160
+ expect(klass.new.render_child(child, {})).to be_nil
156
161
  end
157
162
  end
158
163
 
159
164
  it 'renders child representer with correct parent and options' do
160
- child = Class.new do
161
- include Halogen
162
-
163
- property(:verify_parent) { parent.object_id }
164
- property(:verify_opts) { options[:embed] }
165
- end.new
166
-
167
- result = representer.render_child(child, foo: 'bar')
165
+ result = representer.render_child(representer, foo: 'bar')
168
166
 
169
167
  expect(result).to eq(
170
168
  verify_parent: representer.object_id,
171
169
  verify_opts: { foo: 'bar' })
172
170
  end
171
+
172
+ it 'merges child options if already present' do
173
+ representer.options[:embed] = { bar: 'bar' }
174
+
175
+ result = representer.render_child(representer, foo: 'foo')
176
+
177
+ expect(result[:verify_opts]).to eq(foo: 'foo', bar: 'bar')
178
+ end
173
179
  end
174
180
 
175
181
  describe '#embed_options' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: halogen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heather Rivers