retroactive_module_inclusion 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/README.rdoc CHANGED
@@ -13,8 +13,8 @@ behaviour hurts the least surprise principle, specially because if K is a
13
13
  class, then
14
14
  K.class_eval { include M }
15
15
  _does_ make all methods of M available to all classes which had previously
16
- inherited it. This inconsistency stems from implementation efficienty concerns
17
- and characterize a limitation in Ruby's object model (see {Dynamic Module Include Problem}[http://eigenclass.org/hiki/The+double+inclusion+problem]).
16
+ inherited it. This inconsistency stems from efficienty concerns and characterize
17
+ a limitation in Ruby's object model (see {Dynamic Module Include Problem}[http://eigenclass.org/hiki/The+double+inclusion+problem]).
18
18
 
19
19
  == AN EXAMPLE OF THE "DYNAMIC MODULE INCLUDE" PROBLEM
20
20
 
@@ -22,8 +22,7 @@ Let's begin by defining a one-method module:
22
22
 
23
23
  module Stats
24
24
  def mean
25
- n = 1
26
- inject {|s,k| n += 1 ; s + k }.to_f / count
25
+ inject(&:+) / count.to_f
27
26
  end
28
27
  end
29
28
 
data/Rakefile CHANGED
@@ -3,31 +3,28 @@
3
3
  require 'rubygems'
4
4
  require 'hoe'
5
5
 
6
- # Hoe.plugin :compiler
7
- # Hoe.plugin :cucumberfeatures
8
- # Hoe.plugin :gem_prelude_sucks
9
- # Hoe.plugin :inline
10
- # Hoe.plugin :manifest
11
- # Hoe.plugin :newgem
12
- # Hoe.plugin :racc
13
- # Hoe.plugin :rubyforge
14
6
  # Hoe.plugin :website
15
7
 
16
8
  Hoe.spec 'retroactive_module_inclusion' do
17
- # HEY! If you fill these out in ~/.hoe_template/Rakefile.erb then
18
- # you'll never have to touch them again!
19
- # (delete this comment too, of course)
20
-
21
9
  developer('Adriano Mitre', 'adriano.mitre@gmail.com')
22
10
 
23
- self.version = '1.0.1'
11
+ self.version = '1.0.2'
24
12
 
25
13
  self.readme_file = 'README.rdoc'
26
14
  self.history_file = 'History.rdoc'
27
15
  self.extra_rdoc_files += ['README.rdoc', 'History.rdoc']
28
16
  self.extra_rdoc_files << ['Wishlist.rdoc'] if File.exist? 'Wishlist.rdoc'
29
17
 
30
- # self.rubyforge_name = 'retroactive_module_inclusionx' # if different than 'retroactive_module_inclusion'
18
+ self.description = <<EOS
19
+ This gem circumvents the "dynamic module include" (aka "double inclusion")
20
+ problem, which is the fact that M.module_eval { include N } does not make
21
+ the methods of module N available to modules and classes which had included
22
+ module M beforehand, only to the ones that include it thereafter. This
23
+ behaviour hurts the least surprise principle, specially because if K is a
24
+ class, then K.class_eval { include M } *does* make all methods of M available
25
+ to all classes which had previously inherited it.
26
+ EOS
27
+
31
28
  end
32
29
 
33
30
  # vim: syntax=ruby
@@ -3,8 +3,7 @@ require File.expand_path("../../lib/retroactive_module_inclusion", __FILE__)
3
3
 
4
4
  module Stats
5
5
  def mean
6
- n = 1
7
- inject {|s,k| n += 1 ; s + k }.to_f / count
6
+ inject(&:+) / count.to_f
8
7
  end
9
8
  end
10
9
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 0
8
- - 1
9
- version: 1.0.1
8
+ - 2
9
+ version: 1.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Adriano Mitre
@@ -35,7 +35,7 @@ cert_chain:
35
35
  9u8N6mQNneIVRh6Xfdko/Q==
36
36
  -----END CERTIFICATE-----
37
37
 
38
- date: 2011-01-20 00:00:00 -02:00
38
+ date: 2011-01-21 00:00:00 -02:00
39
39
  default_executable:
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
@@ -53,18 +53,15 @@ dependencies:
53
53
  version: 2.8.0
54
54
  type: :development
55
55
  version_requirements: *id001
56
- description: |-
56
+ description: |
57
57
  This gem circumvents the "dynamic module include" (aka "double inclusion")
58
- problem, which is the fact that
59
- M.module_eval { include N }
60
- does not make the methods of module N available to modules and classes which had
61
- included module M beforehand, only to the ones that include it thereafter. This
58
+ problem, which is the fact that M.module_eval { include N } does not make
59
+ the methods of module N available to modules and classes which had included
60
+ module M beforehand, only to the ones that include it thereafter. This
62
61
  behaviour hurts the least surprise principle, specially because if K is a
63
- class, then
64
- K.class_eval { include M }
65
- _does_ make all methods of M available to all classes which had previously
66
- inherited it. This inconsistency stems from implementation efficienty concerns
67
- and characterize a limitation in Ruby's object model (see {Dynamic Module Include Problem}[http://eigenclass.org/hiki/The+double+inclusion+problem]).
62
+ class, then K.class_eval { include M } *does* make all methods of M available
63
+ to all classes which had previously inherited it.
64
+
68
65
  email:
69
66
  - adriano.mitre@gmail.com
70
67
  executables: []
metadata.gz.sig CHANGED
Binary file