pantheios-ruby 0.18.2 → 0.19.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a4ab16037fef01cf24d88b041cc75c15f08e494
4
- data.tar.gz: 4c7fe9d47274ab9fc3d669558469486d0683e4fe
3
+ metadata.gz: c08cdda0f4237044c0b2681d2b1a5cf47ff2315f
4
+ data.tar.gz: b06b7ac4f43eead0c66d1253b72198ae1b63b28a
5
5
  SHA512:
6
- metadata.gz: 215ebce2885a0824efa7c30a26321d882a7697c895fa098f7a063e9db443c72ba4ff73f33125e4774531a4c4fa8109124beca833ca5dc1773d149a968b6018c7
7
- data.tar.gz: 9b6ec5a9ff274cbadcf817b0822812c65ef007db9f1c51a98565d5b753b54789538429db51ee6e3233bd71699bf38dd236441e954e79c4a00d2dc80eea934886
6
+ metadata.gz: 8650e0cad32dcb92b16e677da6e7a09def7302c52465460fe431890827d074cd11d009ba22d06f85a2f0de9b5003f902882085ffc206233dd47dda0de9e65e69
7
+ data.tar.gz: 3ccbdfd84bf0b5ba7ada60754bd40e3a4361637da3f0c07e8ee225fd4fe1125c26f8bffcddbd8bcab58bd1ed37a97b1c02fd99a68a3e8eb9e2e5090e1ed5e940
@@ -0,0 +1,3 @@
1
+
2
+ Dir[File.join(File.dirname(__FILE__), 'services', '*log_service.rb')].each { |f| require f }
3
+
@@ -0,0 +1,239 @@
1
+
2
+ # ######################################################################## #
3
+ # File: lib/pantheios/services/multiplexing_log_service.rb
4
+ #
5
+ # Purpose: Definition of the
6
+ # ::Pantheios::Services::MultiplexingLogService class
7
+ #
8
+ # Created: 14th June 2015
9
+ # Updated: 8th February 2018
10
+ #
11
+ # Home: http://github.com/synesissoftware/Pantheios-Ruby
12
+ #
13
+ # Author: Matthew Wilson
14
+ #
15
+ # Copyright (c) 2015-2018, Matthew Wilson and Synesis Software
16
+ # All rights reserved.
17
+ #
18
+ # Redistribution and use in source and binary forms, with or without
19
+ # modification, are permitted provided that the following conditions are
20
+ # met:
21
+ #
22
+ # * Redistributions of source code must retain the above copyright
23
+ # notice, this list of conditions and the following disclaimer.
24
+ #
25
+ # * Redistributions in binary form must reproduce the above copyright
26
+ # notice, this list of conditions and the following disclaimer in the
27
+ # documentation and/or other materials provided with the distribution.
28
+ #
29
+ # * Neither the names of the copyright holder nor the names of its
30
+ # contributors may be used to endorse or promote products derived from
31
+ # this software without specific prior written permission.
32
+ #
33
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
34
+ # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
35
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
36
+ # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
37
+ # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
38
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
39
+ # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
40
+ # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
41
+ # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
42
+ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
43
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44
+ #
45
+ # ######################################################################## #
46
+
47
+
48
+ =begin
49
+ =end
50
+
51
+ module Pantheios
52
+ module Services
53
+
54
+ # A class that fulfils the Pantheios *LogService* protocol by multiplexing
55
+ # its responsibilities to a number of (concrete) log service instances
56
+ #
57
+ # NOTE: The *LogService* protocol is implemented by a class that provides
58
+ # the instance methods +severity_logged?(severity : Object) : boolean+ and
59
+ # +log(severity : Object, t : Time, prefix : String, msg : String)+
60
+ class MultiplexingLogService
61
+
62
+ module MultiplexingLogService_Internals_
63
+
64
+ class ServiceManagementInfo
65
+
66
+ def initialize svc
67
+
68
+ @service = svc
69
+ end
70
+
71
+ attr_reader :service
72
+ end
73
+ end
74
+
75
+ # Initializes the instance with an array of log services, according to
76
+ # the given options
77
+ #
78
+ # ===Signature
79
+ #
80
+ # * *Parameters:*
81
+ # - +services+:: [ ::Array ] An array of instances that observe the
82
+ # Log Service protocol
83
+ # - +options+:: [ ::Hash] options
84
+ #
85
+ # * *Options:*
86
+ # - +:level_cache_mode+:: [ ::Symbol ] Specifies the mode of severity
87
+ # level caching, and must be one of the following values:
88
+ # * +:none+:: no severity level caching is performed. This is the
89
+ # default because it is completely thread-safe, but it is the
90
+ # slowest mode, and users are advised to specify another mode
91
+ # suitable to their use
92
+ # * +:thread_fixed+:: remembers the response of each multiplexed log
93
+ # service to each severity level on a thread-specific basis
94
+ # * +:process_fixed+:: remembers the response of each multiplexed
95
+ # log service to each severity level and then remembers that for
96
+ # the duration of the lifetime of the instance
97
+ # - +:unsync_process_lcm+:: [ boolean ] If truey, causes
98
+ # +:process_fixed+ +:level_cache_mode+ to NOT be synchronised; the
99
+ # default is for it to be synchronised using an internal +Mutex+
100
+ # instance
101
+ def initialize services, **options
102
+
103
+ @tss_sym = self.to_s.to_sym
104
+ @services = services.map { |svc| MultiplexingLogService_Internals_::ServiceManagementInfo.new svc }
105
+ @options = options.dup
106
+ @mode = options[:level_cache_mode]
107
+ @unsync_pf = options[:unsync_process_lcm]
108
+
109
+ @process_m = {}
110
+ @mx = Mutex.new unless @unsync_pf
111
+ end
112
+
113
+ private
114
+
115
+ # { svc => { sev => flag } }
116
+ def get_tss_svc_sev_map_
117
+
118
+ sym = @tss_sym
119
+ tc = Thread.current
120
+ m = tc.thread_variable_get sym
121
+
122
+ unless m
123
+
124
+ tc.thread_variable_set sym, (m = {})
125
+ end
126
+
127
+ m
128
+ end
129
+
130
+ def svc_sev_logged_tf_ m, svc, severity
131
+
132
+ m[svc.object_id] ||= {}
133
+
134
+ unless m[svc.object_id].has_key? severity
135
+
136
+ r = svc.severity_logged? severity
137
+
138
+ m[svc.object_id][severity] = r
139
+ else
140
+
141
+ r = m[svc.object_id][severity]
142
+ end
143
+
144
+ r
145
+ end
146
+
147
+ def svc_sev_logged_pf_ m, svc, severity
148
+
149
+ m[svc.object_id] ||= {}
150
+
151
+ unless m[svc.object_id].has_key? severity
152
+
153
+ r = svc.severity_logged? severity
154
+
155
+ m[svc.object_id][severity] = r
156
+ else
157
+
158
+ r = m[svc.object_id][severity]
159
+ end
160
+
161
+ r
162
+ end
163
+
164
+ def sev_logged_pf_ m, severity
165
+
166
+ @services.any? { |smi| svc_sev_logged_pf_ m, smi.service, severity }
167
+ end
168
+ public
169
+
170
+ # Indicates whether the given severity is to be logged by any of the
171
+ # multiplexed log services
172
+ def severity_logged? severity
173
+
174
+ case @mode
175
+ when :process_fixed
176
+
177
+ if @unsync_pf
178
+
179
+ sev_logged_pf_ @process_m, severity
180
+ else
181
+
182
+ @mx.synchronize { sev_logged_pf_ @process_m, severity }
183
+ end
184
+ when :thread_fixed
185
+
186
+ m = get_tss_svc_sev_map_
187
+
188
+ @services.any? do |smi|
189
+
190
+ svc = smi.service
191
+
192
+ svc_sev_logged_tf_ m, svc, severity
193
+ end
194
+ else # :none
195
+
196
+ @services.any? { |smi| smi.service.severity_logged? severity }
197
+ end
198
+ end
199
+
200
+ def log sev, t, pref, msg
201
+
202
+ tss_m = :thread_fixed == @mode ? get_tss_svc_sev_map_ : nil
203
+
204
+ @services.each do |smi|
205
+
206
+ svc = smi.service
207
+
208
+ case @mode
209
+ when :process_fixed
210
+
211
+ if @unsync_pf
212
+
213
+ isl = svc_sev_logged_pf_ @process_m, svc, sev
214
+ else
215
+
216
+ isl = @mx.synchronize { svc_sev_logged_pf_ @process_m, svc, sev }
217
+ end
218
+ when :thread_fixed
219
+
220
+ m = tss_m
221
+
222
+ isl = svc_sev_logged_tf_ m, svc, sev
223
+ else # :none
224
+
225
+ isl = svc.severity_logged? sev
226
+ end
227
+
228
+
229
+ svc.log sev, t, pref, msg if isl
230
+ end
231
+ end
232
+ end
233
+
234
+ end # module Services
235
+ end # module Pantheios
236
+
237
+ # ############################## end of file ############################# #
238
+
239
+
@@ -1,12 +1,12 @@
1
1
 
