chainedexpressions 0.3 → 0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a0080d860307a431d8e18cb9960c58e891b2e8ec
4
- data.tar.gz: c14be71435652bf0f82c42dc9b1b5fe70461e37e
3
+ metadata.gz: b0773f4cb89274a4d8ef86a6a4e29ebfcebaacfd
4
+ data.tar.gz: 95ac859e87f07712c26d3effc3acec301dd343e7
5
5
  SHA512:
6
- metadata.gz: 9744d7c4d860e29fc650c1baa30aecc2cbd96ce19983e57d0c12c8843f0ad3df313a6fec06c89d876fb77465d767e556cb81e82072909757632ac2590d0cba99
7
- data.tar.gz: c4b5aa883017e5d0d9becfbed909997af89fb29a2148332a0b0925b71060e364edbffbb66497e5bdc1f00670cbf66dddf1f322af598c9489dc32cb4c8f23715a
6
+ metadata.gz: 85de6a2bb14a45933ed2e3831b9eeff16162f9ae7e9936215c5031fb7be4e9b1251f15e32c4c3f6e4e7a4e9d2fc608e375e6f79b4605f9377dc70066286ca670
7
+ data.tar.gz: f488abafdcfc2bf5bdb04d9eb373145cfd3315a1207617cab6e03066d8f493b1fc93e9e43f76bb718b75735895df45401863c19f31c8a08c7479dfc288e89647
@@ -1,61 +1,61 @@
1
- #--
2
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
3
- # Version 2, December 2004
4
- #
5
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
- # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
7
- #
8
- # 0. You just DO WHAT THE FUCK YOU WANT TO.
9
- #++
10
-
11
- module ChainedExpressions
12
- $operators = {
13
- :< => :lt,
14
- :<= => :lte,
15
- :>= => :gte,
16
- :> => :gt
17
- }
18
-
19
- refine Numeric do
20
- def eval_expression(op, n)
21
- case op
22
- when :< then (self <=> n) == -1
23
- when :<= then (self <=> n) == -1 || (self <=> n) == 0
24
- when :>= then (self <=> n) == 0 || (self <=> n) == 1
25
- when :> then (self <=> n) == 1
26
- end
27
- end
28
- end
29
-
30
- %w(TrueClass FalseClass).each { |c|
31
- eval <<-EOM
32
- refine #{c} do
33
- $operators.each { |op, o|
34
- define_method o do |n|
35
- prev = $prev
36
- $prev = n
37
- prev.eval_expression op, n
38
- end
39
-
40
- alias_method op, o
41
- }
42
- end
43
- EOM
44
- }
45
-
46
- %w(Fixnum Float Bignum).each { |c|
47
- eval <<-EOM
48
- refine #{c} do
49
- $operators.each { |op, o|
50
- define_method o do |n|
51
- $prev = n
52
- eval_expression op, n
53
- end
54
-
55
- alias_method op, o
56
- }
57
- end
58
- EOM
59
- }
60
- end
61
-
1
+ #--
2
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
3
+ # Version 2, December 2004
4
+ #
5
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
+ # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
7
+ #
8
+ # 0. You just DO WHAT THE FUCK YOU WANT TO.
9
+ #++
10
+
11
+ module ChainedExpressions
12
+ @@operators = {
13
+ :< => :lt,
14
+ :<= => :lte,
15
+ :>= => :gte,
16
+ :> => :gt
17
+ }
18
+
19
+ refine Numeric do
20
+ def eval_expression(op, n)
21
+ case op
22
+ when :< then (self <=> n) == -1
23
+ when :<= then (self <=> n) == -1 || (self <=> n) == 0
24
+ when :>= then (self <=> n) == 0 || (self <=> n) == 1
25
+ when :> then (self <=> n) == 1
26
+ end
27
+ end
28
+ end
29
+
30
+ %w(TrueClass FalseClass).each { |c|
31
+ eval <<-EOM
32
+ refine #{c} do
33
+ @@operators.each { |op, o|
34
+ define_method o do |n|
35
+ prev = @@prev
36
+ @@prev = n
37
+ prev.eval_expression op, n
38
+ end
39
+
40
+ alias_method op, o
41
+ }
42
+ end
43
+ EOM
44
+ }
45
+
46
+ %w(Fixnum Float Bignum).each { |c|
47
+ eval <<-EOM
48
+ refine #{c} do
49
+ @@operators.each { |op, o|
50
+ define_method o do |n|
51
+ @@prev = n
52
+ eval_expression op, n
53
+ end
54
+
55
+ alias_method op, o
56
+ }
57
+ end
58
+ EOM
59
+ }
60
+ end
61
+
@@ -1,13 +1,13 @@
1
- #--
2
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
3
- # Version 2, December 2004
4
- #
5
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
- # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
7
- #
8
- # 0. You just DO WHAT THE FUCK YOU WANT TO.
9
- #++
10
-
11
- module ChainedExpressions
12
- VERSION = '0.3'
1
+ #--
2
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
3
+ # Version 2, December 2004
4
+ #
5
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
+ # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
7
+ #
8
+ # 0. You just DO WHAT THE FUCK YOU WANT TO.
9
+ #++
10
+
11
+ module ChainedExpressions
12
+ VERSION = '0.4'
13
13
  end
