algebrick 0.3.2 → 0.3.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/VERSION +1 -1
- data/lib/algebrick.rb +16 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf3eb8ddaa209e039ffb7f1c70a6e72f5598b1c9
|
4
|
+
data.tar.gz: ebbd5d21d561f26c066b8a11da24620d24ec1b04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aadc9051adf421099ef8e17878ae4d03fc9eb8dd91ecb430ac65fecaa999d54b26ea64844a012da0f8a43aa13bf6a2e0eabb5620ed84aef2dc6e88c82f9691e
|
7
|
+
data.tar.gz: 6aee2bb9d8ae13b4f71e61bfa40baa51696d4be1f45ce8a9f0f0898b628aee2f3234c9b92a86c700098ee9d86d8d9512f0d4e68c24f582398506392a6deddddf
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.3
|
data/lib/algebrick.rb
CHANGED
@@ -143,6 +143,16 @@ module Algebrick
|
|
143
143
|
raise "no match for (#{value.class}) '#{value}' by any of #{cases.map(&:first).join ', '}"
|
144
144
|
end
|
145
145
|
|
146
|
+
def on(matcher, value = nil, &block)
|
147
|
+
matcher = if matcher.is_a? Matchers::Abstract
|
148
|
+
matcher
|
149
|
+
else
|
150
|
+
matcher.to_m
|
151
|
+
end
|
152
|
+
raise ArgumentError, 'only one of block or value can be supplied' if block && value
|
153
|
+
[matcher, value || block]
|
154
|
+
end
|
155
|
+
|
146
156
|
# TODO #match! raise when match is not complete on a given type
|
147
157
|
|
148
158
|
private
|
@@ -828,6 +838,8 @@ module Algebrick
|
|
828
838
|
return self, block
|
829
839
|
end
|
830
840
|
|
841
|
+
alias_method :when, :case
|
842
|
+
|
831
843
|
def >(block)
|
832
844
|
return self, block
|
833
845
|
end
|
@@ -873,6 +885,10 @@ module Algebrick
|
|
873
885
|
end
|
874
886
|
end
|
875
887
|
|
888
|
+
def to_a
|
889
|
+
assigns
|
890
|
+
end
|
891
|
+
|
876
892
|
def ===(other)
|
877
893
|
matching?(other).tap { |matched| @value = other if (@matched = matched) }
|
878
894
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: algebrick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Petr Chalupa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11
|
11
|
+
date: 2013-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|