2
2
  # ######################################################################## #
3
- # File: lib/pantheios/services/simple_console_log_service.rb
3
+ # File: lib/pantheios/services/null_log_service.rb
4
4
  #
5
5
  # Purpose: Definition of the ::Pantheios::Services::NullLogService
6
6
  # class
7
7
  #
8
8
  # Created: 14th June 2015
9
- # Updated: 22nd January 2018
9
+ # Updated: 8th February 2018
10
10
  #
11
11
  # Home: http://github.com/synesissoftware/Pantheios-Ruby
12
12
  #
@@ -5,13 +5,13 @@
5
5
  # Purpose: Version for Pantheios.Ruby library
6
6
  #
7
7
  # Created: 2nd April 2011
8
- # Updated: 10th April 2019
8
+ # Updated: 8th February 2018
9
9
  #
10
10
  # Home: http://github.com/synesissoftware/Pantheios-Ruby
11
11
  #
12
12
  # Author: Matthew Wilson
13
13
  #
14
- # Copyright (c) 2011-2019, Matthew Wilson and Synesis Software
14
+ # Copyright (c) 2011-2018, Matthew Wilson and Synesis Software
15
15
  # All rights reserved.
16
16
  #
17
17
  # Redistribution and use in source and binary forms, with or without
@@ -50,7 +50,7 @@
50
50
  module Pantheios