@@ -1,37 +1,36 @@
1
- #--
2
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
3
- # Version 2, December 2004
4
- #
5
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
- # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
7
- #
8
- # 0. You just DO WHAT THE FUCK YOU WANT TO.
9
- #++
10
-
11
- require 'rspec'
12
- require 'chainedexpressions'
13
- using ChainedExpressions
14
-
15
- describe ChainedExpressions do
16
- it 'can evaluate true expressions' do
17
- (20 < 25 ).should be true
18
- (20 < 25 < 30 ).should be true
19
- (35 > 30 > 25 > 20).should be true
20
-
21
- (20 <= 25 <= 30 <= 30 <= 35).should be true
22
- (35 >= 30 >= 30 >= 25 >= 20).should be true
23
- (20.5 >= 10 >= 2.5 >= 2.5 ).should be true
24
- end
25
-
26
- it 'can evaluate false expressions' do
27
- (30 < 25 ).should be false
28
- (30 < 25 < 20 ).should be false
29
- (20 > 25 > 30 > 35).should be false
30
-
31
- (35 <= 30 <= 30 <= 25 <= 20).should be false
32
- (20 >= 25 >= 30 >= 30 >= 35).should be false
33
- (20.5 >= 10 >= 2.5 >= 3.5 ).should be false
34
-
35
- ([1, 2])
36
- end
1
+ #! /usr/bin/env ruby
2
+ #--
3
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
4
+ # Version 2, December 2004
5
+ #
6
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
7
+ # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
8
+ #
9
+ # 0. You just DO WHAT THE FUCK YOU WANT TO.
10
+ #++
11
+
12
+ require 'rubygems'
13
+ require 'chainedexpressions'
14
+ using ChainedExpressions
15
+
16
+ describe ChainedExpressions do
17
+ it 'can evaluate true expressions' do
18
+ (20 < 25 ).should be true
19
+ (20 < 25 < 30 ).should be true
20
+ (35 > 30 > 25 > 20).should be true
21
+
22
+ (20 <= 25 <= 30 <= 30 <= 35).should be true
23
+ (35 >= 30 >= 30 >= 25 >= 20).should be true
24
+ (20.5 >= 10 >= 2.5 >= 2.5 ).should be true
25
+ end
26
+
27
+ it 'can evaluate false expressions' do
28
+ (30 < 25 ).should be false
29
+ (30 < 25 < 20 ).should be false
30
+ (20 > 25 > 30 > 35).should be false
31
+
32
+ (35 <= 30 <= 30 <= 25 <= 20).should be false
33
+ (20 >= 25 >= 30 >= 30 >= 35).should be false
34
+ (20.5 >= 10 >= 2.5 >= 3.5 ).should be false
35
+ end
37
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chainedexpressions
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: '0.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Giovanni Capuano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-30 00:00:00.000000000 Z
11
+ date: 2014-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -47,7 +47,7 @@ files:
47
47
  - lib/chainedexpressions/chainedexpressions.rb
48
48
  - lib/chainedexpressions/version.rb
49
49
  - lib/chainedexpressions.rb
50
- - spec/chainedexpressions_spec.rb
50
+ - tests/chainedexpressions_spec.rb
51
51
  homepage: https://github.com/RoxasShadow
52
52
  licenses:
53
53
  - WTFPL
@@ -73,4 +73,4 @@ signing_key:
73
73
  specification_version: 4
74
74
  summary: Chained expressions in ruby
75
75
  test_files:
76
- - spec/chainedexpressions_spec.rb
76
+ - tests/chainedexpressions_spec.rb