code-ruby 1.8.4 → 1.8.5
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 +4 -4
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/lib/code/object/list.rb +9 -0
- data/spec/code/object/list_spec.rb +8 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2fece707e7c4b6ac1d7b25424dde96b9095c088b4f22a28e64af1b093b1a9a94
|
|
4
|
+
data.tar.gz: 960c8660fd9f5039ea34dec5b34d618da17b861e29a7b317ba4f701f5e6f2c26
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8324362cd96bf8134b82cf175afd91a4ff3f44c21c2dcaa9ae47778e175d491bfa923859e9fd74f7fd2eeb316ab0685e6b06a167c6d9f6e9f30d344fd5d5860a
|
|
7
|
+
data.tar.gz: edb4cc8af5291c3778ea5eca8d95b420b4555a29298a5b1132b2a2adfd2d599c06e142f2b76607d54ca058ed35d9640744343416d4ef386944814681d29e47e4
|
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.8.
|
|
1
|
+
1.8.5
|
data/lib/code/object/list.rb
CHANGED
|
@@ -142,6 +142,9 @@ class Code
|
|
|
142
142
|
when "<<", "append"
|
|
143
143
|
sig(args) { Object }
|
|
144
144
|
code_append(code_value)
|
|
145
|
+
when "+", "plus"
|
|
146
|
+
sig(args) { List.maybe }
|
|
147
|
+
code_arguments.any? ? code_plus(code_value) : code_self
|
|
145
148
|
when "-", "minus"
|
|
146
149
|
sig(args) { List }
|
|
147
150
|
code_minus(code_value)
|
|
@@ -580,6 +583,12 @@ class Code
|
|
|
580
583
|
self
|
|
581
584
|
end
|
|
582
585
|
|
|
586
|
+
def code_plus(other)
|
|
587
|
+
code_other = other.to_code
|
|
588
|
+
|
|
589
|
+
List.new(raw + code_other.raw)
|
|
590
|
+
end
|
|
591
|
+
|
|
583
592
|
def code_minus(other)
|
|
584
593
|
code_other = other.to_code
|
|
585
594
|
|
|
@@ -3,7 +3,14 @@
|
|
|
3
3
|
require "spec_helper"
|
|
4
4
|
|
|
5
5
|
RSpec.describe Code::Object::List do
|
|
6
|
-
[
|
|
6
|
+
[
|
|
7
|
+
["[] == []", "true"],
|
|
8
|
+
["[1, 2, 3].sum", "6"],
|
|
9
|
+
["[1, 2] + [3, 4]", "[1, 2, 3, 4]"],
|
|
10
|
+
["[] + []", "[]"],
|
|
11
|
+
["[1].any", "true"],
|
|
12
|
+
["[].any", "false"]
|
|
13
|
+
].each do |input, expected|
|
|
7
14
|
it "#{input} == #{expected}" do
|
|
8
15
|
expect(Code.evaluate(input)).to eq(Code.evaluate(expected))
|
|
9
16
|
end
|