51
51
 
52
52
  # Current version of the Pantheios.Ruby library
53
- VERSION = '0.18.2'
53
+ VERSION = '0.19.2'
54
54
 
55
55
  private
56
56
  VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
@@ -0,0 +1,109 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #############################################################################
4
+ # File: test/scratch/multiplexing_log_service.rb
5
+ #
6
+ # Purpose: COMPLETE_ME
7
+ #
8
+ # Created: 7th February 2018
9
+ # Updated: 7th February 2018
10
+ #
11
+ # Author: Matthew Wilson
12
+ #
13
+ # Copyright: <<TBD>>
14
+ #
15
+ #############################################################################
16
+
17
+ $:.unshift File.join(File.dirname(__FILE__), *(['..'] * 2), 'lib')
18
+
19
+ require 'pantheios'
20
+ require 'pantheios/application_layer/stock_severity_levels'
21
+ require 'pantheios/services'
22
+
23
+ $num_BLS_sls = 0
24
+ $num_ELS_sls = 0
25
+
26
+ class BenchmarkLogService
27
+
28
+ def severity_logged? severity
29
+
30
+ $num_BLS_sls += 1
31
+
32
+ (0..100).each { |n| n ** n }
33
+
34
+ :benchmark == severity.to_s.to_sym
35
+ end
36
+
37
+ def log sev, t, pref, msg
38
+
39
+ puts "BENCHMARK: #{pref}#{msg}\n"
40
+ end
41
+ end
42
+
43
+ class EventLogService
44
+
45
+ def severity_logged? severity
46
+
47
+ $num_ELS_sls += 1
48
+
49
+ case severity.to_s.to_sym
50
+ when :notice, :warning, :failure, :critical, :alert, :violation
51
+
52
+ true
53
+ when :warn, :error, :emergency
54
+
55
+ true
56
+ else
57
+
58
+ false
59
+ end
60
+ end
61
+
62
+ def log sev, t, pref, msg
63
+
64
+ puts "EVENTLOG: #{pref}#{msg}\n"
65
+ end
66
+ end
67
+
68
+ scls = Pantheios::Services::SimpleConsoleLogService.new
69
+
70
+ def scls.severity_logged? severity; ![ :benchmark, :trace, :violation ].include? severity; end
71
+
72
+ services = [
73
+
74
+ BenchmarkLogService.new,
75
+ EventLogService.new,
76
+ scls,
77
+ ]
78
+
79
+ lcm = :none
80
+ #lcm = :thread_fixed
81
+ #lcm = :process_fixed
82
+ unsync = false
83
+ #unsync = true
84
+
85
+ Pantheios::Core.set_service Pantheios::Services::MultiplexingLogService.new(services, level_cache_mode: lcm, unsyc_process_lcm: unsync)
86
+
87
+ include Pantheios
88
+
89
+ t_b = Time.now
90
+
91
+ log :benchmark, 'statement at benchmark'
92
+ (0..100000).each { log :trace, 'statement at trace' }
93
+ log :debug4, 'statement at debug-4'
94
+ log :debug3, 'statement at debug-3'
95
+ log :debug2, 'statement at debug-2'
96
+ log :debug1, 'statement at debug-1'
97
+ log :debug0, 'statement at debug-0'
98
+ log :informational, 'statement at informational'
99
+ log :notice, 'statement at notice'
100
+ log :warning, 'statement at warning'
101
+ log :failure, 'statement at failure'
102
+ log :critical, 'statement at critical'
103
+ log :alert, 'statement at alert'
104
+ log :violation, 'statement at violation'
105
+
106
+ t_a = Time.now
107
+
108
+ $stderr.puts "mode= :#{lcm}; t=#{t_a - t_b}; #BLS=#{$num_BLS_sls}; #ELS=#{$num_ELS_sls}"
109
+
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # test/unit/services/tc_multiplexing_log_service.rb
4
+
5
+ $:.unshift File.join(File.dirname(__FILE__), '../../..', 'lib')
6
+
7
+ require 'pantheios/services/multiplexing_log_service'
8
+
9
+ require 'pantheios/api'
10
+ require 'pantheios/application_layer/stock_severity_levels'
11
+
12
+ require 'xqsr3/extensions/test/unit'
13
+
14
+ require 'test/unit'
15
+
16
+ require 'stringio'
17
+
18
+ class Test_MultiplexingLogservice < Test::Unit::TestCase
19
+
20
+ include ::Pantheios::API
21
+ include ::Pantheios::Services
22
+
23
+ class ProgrammableLogService
24
+
25
+ def initialize name, severities
26
+
27
+ @name = name
28
+ @severities = severities
29
+ @items = []
30
+ end
31
+
32
+ attr_reader :name
33
+ attr_reader :items
34
+
35
+ def severity_logged? severity
36
+
37
+ @severities.include? severity
38
+ end
39
+
40
+ def log sev, t, pref, msg
41
+
42
+ @items << [ sev, t, pref, msg ]
43
+ end
44
+ end
45
+
46
+ def log_multiple_statements svc
47
+
48
+ previous, _ = Pantheios::Core.set_service svc
49
+
50
+ begin
51
+
52
+ severities = Pantheios::ApplicationLayer::StockSeverityLevels::STOCK_SEVERITY_LEVELS_PRIME
53
+
54
+ severities.each do |sev|
55
+
56
+ log sev, "a(n) #{sev} statement"
57
+ end
58
+ ensure
59
+
60
+ Pantheios::Core.set_service previous
61
+ end
62
+ end
63
+
64
+
65
+ def test_MultiplexingLogService_type_exists
66
+
67
+ assert defined? MultiplexingLogService
68
+ end
69
+
70
+ if defined?(MultiplexingLogService)
71
+
72
+ def test_MultiplexingLogService_type_is_a_class
73
+
74
+ assert_kind_of(::Class, MultiplexingLogService)
75
+ end
76
+
77
+ def test_MultiplexingLogService_type_has_expected_instance_methods
78
+
79
+ assert_type_has_instance_methods MultiplexingLogService, [ :severity_logged?, :log ]
80
+ end
81
+
82
+ def test_multiplex_1
83
+
84
+ svc_0 = ProgrammableLogService.new 'svc_0', Pantheios::ApplicationLayer::StockSeverityLevels::STOCK_SEVERITY_LEVELS_PRIME - [ :informational, :notice, :trace ]
85
+ svc_1 = ProgrammableLogService.new 'svc_1', [ :informational, :notice, :warning, :failure ]
86
+ svc_2 = ProgrammableLogService.new 'svc_2', [ :informational, :debug0, :debug1, :debug2, :debug3, :debug4 ]
87
+
88
+ svc = MultiplexingLogService.new [ svc_0, svc_1, svc_2 ]
89
+
90
+ log_multiple_statements svc
91
+
92
+ assert_equal 11, svc_0.items.size
93
+ assert_equal 4, svc_1.items.size
94
+ assert_equal 6, svc_2.items.size
95
+ end
96
+
97
+ def test_multiplex_2
98
+
99
+ svc_0 = ProgrammableLogService.new 'svc_0', Pantheios::ApplicationLayer::StockSeverityLevels::STOCK_SEVERITY_LEVELS_PRIME - [ :informational, :notice, :trace ]
100
+ svc_1 = ProgrammableLogService.new 'svc_1', [ :informational, :notice, :warning, :failure ]
101
+ svc_2 = ProgrammableLogService.new 'svc_2', [ :informational, :debug0, :debug1, :debug2, :debug3, :debug4 ]
102
+
103
+ svc = MultiplexingLogService.new [ svc_0, svc_1, svc_2 ], level_cache_mode: :none
104
+
105
+ log_multiple_statements svc
106
+
107
+ assert_equal 11, svc_0.items.size
108
+ assert_equal 4, svc_1.items.size
109
+ assert_equal 6, svc_2.items.size
110
+ end
111
+
112
+ def test_multiplex_3
113
+
114
+ svc_0 = ProgrammableLogService.new 'svc_0', Pantheios::ApplicationLayer::StockSeverityLevels::STOCK_SEVERITY_LEVELS_PRIME - [ :informational, :notice, :trace ]
115
+ svc_1 = ProgrammableLogService.new 'svc_1', [ :informational, :notice, :warning, :failure ]
116
+ svc_2 = ProgrammableLogService.new 'svc_2', [ :informational, :debug0, :debug1, :debug2, :debug3, :debug4 ]
117
+
118
+ svc = MultiplexingLogService.new [ svc_0, svc_1, svc_2 ], level_cache_mode: :process_fixed
119
+
120
+ log_multiple_statements svc
121
+
122
+ assert_equal 11, svc_0.items.size
123
+ assert_equal 4, svc_1.items.size
124
+ assert_equal 6, svc_2.items.size
125
+ end
126
+
127
+ def test_multiplex_4
128
+
129
+ svc_0 = ProgrammableLogService.new 'svc_0', Pantheios::ApplicationLayer::StockSeverityLevels::STOCK_SEVERITY_LEVELS_PRIME - [ :informational, :notice, :trace ]
130
+ svc_1 = ProgrammableLogService.new 'svc_1', [ :informational, :notice, :warning, :failure ]
131
+ svc_2 = ProgrammableLogService.new 'svc_2', [ :informational, :debug0, :debug1, :debug2, :debug3, :debug4 ]
132
+
133
+ svc = MultiplexingLogService.new [ svc_0, svc_1, svc_2 ], level_cache_mode: :thread_fixed
134
+
135
+ log_multiple_statements svc
136
+
137
+ assert_equal 11, svc_0.items.size
138
+ assert_equal 4, svc_1.items.size
139
+ assert_equal 6, svc_2.items.size
140
+ end
141
+ end
142
+ end
143
+
144
+
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pantheios-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.2
4
+ version: 0.19.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Wilson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-11 00:00:00.000000000 Z
11
+ date: 2018-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xqsr3
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: '0.31'
19
+ version: 0.21.1
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.21.1
30
+ - - <
25
31
  - !ruby/object:Gem::Version
