delorean_lang 0.3.25 → 0.3.26

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: 7a874caf5f4ff132d1358f1200e1bdbe8922d968
4
- data.tar.gz: 2953cf29508714e114dc2f35b1cec643133fdfdb
3
+ metadata.gz: 5085bb6c2a013879d9352228d1d88ed4b877f65c
4
+ data.tar.gz: 74ed652e5794937673406b1f1e47412eee1701ac
5
5
  SHA512:
6
- metadata.gz: fcfc877b4bae858ce9988d371502ea9625b02e93b8046b7861c3f6f505b8b0f57a30878482b5d92bf3ef18935241383f9fddb3c61a243fec328ce0f6a483aef0
7
- data.tar.gz: e2cfcda4485deca3b94169c26dfd5281778a1850b426fe08d42ad1c8edf3048f0c4452b2e2f262801aee9cde9a8ede2d63b56c99a5b8324bb0a141cf55a36d18
6
+ metadata.gz: dd2bca3f1026949d7701e16b26deda862db00aca13242160f8ef48d7a4e1cb7aaf6e77fcfdce126688bf33f5f06a7aac7c7df528bb6924c40846b8817b13ff01
7
+ data.tar.gz: 60a4c75f4dcac87ac083bffb1fea1a4ef8997177b4703e26e01589260a7036e23ba3db0700aef4732cbd3e83b1bdc8c322c78a8e33b392f6977bd35084083402
@@ -125,6 +125,20 @@ module Delorean
125
125
 
126
126
  class BaseClass
127
127
  def self._get_attr(obj, attr, _e)
128
+ # REALLY FIXME: this really needs to be another "when" in the
129
+ # case statement below. However, Gemini appears to create Hash
130
+ # objects when running Delorean modules in delayed jobs that
131
+ # return true when we called obj.instance_of?(Hash) and do not
132
+ # work with the "case/when" matcher!!! For now, this is a
133
+ # hacky workaround. This is likely some sort of Ruby bug.
134
+ if obj.instance_of?(Hash)
135
+ # FIXME: this implementation doesn't handle something like
136
+ # {}.length. i.e. length is a whitelisted function, but not
137
+ # an attr. This implementation returns nil instead of 0.
138
+ return obj[attr] if obj.member?(attr)
139
+ return attr.is_a?(String) ? obj[attr.to_sym] : nil
140
+ end
141
+
128
142
  # NOTE: should keep this function consistent with _index
129
143
  case obj
130
144
  when nil
@@ -136,12 +150,6 @@ module Delorean
136
150
  return obj.send(attr.to_sym) if obj.class.reflections[attr]
137
151
  when NodeCall
138
152
  return obj.evaluate(attr)
139
- when Hash
140
- # FIXME: this implementation doesn't handle something like
141
- # {}.length. i.e. length is a whitelisted function, but not
142
- # an attr. This implementation returns nil instead of 0.
143
- return obj[attr] if obj.member?(attr)
144
- return attr.is_a?(String) ? obj[attr.to_sym] : nil
145
153
  when Class
146
154
  return obj.send((attr + POST).to_sym, _e) if obj < BaseClass
147
155
  end
@@ -1,3 +1,3 @@
1
1
  module Delorean
2
- VERSION = "0.3.25"
2
+ VERSION = "0.3.26"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delorean_lang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.25
4
+ version: 0.3.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-08 00:00:00.000000000 Z
11
+ date: 2017-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop