roundtrip_xml 0.2.1 → 0.2.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: c6f9312c0f358c5e57d680d9f19cfe25667046c1
4
- data.tar.gz: d03c4d48699d51ed0a02962f948610dd0c4e7350
3
+ metadata.gz: 3e77511e2e2d2f257ab080cebb04b0f66ee25af7
4
+ data.tar.gz: 6a3ebee19eeffa57d16e80c18a87942d58edbfe4
5
5
  SHA512:
6
- metadata.gz: dd0841dd612f8ce6c81a289e5f767f78516e94f928d476bbb7480694226a1c19c7a40c0e3f01f54a7d030db594e06d076525e6994d5dfa39a7c0fecbed147450
7
- data.tar.gz: 695dd79cc60a4d92e5810c148c4ebb790a6daaa9e94de7ff19f757f0f96d1ec0a3a3c3f375c3edd00b87eb3482337515ee06e6d63e56d3e2a35354dbdf65d864
6
+ metadata.gz: cd50200ff25f0195d300e5c0d25ffff38dbb7ec84ce534ab0f7bf8e3a686e09eefd58f837012f8c31a695182535956753643d2c1f7fd69db46b318fc22a6dd28
7
+ data.tar.gz: 872b94b1378169aafd2efcdb979c8649dbbc1d9530cebbef70dc57143bc7de41fdfc94babbddeae3e5757eb1543ca67ca8c26dfef9ff9dd6dac6838d6ffa7fc3
@@ -42,9 +42,9 @@ class BaseCleanroom
42
42
  def expose_attr_accessors()
43
43
  get_el.class.plain_accessors.each do |a|
44
44
  create_method(a) do |value = nil|
45
- if value
46
- get_el.send("#{a}=".to_sym, value) if value
47
- elsif !value && show_undefined_params
45
+ if !value.nil?
46
+ get_el.send("#{a}=".to_sym, value)
47
+ elsif value.nil? && show_undefined_params
48
48
  return get_el.send(a) || Utils::UndefinedParam.new(a)
49
49
  else
50
50
  return get_el.send(a)
@@ -60,7 +60,7 @@ class BaseCleanroom
60
60
  def expand(clazz, &block)
61
61
  plain_accessors = @el.class.plain_accessors
62
62
  @value_holder ||= {}
63
- hash = plain_accessors.inject({}) {|h, a| h[a] = @el.send(a) || Utils::UndefinedParam.new(a); h}
63
+ hash = plain_accessors.inject({}) {|h, a| h[a] = @el.send(a).nil? ? Utils::UndefinedParam.new(a) : @el.send(a); h}
64
64
  child = @runtime.create_cleanroom(clazz, @show_undefined_params)
65
65
  child.inherit_properties hash.merge(@value_holder)
66
66
 
@@ -42,6 +42,17 @@ class RootCleanroom < BaseCleanroom
42
42
  end
43
43
  expose(:define)
44
44
 
45
+ def apply_template(name, &block)
46
+ clazz = @runtime.fetch name
47
+ raise ArgumentError, "#{name} must extend #{get_el.class.class_name}" unless clazz.ancestors.any? {|p| p == get_el.class}
48
+
49
+ expanded_template = expand clazz, &block
50
+
51
+ @el = expanded_template
52
+ end
53
+ expose(:apply_template)
54
+
55
+
45
56
  def use_file(path)
46
57
  self.evaluate_file(path)
47
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roundtrip_xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Usick