right_support 2.8.23 → 2.8.24

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.8.23
1
+ 2.8.24
@@ -59,6 +59,11 @@ module RightSupport::Log
59
59
  # processor.logger = Logger.new(File.open("#{processor.object_id}.log", 'w'))
60
60
  #
61
61
  module Mixin
62
+ # List of base classes to which a class-level .logger call is NEVER delegated, even if the base
63
+ # class object responds to .logger; this protects against other metaprogramming that defines
64
+ # Class#logger or Object#logger.
65
+ UNDELEGATED = [Class, Object]
66
+
62
67
  # A decorator class which will be wrapped around any logger that is
63
68
  # provided to any of the setter methods. This ensures that ExceptionLogger's
64
69
  # methods will always be available to anyone who uses this mixin for logging.
@@ -69,8 +74,8 @@ module RightSupport::Log
69
74
  def logger
70
75
  if @logger
71
76
  @logger
72
- elsif respond_to?(:superclass) && superclass.respond_to?(:logger) && superclass.logger
73
- superclass.logger
77
+ elsif scl = (respond_to?(:superclass) && superclass.respond_to?(:logger) && !UNDELEGATED.include?(superclass) && superclass.logger)
78
+ scl
74
79
  else
75
80
  RightSupport::Log::Mixin.default_logger
76
81
  end
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "right_support"
8
- s.version = "2.8.23"
7
+ s.name = %q{right_support}
8
+ s.version = "2.8.24"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tony Spataro", "Sergey Sergyenko", "Ryan Williamson", "Lee Kirchhoff", "Alexey Karpik", "Scott Messier"]
12
- s.date = "2014-05-27"
13
- s.description = "A toolkit of useful, reusable foundation code created by RightScale."
14
- s.email = "support@rightscale.com"
12
+ s.date = %q{2014-06-23}
13
+ s.description = %q{A toolkit of useful, reusable foundation code created by RightScale.}
14
+ s.email = %q{support@rightscale.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.rdoc"
@@ -136,31 +136,35 @@ Gem::Specification.new do |s|
136
136
  "spec/validation/openssl_spec.rb",
137
137
  "spec/validation/ssh_spec.rb"
138
138
  ]
139
- s.homepage = "https://github.com/rightscale/right_support"
139
+ s.homepage = %q{https://github.com/rightscale/right_support}
140
140
  s.licenses = ["MIT"]
141
141
  s.require_paths = ["lib"]
142
- s.rubygems_version = "1.8.26"
143
- s.summary = "Reusable foundation code."
142
+ s.rubygems_version = %q{1.3.7}
143
+ s.summary = %q{Reusable foundation code.}
144
144
 
145
145
  if s.respond_to? :specification_version then
146
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
146
147
  s.specification_version = 3
147
148
 
148
149
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
149
150
  s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
150
151
  s.add_development_dependency(%q<flexmock>, ["~> 1.0"])
151
152
  s.add_development_dependency(%q<rspec>, ["~> 2.13.0"])
152
- s.add_development_dependency(%q<cucumber>, ["< 1.3.3", "~> 1.0"])
153
+ s.add_development_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
154
+ s.add_development_dependency(%q<ruby-debug>, [">= 0"])
153
155
  else
154
156
  s.add_dependency(%q<jeweler>, ["~> 2.0"])
155
157
  s.add_dependency(%q<flexmock>, ["~> 1.0"])
156
158
  s.add_dependency(%q<rspec>, ["~> 2.13.0"])
157
- s.add_dependency(%q<cucumber>, ["< 1.3.3", "~> 1.0"])
159
+ s.add_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
160
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
158
161
  end
159
162
  else
160
163
  s.add_dependency(%q<jeweler>, ["~> 2.0"])
161
164
  s.add_dependency(%q<flexmock>, ["~> 1.0"])
162
165
  s.add_dependency(%q<rspec>, ["~> 2.13.0"])
163
- s.add_dependency(%q<cucumber>, ["< 1.3.3", "~> 1.0"])
166
+ s.add_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
167
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
164
168
  end
165
169
  end
166
170
 
@@ -117,4 +117,25 @@ describe RightSupport::Log::Mixin do
117
117
  Bystander.logger.error('foo')
118
118
  end
119
119
  end
120
+
121
+ context 'given someone has defined Class#logger' do
122
+ before(:all) do
123
+ InnocentVictim.logger = nil
124
+ class Class
125
+ def logger
126
+ raise "THIS SHOULD NEVER BE CALLED"
127
+ end
128
+ end
129
+ end
130
+
131
+ after(:all) do
132
+ class Class
133
+ remove_method :logger
134
+ end
135
+ end
136
+
137
+ it 'should never delegate to Class#logger' do
138
+ InnocentVictim.logger.info 'test log'
139
+ end
140
+ end
120
141
  end
metadata CHANGED
@@ -1,10 +1,15 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: right_support
3
- version: !ruby/object:Gem::Version
4
- version: 2.8.23
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ hash: 31
5
+ prerelease: false
6
+ segments:
7
+ - 2
8
+ - 8
9
+ - 24
10
+ version: 2.8.24
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Tony Spataro
9
14
  - Sergey Sergyenko
10
15
  - Ryan Williamson
@@ -14,86 +19,89 @@ authors:
14
19
  autorequire:
15
20
  bindir: bin
16
21
  cert_chain: []
17
- date: 2014-05-27 00:00:00.000000000 Z
18
- dependencies:
19
- - !ruby/object:Gem::Dependency
20
- name: jeweler
21
- requirement: !ruby/object:Gem::Requirement
22
+
23
+ date: 2014-06-24 00:00:00 -07:00
24
+ default_executable:
25
+ dependencies:
26
+ - !ruby/object:Gem::Dependency
27
+ version_requirements: &id001 !ruby/object:Gem::Requirement
22
28
  none: false
23
- requirements:
29
+ requirements:
24
30
  - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '2.0'
27
- type: :development
31
+ - !ruby/object:Gem::Version
32
+ hash: 3
33
+ segments:
34
+ - 2
35
+ - 0
36
+ version: "2.0"
37
+ name: jeweler
38
+ requirement: *id001
28
39
  prerelease: false
29
- version_requirements: !ruby/object:Gem::Requirement
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
43
  none: false
31
- requirements:
44
+ requirements:
32
45
  - - ~>
33
- - !ruby/object:Gem::Version
34
- version: '2.0'
35
- - !ruby/object:Gem::Dependency
46
+ - !ruby/object:Gem::Version
47
+ hash: 15
48
+ segments:
49
+ - 1
50
+ - 0
51
+ version: "1.0"
36
52
  name: flexmock
37
- requirement: !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ~>
41
- - !ruby/object:Gem::Version
42
- version: '1.0'
43
- type: :development
53
+ requirement: *id002
44
54
  prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- none: false
47
- requirements:
48
- - - ~>
49
- - !ruby/object:Gem::Version
50
- version: '1.0'
51
- - !ruby/object:Gem::Dependency
52
- name: rspec
53
- requirement: !ruby/object:Gem::Requirement
55
+ type: :development
56
+ - !ruby/object:Gem::Dependency
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
58
  none: false
55
- requirements:
59
+ requirements:
56
60
  - - ~>
57
- - !ruby/object:Gem::Version
61
+ - !ruby/object:Gem::Version
62
+ hash: 59
63
+ segments:
64
+ - 2
65
+ - 13
66
+ - 0
58
67
  version: 2.13.0
59
- type: :development
68
+ name: rspec
69
+ requirement: *id003
60
70
  prerelease: false
61
- version_requirements: !ruby/object:Gem::Requirement
71
+ type: :development
72
+ - !ruby/object:Gem::Dependency
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
62
74
  none: false
63
- requirements:
75
+ requirements:
64
76
  - - ~>
65
- - !ruby/object:Gem::Version
66
- version: 2.13.0
67
- - !ruby/object:Gem::Dependency
68
- name: cucumber
69
- requirement: !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
77
+ - !ruby/object:Gem::Version
78
+ hash: 15
79
+ segments:
80
+ - 1
81
+ - 0
82
+ version: "1.0"
72
83
  - - <
73
- - !ruby/object:Gem::Version
84
+ - !ruby/object:Gem::Version
85
+ hash: 29
86
+ segments:
87
+ - 1
88
+ - 3
89
+ - 3
74
90
  version: 1.3.3
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: '1.0'
78
- type: :development
91
+ name: cucumber
92
+ requirement: *id004
79
93
  prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - <
84
- - !ruby/object:Gem::Version
85
- version: 1.3.3
86
- - - ~>
87
- - !ruby/object:Gem::Version
88
- version: '1.0'
94
+ type: :development
89
95
  description: A toolkit of useful, reusable foundation code created by RightScale.
90
96
  email: support@rightscale.com
91
97
  executables: []
98
+
92
99
  extensions: []
93
- extra_rdoc_files:
100
+
101
+ extra_rdoc_files:
94
102
  - LICENSE
95
103
  - README.rdoc
96
- files:
104
+ files:
97
105
  - .rspec
98
106
  - CHANGELOG.rdoc
99
107
  - Gemfile
@@ -212,32 +220,39 @@ files:
212
220
  - spec/stats/helpers_spec.rb
213
221
  - spec/validation/openssl_spec.rb
214
222
  - spec/validation/ssh_spec.rb
223
+ has_rdoc: true
215
224
  homepage: https://github.com/rightscale/right_support
216
- licenses:
225
+ licenses:
217
226
  - MIT
218
227
  post_install_message:
219
228
  rdoc_options: []
220
- require_paths:
229
+
230
+ require_paths:
221
231
  - lib
222
- required_ruby_version: !ruby/object:Gem::Requirement
232
+ required_ruby_version: !ruby/object:Gem::Requirement
223
233
  none: false
224
- requirements:
225
- - - ! '>='
226
- - !ruby/object:Gem::Version
227
- version: '0'
228
- segments:
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ hash: 3
238
+ segments:
229
239
  - 0
230
- hash: -4455262276770369018
231
- required_rubygems_version: !ruby/object:Gem::Requirement
240
+ version: "0"
241
+ required_rubygems_version: !ruby/object:Gem::Requirement
232
242
  none: false
233
- requirements:
234
- - - ! '>='
235
- - !ruby/object:Gem::Version
236
- version: '0'
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ hash: 3
247
+ segments:
248
+ - 0
249
+ version: "0"
237
250
  requirements: []
251
+
238
252
  rubyforge_project:
239
- rubygems_version: 1.8.26
253
+ rubygems_version: 1.3.7
240
254
  signing_key:
241
255
  specification_version: 3
242
256
  summary: Reusable foundation code.
243
257
  test_files: []
258
+