ruby-mext 0.10.1 → 0.11.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: 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