26
- version: '0.31'
32
+ version: '1.0'
27
33
  description: |
28
34
  A Ruby version of the popular C++ (and .NET) logging API library
29
35
  email: matthew@synesis.com.au
@@ -38,6 +44,8 @@ files:
38
44
  - lib/pantheios/application_layer/stock_severity_levels.rb
39
45
  - lib/pantheios/core.rb
40
46
  - lib/pantheios/globals.rb
47
+ - lib/pantheios/services.rb
48
+ - lib/pantheios/services/multiplexing_log_service.rb
41
49
  - lib/pantheios/services/null_log_service.rb
42
50
  - lib/pantheios/services/simple_console_log_service.rb
43
51
  - lib/pantheios/services/simple_file_log_service.rb
@@ -54,11 +62,13 @@ files:
54
62
  - test/scratch/log_rolling_by_period_daily.rb
55
63
  - test/scratch/log_rolling_by_size_and_depth.rb
56
64
  - test/scratch/log_using_blocks.rb
65
+ - test/scratch/multiplexing_log_service.rb
57
66
  - test/unit/application_layer/tc_param_name_list.rb
58
67
  - test/unit/application_layer/tc_stock_severity_levels.rb
59
68
  - test/unit/application_layer/ts_all.rb
60
69
  - test/unit/core/tc_core_1.rb
