double 0.1.0 → 0.1.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.
data/README.md CHANGED
@@ -6,16 +6,17 @@
6
6
 
7
7
  ## Description
8
8
 
9
- Something can be [familiar, yet foreign at once][uncanny]—particularly when metaprogramming.
9
+ Something can be [familiar, yet foreign at once][uncanny].
10
10
 
11
- **Double** allows you to use a constant even before it is defined.
11
+ **Double** allows you to use a constant before it is defined when
12
+ metaprogramming.
12
13
 
13
14
  ## Usage
14
15
 
15
16
  ```ruby
16
17
  class Foo
17
18
  extend Double
18
- Bar
19
+ Bar # nothing raised
19
20
  end
20
21
  ```
21
22
 
@@ -17,16 +17,13 @@ module Double
17
17
  @name = name
18
18
  end
19
19
 
20
- def _
21
- @_ ||= ::Kernel.const_get @name
22
- end
23
-
24
20
  def method_missing(mth, *args, &blk)
25
- if _.respond_to? mth
21
+ @klass ||= ::Kernel.eval "::#{@name}"
22
+ if @klass.respond_to? mth
26
23
  (class << self; self; end).instance_eval do
27
- def_delegator :@_, mth
24
+ def_delegator :@klass, mth
28
25
  end
29
- @_.send mth, *args, &blk
26
+ @klass.send mth, *args, &blk
30
27
  else
31
28
  super
32
29
  end
@@ -1,3 +1,3 @@
1
1
  module Double
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -15,9 +15,10 @@ class TestDouble < Test::Unit::TestCase
15
15
 
16
16
  Foo.extend Double
17
17
  Foo.class_eval 'self.double = Bar'
18
- assert_raise NameError do
18
+ e = assert_raise NameError do
19
19
  Foo.double.baz
20
20
  end
21
+ assert_nil e.message.match /Kernel::Bar/
21
22
 
22
23
  Kernel.const_set :Bar, Module.new
23
24
  assert_raise NoMethodError do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: double
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-17 00:00:00.000000000 Z
12
+ date: 2012-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake