facade 1.0.3 → 1.0.4
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/CHANGES +3 -0
- data/README +1 -4
- data/facade.gemspec +1 -2
- data/lib/facade.rb +13 -12
- data/test/test_facade.rb +1 -1
- metadata +3 -3
data/CHANGES
CHANGED
data/README
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
methods of the current class.
|
|
5
5
|
|
|
6
6
|
== Prerequisites
|
|
7
|
-
Ruby 1.8.
|
|
7
|
+
Ruby 1.8.2 or later
|
|
8
8
|
|
|
9
9
|
== Installation
|
|
10
10
|
rake test
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
|
|
28
28
|
== Copyright
|
|
29
29
|
Copyright (c) 2005-2009 Daniel J. Berger
|
|
30
|
-
Licensed under the same terms as Ruby itself.
|
|
31
30
|
|
|
32
31
|
== License
|
|
33
32
|
Artistic 2.0
|
|
@@ -39,5 +38,3 @@
|
|
|
39
38
|
|
|
40
39
|
== Author
|
|
41
40
|
Daniel J. Berger
|
|
42
|
-
djberg96 at nospam at gmail dot com
|
|
43
|
-
imperator on IRC (freenode)
|
data/facade.gemspec
CHANGED
|
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
|
2
2
|
|
|
3
3
|
spec = Gem::Specification.new do |gem|
|
|
4
4
|
gem.name = 'facade'
|
|
5
|
-
gem.version = '1.0.
|
|
5
|
+
gem.version = '1.0.4'
|
|
6
6
|
gem.author = 'Daniel J. Berger'
|
|
7
7
|
gem.license = 'Artistic 2.0'
|
|
8
8
|
gem.email = 'djberg96@gmail.com'
|
|
@@ -22,5 +22,4 @@ spec = Gem::Specification.new do |gem|
|
|
|
22
22
|
EOF
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
Gem.manage_gems if Gem::RubyGemsVersion.to_f < 1.0
|
|
26
25
|
Gem::Builder.new(spec).build
|
data/lib/facade.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
module Facade
|
|
2
|
-
|
|
2
|
+
# The version of the facade library
|
|
3
|
+
FACADE_VERSION = '1.0.4'
|
|
3
4
|
|
|
4
5
|
# The facade method will forward a singleton method as an instance
|
|
5
6
|
# method of the extending class. If no arguments are provided, then all
|
|
@@ -9,16 +10,16 @@ module Facade
|
|
|
9
10
|
#
|
|
10
11
|
# Example:
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
+
# require 'facade'
|
|
13
14
|
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
15
|
+
# class MyString < String
|
|
16
|
+
# extend Facade
|
|
17
|
+
# facade File, :dirname, :basename
|
|
18
|
+
# end
|
|
18
19
|
#
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
20
|
+
# s = MyString.new('/home/djberge')
|
|
21
|
+
# s.basename # => 'djberge'
|
|
22
|
+
# s.dirname # => '/home'
|
|
22
23
|
#
|
|
23
24
|
def facade(klass, *methods)
|
|
24
25
|
methods = methods.flatten
|
|
@@ -31,11 +32,11 @@ module Facade
|
|
|
31
32
|
end
|
|
32
33
|
end
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
methods
|
|
35
|
+
# Convert all strings to symbols to stay sane between 1.8.x and 1.9.x
|
|
36
|
+
methods = methods.map{ |m| m.to_sym }
|
|
37
|
+
methods -= self.instance_methods.map{ |m| m.to_sym } # No clobber
|
|
36
38
|
|
|
37
39
|
methods.each do |methname|
|
|
38
|
-
methname = methname.to_sym
|
|
39
40
|
define_method(methname){
|
|
40
41
|
if klass.kind_of?(Class)
|
|
41
42
|
meth = klass.method(methname)
|
data/test/test_facade.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: facade
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel J. Berger
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2009-
|
|
12
|
+
date: 2009-08-03 00:00:00 -06:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies: []
|
|
15
15
|
|
|
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
55
55
|
requirements: []
|
|
56
56
|
|
|
57
57
|
rubyforge_project: shards
|
|
58
|
-
rubygems_version: 1.3.
|
|
58
|
+
rubygems_version: 1.3.5
|
|
59
59
|
signing_key:
|
|
60
60
|
specification_version: 3
|
|
61
61
|
summary: An easy way to implement the facade pattern in your class
|