61
70
  - test/unit/core/ts_all.rb
71
+ - test/unit/services/tc_multiplexing_log_service.rb
62
72
  - test/unit/services/tc_null_log_service.rb
63
73
  - test/unit/services/tc_simple_console_log_service.rb
64
74
  - test/unit/services/tc_simple_file_log_service.rb
@@ -70,9 +80,9 @@ files:
70
80
  - test/unit/util/tc_thread_util.rb
71
81
  - test/unit/util/tc_version_util.rb
72
82
  - test/unit/util/ts_all.rb
73
- homepage: http://github.com/synesissoftware/Pantheios.Ruby
83
+ homepage: http://www.pantheios.org/
74
84
  licenses:
75
- - BSD-3-Clause
85
+ - Modified BSD
76
86
  metadata: {}
77
87
  post_install_message:
78
88
  rdoc_options: []
@@ -80,18 +90,19 @@ require_paths:
80
90
  - lib
81
91
  required_ruby_version: !ruby/object:Gem::Requirement
82
92
  requirements:
83
- - - ">="
93
+ - - '>='
84
94
  - !ruby/object:Gem::Version
85
- version: '2'
95
+ version: '0'
86
96
  required_rubygems_version: !ruby/object:Gem::Requirement
87
97
  requirements:
88
- - - ">="
98
+ - - '>='
89
99
  - !ruby/object:Gem::Version
90
100
  version: '0'
91
101
  requirements: []
92
102
  rubyforge_project:
93
- rubygems_version: 2.2.5
103
+ rubygems_version: 2.4.2
94
104
  signing_key:
95
105
  specification_version: 4
96
106
  summary: Pantheios.Ruby
97
107
  test_files: []
108
+ has_rdoc: