type_wrapper 1.0.0 → 1.1.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
  SHA1:
3
- metadata.gz: 3cc7a72732a8d341ebe0917de96ee0237ea2268b
4
- data.tar.gz: 044533cae779e823129a9270e78aa7e423a1e072
3
+ metadata.gz: 1b0ccfe16ab90f4f07518274c6845ac0055fe7da
4
+ data.tar.gz: 727a2f9f2f1bd9780fdc8669cd0db03c16ff5f4b
5
5
  SHA512:
6
- metadata.gz: a0a8c11c5ecdcce5a871a5d8af79cc0605995ca05b2a2d67d4f95edeefa10d98ab852754a04a6c8af208182bee6aa88db5fba26337b9b666b416ae7904ec0567
7
- data.tar.gz: bdd466147398fc896c43e49cff7253620ce6b62c22467d0c0fc932d24ec30145ae9f29d6ca58e11fe7a5c6f601ae54df079187ec486029fe205dea5032366dc3
6
+ metadata.gz: a0a6bc7d172fe270878473fed419bcc73a39c8a0dece6428f09c727ce7b93afd4c895344f44dde317a0e50fbdeb0a2315d0a5c92ad1920c15357229437bbfcd7
7
+ data.tar.gz: d4fe98670eab3f07a487c49d16f079f3b1e522581c7890e551dd138e274d5634a08838cd8beb31ad662019c7bf0b9c98c6eda8ebfacf5ba1a0a99e4a528f7ff7
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # TypeWrapper
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/type_wrapper.svg)](https://badge.fury.io/rb/type_wrapper)
4
+
3
5
  Delegator pattern in Ruby without object schizophrenia. Because Object#extend at runtime is evil.
4
6
 
5
7
  ## Installation
@@ -1,3 +1,3 @@
1
1
  module TypeWrapper
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/type_wrapper.rb CHANGED
@@ -23,10 +23,10 @@ module TypeWrapper
23
23
  include TypeWrapper
24
24
  const_set :Type, type
25
25
  const_set :BEHAVIORS, behaviors
26
+ const_set :Trait, Module.new { refine(type) { prepend(*behaviors.reverse) } }
26
27
  forwarding = behaviors.flat_map(&:public_instance_methods) - public_instance_methods
27
28
  code = forwarding.uniq.map { |meth| "def %{meth}(*args, &block) __getobj__.%{meth}(*args, &block) end" % { meth: meth } }
28
- code.unshift "using Module.new { refine(Type) { prepend *BEHAVIORS.reverse } }"
29
- class_eval code.join('; ')
29
+ class_eval code.unshift("using Trait").join("\n")
30
30
  end
31
31
  end
32
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: type_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ritchie Paul Buitre
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-20 00:00:00.000000000 Z
11
+ date: 2017-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler