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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/algebrick.rb +16 -0
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9166938f13bced97656434796a7d426cf19a7396
4
- data.tar.gz: eea50d70bef296d2d9f7ad18554ddae07d771eb8
3
+ metadata.gz: bf3eb8ddaa209e039ffb7f1c70a6e72f5598b1c9
4
+ data.tar.gz: ebbd5d21d561f26c066b8a11da24620d24ec1b04
5
5
  SHA512:
6
- metadata.gz: 7a6f6620de67a7c6dc50d28874996e2a1596fdf590bcfa71158e42fc648a2f0c70ae7e39c81b84281b0a2abe7262e33fcb88997ed78ca04321d3f66201d8f71a
7
- data.tar.gz: 466e978ff88c63b24378c42b633def34e90cd60cc6ac79938b46e705f2d4ed5ddb2b9edd6fcdd2dc3c3dabe62afdc8270fa9c78e10f15a63b00c2d69c7d5040a
6
+ metadata.gz: 1aadc9051adf421099ef8e17878ae4d03fc9eb8dd91ecb430ac65fecaa999d54b26ea64844a012da0f8a43aa13bf6a2e0eabb5620ed84aef2dc6e88c82f9691e
7
+ data.tar.gz: 6aee2bb9d8ae13b4f71e61bfa40baa51696d4be1f45ce8a9f0f0898b628aee2f3234c9b92a86c700098ee9d86d8d9512f0d4e68c24f582398506392a6deddddf
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
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.2
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-29 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest