lab419_core 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/lab419/core/integer/operators.rb +22 -12
- data/lib/lab419/core/memoization.rb +25 -0
- data/lib/lab419/core/version.rb +1 -1
- metadata +19 -18
@@ -6,31 +6,41 @@ class Integer
|
|
6
6
|
def succ
|
7
7
|
lambda{ |a| a.succ }
|
8
8
|
end
|
9
|
-
|
10
|
-
|
9
|
+
|
10
|
+
Summer = -> *args do
|
11
11
|
args.reduce{ |a,b| a + b }
|
12
12
|
end
|
13
|
-
end
|
14
|
-
|
15
|
-
|
13
|
+
def sum; Summer end
|
14
|
+
alias_method :+, :sum
|
15
|
+
|
16
|
+
Differ = -> a, b do
|
16
17
|
a - b
|
17
18
|
end
|
18
|
-
|
19
|
-
def
|
19
|
+
|
20
|
+
def diff; Differ end
|
21
|
+
alias_method :-, :diff
|
22
|
+
|
23
|
+
Multiplier =
|
20
24
|
-> *args do
|
21
25
|
args.reduce{ |a,b| a * b }
|
22
26
|
end
|
23
|
-
end
|
24
|
-
|
27
|
+
def prod; Multiplier end
|
28
|
+
alias_method :*, :prod
|
29
|
+
|
30
|
+
Divisor =
|
25
31
|
-> a, b do
|
26
32
|
a / b
|
27
33
|
end
|
28
|
-
end
|
29
|
-
|
34
|
+
def div; Divisor end
|
35
|
+
alias_method :/, :div
|
36
|
+
|
37
|
+
Modulator =
|
30
38
|
-> a, b do
|
31
39
|
a % b
|
32
40
|
end
|
33
|
-
end
|
41
|
+
def mod; Modulator end
|
42
|
+
alias_method :%, :mod
|
43
|
+
|
34
44
|
end # class << self
|
35
45
|
end # class Proc
|
36
46
|
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class Module
|
2
|
+
|
3
|
+
def memoize *method_symbols
|
4
|
+
method_symbols.each do | method_symbol |
|
5
|
+
mthd = instance_method method_symbol
|
6
|
+
remove_method method_symbol
|
7
|
+
# The following two variables are the indicators it rests
|
8
|
+
# to be seen if including blocks into the memoization is
|
9
|
+
# indeed a good idea!
|
10
|
+
already_called = {}
|
11
|
+
results = {}
|
12
|
+
define_method method_symbol do |*args, &blk|
|
13
|
+
ac = already_called[[args,blk]]
|
14
|
+
# p called_with: [args,blk], ac?: ac
|
15
|
+
return results[[args,blk]] if already_called[[args,blk]]
|
16
|
+
|
17
|
+
already_called[[args,blk]] = true
|
18
|
+
# p set_ac: already_called[[args,blk]], for: [args,blk]
|
19
|
+
results[[args,blk]] = mthd.bind( self ).(*args, &blk)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
end # class Module
|
data/lib/lab419/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lab419_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-05-06 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby-debug19
|
16
|
-
requirement: &
|
16
|
+
requirement: &74427640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.11'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *74427640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &74427380 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.2.2
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *74427380
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &74427130 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.9.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *74427130
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: maruku
|
49
|
-
requirement: &
|
49
|
+
requirement: &74426860 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.6.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *74426860
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: wirble
|
60
|
-
requirement: &
|
60
|
+
requirement: &74415330 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,22 +65,23 @@ dependencies:
|
|
65
65
|
version: 0.1.3
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *74415330
|
69
69
|
description: Coming Soon
|
70
70
|
email: robert.dober@gmail.com
|
71
71
|
executables: []
|
72
72
|
extensions: []
|
73
73
|
extra_rdoc_files: []
|
74
74
|
files:
|
75
|
-
- lib/lab419/core/proc.rb
|
76
|
-
- lib/lab419/core/kernel.rb
|
77
|
-
- lib/lab419/core/integer.rb
|
78
|
-
- lib/lab419/core/version.rb
|
79
75
|
- lib/lab419/core/object.rb
|
76
|
+
- lib/lab419/core/array/flatten_once.rb
|
80
77
|
- lib/lab419/core/integer/operators.rb
|
81
78
|
- lib/lab419/core/integer/instance_methods.rb
|
79
|
+
- lib/lab419/core/memoization.rb
|
80
|
+
- lib/lab419/core/kernel.rb
|
81
|
+
- lib/lab419/core/proc.rb
|
82
82
|
- lib/lab419/core/hash.rb
|
83
|
-
- lib/lab419/core/
|
83
|
+
- lib/lab419/core/version.rb
|
84
|
+
- lib/lab419/core/integer.rb
|
84
85
|
- LICENSE
|
85
86
|
- README.md
|
86
87
|
homepage: https://github.com/RobertDober/lab419
|
@@ -104,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
105
|
version: '0'
|
105
106
|
requirements: []
|
106
107
|
rubyforge_project:
|
107
|
-
rubygems_version: 1.8.
|
108
|
+
rubygems_version: 1.8.11
|
108
109
|
signing_key:
|
109
110
|
specification_version: 3
|
110
111
|
summary: Making Ruby's Core more powerfull and convinient
|