rubycube 0.3.0 → 0.3.1

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
  SHA1:
3
- metadata.gz: c136c0dc0b938dbd1ffe392203ae39781e7ebaf1
4
- data.tar.gz: 355531cf507cee9bd3c68a69e7ebe59255ef6773
3
+ metadata.gz: 6a67b0c4bfcd1f828f6f2c976dfacb893fd3447d
4
+ data.tar.gz: 2185c04360ba16d024ba0e3c4369cb27fd6ea75a
5
5
  SHA512:
6
- metadata.gz: 5064b3d52cbe81ee4429a6054d33046b279f0b6fdcb52d1667503d82e17fb6667157c1bc7ace38d7dde154388340c38dac20d2f779c02fd8241070040f56969a
7
- data.tar.gz: 2a6b3e2fa5c0282e5d2529a81c22722e57a427fa9059112fccb6edfb8a4405767ad4b92cf81acb853272cfa283b3552297386aa92ce211ca9f6bf1d76bf6dd8f
6
+ metadata.gz: 54329a70c088a60cefb0dbb060274fa4a3ef0619d2c0363bd08032d3927d0735238e319789049850f45f174f8194d312db0aea409bd02fb8b29de0a9479c655f
7
+ data.tar.gz: 7dad8733970a4a3734a55e37d3a34762112643a6f54ab7094098884d90cc5346fa1e41d00217e5990768b90df0326842ec699f9c548bae113ab4972ba33da723
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'rubycube'
5
- spec.version = '0.3.0'
5
+ spec.version = '0.3.1'
6
6
  spec.author = 'Aditya Godbole'
7
7
  spec.license = 'Artistic 2.0'
8
8
  spec.email = 'code.aa@gdbl.me'
@@ -1,5 +1,6 @@
1
1
  # run as `RUBY_CUBE_TYPECHECK= 1 ruby examples/demo.rb`
2
- require_relative '../lib/cube'
2
+ #require_relative '../lib/cube'
3
+ require 'cube'
3
4
 
4
5
  Adder = Cube.interface {
5
6
  # sum is a method that takes an array of Integer and returns an Integer
@@ -1,5 +1,6 @@
1
1
  ENV['RUBY_CUBE_TYPECHECK'] = "1"
2
- require_relative '../lib/cube'
2
+ #require_relative '../lib/cube'
3
+ require 'cube'
3
4
  EmailNotifierT = Cube.trait do
4
5
  def notify
5
6
  puts "email sent to #{email}"
@@ -13,6 +13,10 @@ module Cube
13
13
  Class.new(mod).extend(CubeMethods)
14
14
  end
15
15
 
16
+ def self.with_super(mod)
17
+ self[Class.new(mod)]
18
+ end
19
+
16
20
  class << self
17
21
  alias_method :from, :[]
18
22
  end
@@ -24,7 +24,14 @@ module Cube
24
24
  conflicts = public_instance_methods & mod.public_instance_methods
25
25
  errors = conflicts.map { |c|
26
26
  meth = mod.instance_method(c)
27
- { meth: meth, owner: meth.owner } unless meth.owner.is_a?(Class)
27
+ if meth.owner.is_a?(Class)
28
+ if meth.owner == mod.superclass
29
+ module_exec { remove_method(c) }
30
+ end
31
+ nil
32
+ else
33
+ { meth: meth, owner: meth.owner }
34
+ end
28
35
  }.compact
29
36
  unless errors.empty?
30
37
  message = "\n" + errors.map { |e| e[:meth].to_s }.join("\n")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubycube
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aditya Godbole
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - certs/djberg96_pub.pem
12
- date: 2016-08-05 00:00:00.000000000 Z
12
+ date: 2016-11-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -125,7 +125,6 @@ files:
125
125
  - lib/cube/interfaces.rb
126
126
  - lib/cube/toplevel.rb
127
127
  - lib/cube/traits.rb
128
- - rubycube-0.2.1.gem
129
128
  - test/test_interface.rb
130
129
  homepage: http://github.com/adityagodbole/rubycube
131
130
  licenses:
Binary file