victory 0.1.0 → 0.2.0

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
  SHA256:
3
- metadata.gz: 7b7911f5ef5b43e51fbcdb1f09f1598dfaca614ae2b3b334a38a5a7505240161
4
- data.tar.gz: 3ec11bea6dab851b235541fde2ab18f5fdd4f94cac911f581d59e4101aa44418
3
+ metadata.gz: 00bcbcbc7b4fc5a87806420fd5be8e30e7719ce1212b6b674e08d9ace7e72fdd
4
+ data.tar.gz: 31ee4514bcb2997b72aee5ea38eec75630ad0181c870ee79d3d16dab0e41d709
5
5
  SHA512:
6
- metadata.gz: 44f1b32aab5d9ee663207c93550a0304416d028988becb1412e6d558ca60e10a5a3190ef5f05aabbd2f97e89220551250e54969ac20de4eccd4ab7497d64d3ba
7
- data.tar.gz: 540e979b64c59f3ba9d539df94dec2a98c770dbb9990dcb5b6a734780a9a7e8c6bca21b02058c61c404a37b45c7e7989670e24e0355d060c57e465133a783be2
6
+ metadata.gz: 2c141a43232ac8012bf7add4eb505c19f6e4dd378b7fb808319646cf1e45d6156bf2f3b47529cf73aa7cbdb8eb464264783b015b95a1f01c33efe1e3bd09c352
7
+ data.tar.gz: 29c366ee9083993a489f6263a630ac16e8e3dd4d0c653bebce97ce996adfeda2faed40deacbd7b495f89387a791bf8a8881ff73afc2c5762815e5270e52f88be
data/USAGE.md CHANGED
@@ -4,15 +4,50 @@ In this markdown you will see the usage of all the datastructures and algorithms
4
4
 
5
5
  # Data Structures
6
6
 
