uberscore 0.0.2 → 0.0.3
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/README.md +4 -0
- data/lib/uberscore/version.rb +1 -1
- data/lib/uberscore.rb +6 -2
- data/spec/uberscore_spec.rb +4 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39563e475c0491d14d447db971e5e6064393da35
|
4
|
+
data.tar.gz: 1fe037f97071b82b716c0e901bccf88a230dbaee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a31a07cea9dfa399501af6e8e19ccdd2d4323496607e896710be5f62247ceff7a023383d80c4a1a954e4bd17e8366b038803a79dbc01a727a581516eb3d93fd8
|
7
|
+
data.tar.gz: 02270ba32adad1567a57ccd999d5c73bca0abf194edfe28058f5c88b367ddc381c372357b8f1f4cd6a683e12300ed8770e97f8af464a43677775829c624b3034
|
data/README.md
CHANGED
@@ -18,6 +18,10 @@ Born to make your Ruby blocks more concise.
|
|
18
18
|
# Subscript.
|
19
19
|
[{ name: "foo" }, { name: "bar" }].map { |hash| hash[:name] }
|
20
20
|
[{ name: "foo" }, { name: "bar" }].map(&_[:name])
|
21
|
+
|
22
|
+
# Use multiple arguments.
|
23
|
+
[[1, 2], [3, 4]].map(&_ + _)
|
24
|
+
[[1, 2], [3, 4]].map { |a, b| a + b }
|
21
25
|
```
|
22
26
|
|
23
27
|
## Installation
|
data/lib/uberscore/version.rb
CHANGED
data/lib/uberscore.rb
CHANGED
@@ -11,7 +11,6 @@ module Uberscore
|
|
11
11
|
undef_method :!=
|
12
12
|
undef_method :==
|
13
13
|
undef_method :__id__
|
14
|
-
undef_method :__send__
|
15
14
|
|
16
15
|
def initialize
|
17
16
|
@call_chain = []
|
@@ -25,7 +24,12 @@ module Uberscore
|
|
25
24
|
def to_proc
|
26
25
|
->(object) do
|
27
26
|
@call_chain.reduce(object) do |current, (name, args, block)|
|
28
|
-
|
27
|
+
case args.first
|
28
|
+
when Context
|
29
|
+
current[0].public_send(name, current[1], &block)
|
30
|
+
else
|
31
|
+
current.public_send(name, *args, &block)
|
32
|
+
end
|
29
33
|
end
|
30
34
|
end
|
31
35
|
end
|
data/spec/uberscore_spec.rb
CHANGED
@@ -16,4 +16,8 @@ describe Uberscore do
|
|
16
16
|
it "can subscript" do
|
17
17
|
expect([{ name: "foo" }, { name: "bar" }].map(&_[:name])).to eq([{ name: "foo" }, { name: "bar" }].map { |hash| hash[:name] })
|
18
18
|
end
|
19
|
+
|
20
|
+
it "can use two parameters" do
|
21
|
+
expect([[1, 2], [3, 4]].map(&_ + _)).to eq([3, 7])
|
22
|
+
end
|
19
23
|
end
|