lab419_core 0.0.3 → 0.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.
- 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
|