facade 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,6 @@
1
+ == 1.0.4 - 3-Aug-2009
2
+ * Fixed a symbol vs string issue for Ruby 1.9.x.
3
+
1
4
  == 1.0.3 - 21-Jul-2009
2
5
  * License changed to Artistic 2.0.
3
6
  * Documentation updates.
data/README CHANGED
@@ -4,7 +4,7 @@
4
4
  methods of the current class.
5
5
 
6
6
  == Prerequisites
7
- Ruby 1.8.0 or later
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)
@@ -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.3'
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
@@ -1,5 +1,6 @@
1
1
  module Facade
2
- FACADE_VERSION = '1.0.3'
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
- # require 'facade'
13
+ # require 'facade'
13
14
  #
14
- # class MyString < String
15
- # extend Facade
16
- # facade File, :dirname, :basename
17
- # end
15
+ # class MyString < String
16
+ # extend Facade
17
+ # facade File, :dirname, :basename
18
+ # end
18
19
  #
19
- # s = MyString.new('/home/djberge')
20
- # s.basename # => 'djberge'
21
- # s.dirname # => '/home'
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
- methods.collect!{ |m| m.to_s } # Symbols or strings
35
- methods -= self.instance_methods # No clobber
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)
@@ -30,7 +30,7 @@ class TC_Facade < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  def test_facade_version
33
- assert_equal('1.0.3', Facade::FACADE_VERSION)
33
+ assert_equal('1.0.4', Facade::FACADE_VERSION)
34
34
  end
35
35
 
36
36
  def test_file_methods
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.3
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-07-21 00:00:00 -06:00
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.4
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