delorean_lang 0.3.25 → 0.3.26

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