7
+ * [Ranges and Loops](#ranges)
8
+ * [Complex](#complex)
7
9
  * [Array](#array)
8
10
  * [Hash](#hash)
9
- * [Set](#set)
10
11
  * [Struct](#struct)
12
+ * [Matrix](#matrix)
13
+ * [Set](#set)
11
14
  * [OpenStruct](#openstruct)
12
15
  * [Tuple](#tuple)
13
16
  * [Graph](#graph)
14
17
  * [IOHelpers](#io-helpers)
15
18
 
19
+ <a name="ranges" />
20
+
21
+ ## Ranges and loops
22
+
23
+ ```ruby
24
+ 5.times { |x| puts x } # displays numbers from 0 to 5
25
+ 3.upto(7) { |x| puts x } # displays numbers from 3 to 7
26
+ 5.downto(3) { |x| puts x } # displays numbers from 5 to 3
27
+ 0.step(10, 2) { |x| puts x } # displays 0, 2, 4, 6, 8, 10
28
+ 12.step(6, -2) { |x| puts x } # displays 12, 10, 8, 6
29
+ (0...1).step(0.1) { |x| puts x } # displays 0.0, 0.1, ... , 0.8, 0.9
30
+ loop { |x| puts x } # infinite loop
31
+ ```
32
+
33
+ <a name="complex" />
34
+
35
+ ## Complex
36
+
37
+ ```ruby
38
+ a = 1+2i
39
+ # => (1+2i)
40
+ a.real
41
+ # => 1
42
+ a.imag
43
+ # => 2
44
+ a.rect
45
+ # => [1, 2]
46
+ r, i = a.rect
47
+ r + i.i
48
+ # => (1+2i)
49
+ ```
50
+
16
51
  <a name="array" />
17
52
 
18
53
  ## Array
@@ -58,23 +93,6 @@ a[1]
58
93
  # => 2
59
94
  ```
60
95
 
61
- <a name="set" />
62
-
63
- ## Set
64
-
65
- ```ruby
66
- require 'set'
67
-
68
- s = Set.new
69
- # => #<Set: {}>
70
- s << :a
71
- # => #<Set: {:a}>
72
- s << :a
73
- # => #<Set: {:a}>
74
- s << :b
75
- # => #<Set: {:a, :b}>
76
- ```
77
-
78
96
  <a name="struct" />
79
97
 
80
98
  ## Struct
@@ -92,7 +110,7 @@ my_face.hair
92
110
  my_face.nose
93
111
  # NoMethodError: undefined method `nose' for #<struct Face hair=:blond, eyes=:blue, skin=:awesome>
94
112
  my_face[:nose]
95
- # NameError: no member 'nose' in struc
113
+ # NameError: no member 'nose' in struct
96
114
 
97
115
 
98
116
  class PayChecks < Struct.new(:week1, :week2, :week3, :week4)
@@ -107,13 +125,45 @@ pay_checks.total
107
125
  # => 1245
108
126
  ```
109
127
 
128
+ For the following data structures you will need to include `Containers` or prefix every container with it.
129
+
130
+ <a name="matrix" />
131
+
132
+ ## Matrix
133
+
134
+ ```ruby
135
+ m = Matrix[[1, 2, 3], [3, 4, 5], [6, 7, 8]]
136
+ # => Matrix[[1, 2, 3], [3, 4, 5], [6, 7, 8]]
137
+ m[0,0]
138
+ # => 1
139
+ m[1,1]
140
+ # => 4
141
+ m.row(2)
142
+ # => Vector[6, 7, 8]
143
+ m.column(1)
144
+ # => Vector[2, 4, 7]
145
+ ```
146
+
147
+ <a name="set" />
148
+
149
+ ## Set
150
+
151
+ ```ruby
152
+ s = Set.new
153
+ # => #<Set: {}>
154
+ s << :a
155
+ # => #<Set: {:a}>
156
+ s << :a
157
+ # => #<Set: {:a}>
158
+ s << :b
159
+ # => #<Set: {:a, :b}>
160
+ ```
161
+
110
162
  <a name="openstruct" />
111
163
 
112
164
  ## OpenStruct
113
165
 
114
166
  ```ruby
115
- require 'ostruct'
116
-
117
167
  x = OpenStruct.new
118
168
  # => #<OpenStruct>
119
169
 
@@ -137,9 +187,7 @@ x[:b] = 123
137
187
  # => 123
138
188
  x
139
189
  # => #<OpenStruct a=0, b=123>
140
- ```
141
-
142
- For the following datastructures you will need to include `Containers` or prefix every container with it.
190
+ ```
143
191
 
144
192
  <a name="tuple" />
145
193
 
@@ -241,4 +289,4 @@ Writer.file("b", a, line_sep: "\n", col_sep: ' ', mapper: ->x {"0,#{x}"})
241
289
 
242
290
  * https://github.com/kumar91gopi/Algorithms-and-Data-Structures-in-Ruby/
243
291
  * https://github.com/sagivo/algorithms
244
- * https://github.com/SciRuby/rb-gsl
292
+ * https://github.com/SciRuby/
@@ -1,5 +1,6 @@
1
1
  module Containers
2
2
  class Tuple
3
+ include Enumerable
3
4
  @elements = []
4
5
  def self.[](*elements)
5
6
  new(elements)
@@ -13,8 +14,8 @@ module Containers
13
14
  @elements[idx]
14
15
  end
15
16
 
16
- def to_a
17
- @elements.to_a
17
+ def each(&block)
18
+ @elements.each(&block)
18
19
  end
19
20
 
20
21
  def to_s
@@ -1,3 +1,3 @@
1
1
  module Victory
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/victory.rb CHANGED
@@ -29,3 +29,10 @@ require 'containers/list'
29
29
  require 'io_helpers/reader'
30
30
  require 'io_helpers/writer'
31
31
  require 'include_rgl'
32
+
33
+ require 'set'
34
+ Containers::Set = Set
35
+ require 'ostruct'
36
+ Containers::OpenStruct = OpenStruct
37
+ require 'matrix'
38
+ Containers::Matrix = Matrix
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: victory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arnold Szederjesi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-21 00:00:00.000000000 Z
11
+ date: 2020-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler