liquid-ext 3.5.2 → 3.5.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fcf33e837810fb6d1c70d5263c0c0036b45c8c2c
4
- data.tar.gz: 704fe02ff19e1c7f0374b1e45c134ef523abe6dc
3
+ metadata.gz: 5ac68bf0671d42bb26e445160230ebee64c9ea5c
4
+ data.tar.gz: aaea5630cdd8817b46b27ab1c1235a7b9e432f29
5
5
  SHA512:
6
- metadata.gz: a95157e84464c6bb4e3d62db3bbcd4419ba336a969fcd876dbad9684e60a6d2bec31284b38fbb05106ea5bea00db37e9e8184b05ee153718dca5b4f385b0f5cf
7
- data.tar.gz: cbbb0d4082065136c21688602c71395fff7f280a92a5ed43d356f5fd43cc19c539851c79c62492107b8cf81f203c7222da4970e219fa9399d66a5b9adb7e1681
6
+ metadata.gz: b8307aa963d2fa29324480ea13aa73eb25bf4a7dc89b066f970acb7f1450b980732ac4c4611880915ce2bebb5f163fe75338fe91bfa85440a4eb065bbfaab4fa
7
+ data.tar.gz: 7eb3ac8ff45eb6596f228336ce21ef03559962845c5aec01b15764f212c2c5494399c1472338792e5cfbc4af90010468637ff81797dd9f2b03eafe0343f03e3e
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .idea
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- liquid-ext (3.5.2)
4
+ liquid-ext (3.5.3)
5
5
  activesupport
6
6
  erubis
7
7
  jmx4r
@@ -12,14 +12,13 @@ PATH
12
12
  GEM
13
13
  remote: http://rubygems.org/
14
14
  specs:
15
- activesupport (4.1.5)
15
+ activesupport (4.1.7)
16
16
  i18n (~> 0.6, >= 0.6.9)
17
17
  json (~> 1.7, >= 1.7.7)
18
18
  minitest (~> 5.1)
19
19
  thread_safe (~> 0.1)
20
20
  tzinfo (~> 1.1)
21
21
  awesome_print (1.2.0)
22
- bond (0.5.1)
23
22
  bond (0.5.1-java)
24
23
  brice (0.2.9)
25
24
  ruby-nuggets (>= 0.5.2)
@@ -56,15 +55,11 @@ GEM
56
55
  yard
57
56
  log_switch (0.4.0)
58
57
  method_source (0.8.2)
59
- minitest (5.4.0)
58
+ minitest (5.4.3)
60
59
  mixlib-cli (1.5.0)
61
60
  multi_json (1.10.1)
62
61
  nokogiri (1.6.2.1-java)
63
62
  parallel (1.0.0)
64
- pry (0.9.12.6)
65
- coderay (~> 1.0)
66
- method_source (~> 0.8)
67
- slop (~> 3.4)
68
63
  pry (0.9.12.6-java)
69
64
  coderay (~> 1.0)
70
65
  method_source (~> 0.8)
@@ -0,0 +1,37 @@
1
+ module Shutdown
2
+
3
+ # Receives a time span in seconds and a block which will be registered for execution when the program exits.
4
+ # If multiple hanlders are registered, they are executed in reverse order of registration.
5
+ #
6
+ # If a handler throws an exception or takes longer then the specified time span, execution skips to the next
7
+ # handler in line.
8
+ #
9
+ # If the first parameter is nil, the handler will not check the codes runtime. Be cautios when executing
10
+ # asynchronous code when the 'seconds' parameter set to nil value as blocking codes would prevent
11
+ # the process from terminating.
12
+ def self.register_handler_with_timeout(seconds, &block)
13
+ return unless block_given?
14
+ at_exit do
15
+ $log.info("shutdown", location: block.inspect) if $log
16
+ begin
17
+ Timeout::timeout(seconds, &block)
18
+ rescue => e
19
+ $log.exception e if $log
20
+ end
21
+ end
22
+ end
23
+
24
+
25
+ # Receives a block which will be registered for execution when the program exits.
26
+ # If multiple hanlders are registered, they are executed in reverse order of registration.
27
+ #
28
+ # with_handler will not check the execution duration of the given block so only
29
+ # use this for non_blocking code, use register_handler_with_timout if you make potentially
30
+ # blocking calls
31
+ def self.register_handler(&block)
32
+ return unless block_given?
33
+ self.register_handler_with_timeout(nil, &block)
34
+ end
35
+
36
+ end
37
+
@@ -1,4 +1,7 @@
1
1
  module Signal
2
+ # be cautious with this shutdown handler as it does not
3
+ # guarantee execution of all handlers and swallows exceptions
4
+ # inside handlers. Use Shutdown.register_with_handler instead
2
5
  def self.register_shutdown_handler(&block)
3
6
  signals = %w(INT TERM)
4
7
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'liquid-ext'
5
- spec.version = '3.5.2'
5
+ spec.version = '3.5.3'
6
6
  spec.authors = ['LiquidM, Inc.']
7
7
  spec.email = ['opensource@liquidm.com']
8
8
  spec.description = %q{LiquidM ruby core extensions and helper libraries}
@@ -15,10 +15,10 @@ Gem::Specification.new do |spec|
15
15
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
16
  spec.require_paths = ['lib']
17
17
 
18
- spec.add_dependency 'activesupport', '~> 0'
19
- spec.add_dependency 'erubis', '~> 0'
20
- spec.add_dependency 'jmx4r', '~> 0'
21
- spec.add_dependency 'mixlib-cli', '~> 0'
22
- spec.add_dependency 'multi_json', '~> 0'
23
- spec.add_dependency 'terminal-table', '~> 0'
18
+ spec.add_dependency 'activesupport'
19
+ spec.add_dependency 'erubis'
20
+ spec.add_dependency 'jmx4r'
21
+ spec.add_dependency 'mixlib-cli'
22
+ spec.add_dependency 'multi_json'
23
+ spec.add_dependency 'terminal-table'
24
24
  end
metadata CHANGED
@@ -1,99 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liquid-ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.2
4
+ version: 3.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - LiquidM, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-27 00:00:00.000000000 Z
11
+ date: 2014-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
14
20
  requirement: !ruby/object:Gem::Requirement
15
21
  requirements:
16
- - - ~>
22
+ - - '>='
17
23
  - !ruby/object:Gem::Version
18
24
  version: '0'
19
- name: activesupport
20
25
  prerelease: false
21
26
  type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: erubis
22
29
  version_requirements: !ruby/object:Gem::Requirement
23
30
  requirements:
24
- - - ~>
31
+ - - '>='
25
32
  - !ruby/object:Gem::Version
26
33
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
30
- - - ~>
36
+ - - '>='
31
37
  - !ruby/object:Gem::Version
32
38
  version: '0'
33
- name: erubis
34
39
  prerelease: false
35
40
  type: :runtime
41
+ - !ruby/object:Gem::Dependency
42
+ name: jmx4r
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
- - - ~>
45
+ - - '>='
39
46
  - !ruby/object:Gem::Version
40
47
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
48
  requirement: !ruby/object:Gem::Requirement
43
49
  requirements:
44
- - - ~>
50
+ - - '>='
45
51
  - !ruby/object:Gem::Version
46
52
  version: '0'
47
- name: jmx4r
48
53
  prerelease: false
49
54
  type: :runtime
55
+ - !ruby/object:Gem::Dependency
56
+ name: mixlib-cli
50
57
  version_requirements: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ~>
59
+ - - '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
62
  requirement: !ruby/object:Gem::Requirement
57
63
  requirements:
58
- - - ~>
64
+ - - '>='
59
65
  - !ruby/object:Gem::Version
60
66
  version: '0'
61
- name: mixlib-cli
62
67
  prerelease: false
63
68
  type: :runtime
69
+ - !ruby/object:Gem::Dependency
70
+ name: multi_json
64
71
  version_requirements: !ruby/object:Gem::Requirement
65
72
  requirements:
66
- - - ~>
73
+ - - '>='
67
74
  - !ruby/object:Gem::Version
68
75
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
76
  requirement: !ruby/object:Gem::Requirement
71
77
  requirements:
72
- - - ~>
78
+ - - '>='
73
79
  - !ruby/object:Gem::Version
74
80
  version: '0'
75
- name: multi_json
76
81
  prerelease: false
77
82
  type: :runtime
83
+ - !ruby/object:Gem::Dependency
84
+ name: terminal-table
78
85
  version_requirements: !ruby/object:Gem::Requirement
79
86
  requirements:
80
- - - ~>
87
+ - - '>='
81
88
  - !ruby/object:Gem::Version
82
89
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
90
  requirement: !ruby/object:Gem::Requirement
85
91
  requirements:
86
- - - ~>
92
+ - - '>='
87
93
  - !ruby/object:Gem::Version
88
94
  version: '0'
89
- name: terminal-table
90
95
  prerelease: false
91
96
  type: :runtime
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ~>
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
97
  description: LiquidM ruby core extensions and helper libraries
98
98
  email:
99
99
  - opensource@liquidm.com
@@ -133,6 +133,7 @@ files:
133
133
  - lib/liquid/ext/jmx4r.rb
134
134
  - lib/liquid/ext/nil.rb
135
135
  - lib/liquid/ext/ordered_set.rb
136
+ - lib/liquid/ext/shutdown.rb
136
137
  - lib/liquid/ext/signal.rb
137
138
  - lib/liquid/ext/socket.rb
138
139
  - lib/liquid/ext/string.rb
@@ -212,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
213
  version: '0'
213
214
  requirements: []
214
215
  rubyforge_project:
215
- rubygems_version: 2.2.2
216
+ rubygems_version: 2.1.9
216
217
  signing_key:
217
218
  specification_version: 4
218
219
  summary: A collection of common utilities used in various LiquidM projects