ruby-mext 0.10.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 333432c69cb5c931d71693a145648130e816cdfb17bc5a2b72965fcee4e6760c
4
- data.tar.gz: 3b2d6f694370f4864702ff8e3c7d46fbf3343438cb8f6475c430471a4007afb2
3
+ metadata.gz: 64e11ffcc234b7abdb7703a124f0e4416cb7acc5f9352c80250bbebf41104a0b
4
+ data.tar.gz: 7068eec9eab837ecfbf2597b3cb21f1fe24041b60840bb11b61ef1465395ab04
5
5
  SHA512:
6
- metadata.gz: ec7603a7aef497e79f6ac624f5ed3a988f0ab1842f2520739ef0ef863ca5e3ebf29dec52d790e119537cf1f4168c98cddbee1a8dc42c380a6ddf9bc3f32f8db5
7
- data.tar.gz: 955887187d5738f7470b9d1999d412156d76f5ae561c8db89d9a912649375e9e1c51aff040c1e07447977e1b7f09e84feaa3487cbd81b7916b38e32fcfe0d9d8
6
+ metadata.gz: 47104e8b993664934ef6b51d4cdc1a75e7be481d80191a7871137a09c7e590e1d97aca34903dd9d2ab70651767c76832387a717d0c976e52a24719173bf47682
7
+ data.tar.gz: 4ccc8d7767bc5bc1c831750e0920ea2e79b12c682a8fae07c7a3f5466ed0fa9a553fa91b937bcc9aeb4ef3a526cdd11e43a0f772213d0ec8d863943cbeb2a640
@@ -0,0 +1,26 @@
1
+ class Array
2
+
3
+ class SizeMismatch < StandardError; end
4
+
5
+ DOT_OPERATIONS =
6
+ {
7
+ :dotplus => :+,
8
+ :dotminus => :-,
9
+ :dotmul => :*,
10
+ :dotdiv => :/,
11
+ :dotmod => :%,
12
+ :dotpow => :**,
13
+ }
14
+
15
+ DOT_OPERATIONS.each { |op, m| define_method(op) { |other| dotop(m, other) } }
16
+
17
+ protected
18
+
19
+ def dotop(op, other)
20
+ raise SizeMismatch unless self.size == other.size
21
+ res = []
22
+ self.each_index { |idx| res << (self[idx].send(op, other[idx])) }
23
+ res
24
+ end
25
+
26
+ end
data/lib/mext/array.rb CHANGED
@@ -7,4 +7,5 @@ end
7
7
  %w(
8
8
  vectorize
9
9
  choose
10
+ dotop
10
11
  ).each { |f| require File.join(Mext::ARRAY_PATH, f) }
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mext
2
- VERSION = '0.10.1'
2
+ VERSION = '0.11.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-mext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicola Bernardini
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-23 00:00:00.000000000 Z
11
+ date: 2019-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,6 +116,7 @@ files:
116
116
  - lib/mext.rb
117
117
  - lib/mext/array.rb
118
118
  - lib/mext/array/choose.rb
119
+ - lib/mext/array/dotop.rb
119
120
  - lib/mext/array/vectorize.rb
120
121
  - lib/mext/exceptions.rb
121
122
  - lib/mext/math.rb