thin-ice 0.1.1 → 1.0.0
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 +8 -8
- data/lib/thin-ice/core.rb +39 -11
- data/lib/thin-ice/version.rb +3 -0
- metadata +51 -7
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZDNjOTI2MWIwOGZmOGIwYTdhZWNmNmJhODM5NzUzYWE5ZWIwZDQ4OQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTY2MDcwYzE0YjE1NjJhMjNlMWU3MjljZTM5ZTNkMzdkZTcyMmMxZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzBiYWY4YjNkNmE5YmNhNzQ3YmRlZWYxNTRiNDE1MjZjYTI2YWVhZjlkNDFh
|
10
|
+
NmU1MGI3ZjU1MTkyOWU0ZjQzMmQ4OGIxM2FhODliMDFlNWZmMWI3OTM3ZTM4
|
11
|
+
YjRiZmUxYWU3NTc2YWUwNDUzMWJlNzU4MjRmZTYzMzNiNTE0YTU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MTg0MmNlZDRkNjYyYWIwNzdkYWEwZTM5YTcwMzA0Mjg1MGQyNzExZGE1ZWU5
|
14
|
+
MDk3MDgyNjBhOWE1ZDc4NWU2MmM2MDkzMGEwMmJkZGZhYzg1YTkwYzk1ZWE1
|
15
|
+
YWUyMmRmZDk4OWI3OTVhZWY4YjA0MGFkZGY1MGExNTMyNzk4MzI=
|
data/lib/thin-ice/core.rb
CHANGED
@@ -1,12 +1,18 @@
|
|
1
1
|
require 'rake'
|
2
2
|
|
3
|
+
# @author Alex Bezobchuk
|
3
4
|
module ThinIce
|
4
5
|
extend Rake::DSL
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
# A custom Exception to be thrown when an undesired exit status
|
8
|
+
# is returned when spawning a process.
|
9
|
+
class ThinCommandFailure < StandardError; end
|
8
10
|
|
9
|
-
#
|
11
|
+
# Forks a process given a list of arguments and options
|
12
|
+
# @param args [String] list of command arguments and options
|
13
|
+
# @return [Integer] the resulting exit status
|
14
|
+
# @raise [ThinCommandFailure] if the exit status of the process
|
15
|
+
# is non-zero
|
10
16
|
def self.invoke(args)
|
11
17
|
pid = Process.spawn(*args)
|
12
18
|
_, result = Process.wait2(pid)
|
@@ -17,47 +23,70 @@ module ThinIce
|
|
17
23
|
end
|
18
24
|
end
|
19
25
|
|
26
|
+
# ThinManager is designed to help construct the exact command to be excuted
|
27
|
+
# by the Rake task.
|
20
28
|
class ThinManager
|
21
29
|
|
22
|
-
|
23
|
-
|
30
|
+
# @!attribute env [String] Environment
|
31
|
+
# @!attribute config_path [String] Path to YML configuration file
|
32
|
+
# @!attribute thin_path [String] Path to Thin executable
|
33
|
+
# @!attribute rackup_path [String] Path to Rackup configuration
|
34
|
+
attr_reader :env, :config_path, :thin_path, :rackup_path
|
35
|
+
|
36
|
+
# Creates a [ThinManager] object that is used to to aid rake task
|
37
|
+
# generation
|
38
|
+
# @param options [Hash] Hash containing various configuration
|
39
|
+
# options
|
40
|
+
# @return [ThinManager] ThinManager object
|
24
41
|
def initialize(options = {})
|
25
42
|
@env = options[:env]
|
26
|
-
@thin_path = options[:thin_path]
|
43
|
+
@thin_path = options[:thin_path]
|
27
44
|
@config_path = options[:config_path]
|
28
45
|
@rackup_path = options[:rackup_path]
|
29
46
|
end
|
30
47
|
|
31
|
-
|
32
|
-
#
|
48
|
+
# @return [Array] An Array cotaining the environment string. May be
|
49
|
+
# empty
|
33
50
|
def env_param
|
34
51
|
(env) ? [env] : []
|
35
52
|
end
|
36
53
|
|
54
|
+
# @return [Array] An Array cotaining the Thin executable location. Uses
|
55
|
+
# local Thin gem by default
|
37
56
|
def thin_exec_param
|
38
57
|
[thin_path || "thin"]
|
39
58
|
end
|
40
59
|
|
60
|
+
# @return [Array] An Array cotaining the path to a YML configuration file.
|
61
|
+
# Empty by default
|
41
62
|
def config_path_param
|
42
63
|
(config_path) ? ["-C", config_path] : []
|
43
64
|
end
|
44
65
|
|
66
|
+
# @return [Array] An Array cotaining the path to a Rackup configuration file.
|
67
|
+
# Empty by default
|
45
68
|
def rackup_path_param
|
46
69
|
(rackup_path) ? ["-R", rackup_path] : []
|
47
70
|
end
|
48
71
|
|
49
|
-
#
|
50
|
-
|
72
|
+
# @return [String] A concatination of strings resulting in the Thin
|
73
|
+
# start command to be invoked by Rake
|
51
74
|
def start_cmd
|
52
75
|
env_param + thin_exec_param + rackup_path_param + config_path_param + ["start"]
|
53
76
|
end
|
54
77
|
|
78
|
+
# @return [String] A concatination of strings resulting in the Thin
|
79
|
+
# stop command to be invoked by Rake
|
55
80
|
def stop_cmd
|
56
81
|
env_param + thin_exec_param + rackup_path_param + config_path_param + ["stop"]
|
57
82
|
end
|
58
83
|
|
59
84
|
end
|
60
85
|
|
86
|
+
# Generates a set of Rake tasks to be used within a specific namespace
|
87
|
+
# that handle starting and stoping a Thin server instance
|
88
|
+
# @param options [Hash] Hash containing various configuration
|
89
|
+
# options
|
61
90
|
def self.create_tasks(options = {})
|
62
91
|
|
63
92
|
thin_manager = ThinManager.new(options)
|
@@ -73,5 +102,4 @@ module ThinIce
|
|
73
102
|
end
|
74
103
|
|
75
104
|
end
|
76
|
-
|
77
105
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thin-ice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Bezobchuk
|
@@ -38,15 +38,58 @@ dependencies:
|
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.6'
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bump
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.5.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.5.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: yard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.8'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.8'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: redcarpet
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.1'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.1'
|
83
|
+
description: Rake task generator for spinning up a thin server with easy to use configuration
|
84
|
+
options.
|
85
|
+
email: abezobchuk@gmail.com
|
44
86
|
executables: []
|
45
87
|
extensions: []
|
46
88
|
extra_rdoc_files: []
|
47
89
|
files:
|
48
|
-
- lib/thin-ice.rb
|
49
90
|
- lib/thin-ice/core.rb
|
91
|
+
- lib/thin-ice/version.rb
|
92
|
+
- lib/thin-ice.rb
|
50
93
|
homepage: https://github.com/Alexanderbez/thin-ice
|
51
94
|
licenses:
|
52
95
|
- MIT
|
@@ -67,8 +110,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
110
|
version: '0'
|
68
111
|
requirements: []
|
69
112
|
rubyforge_project:
|
70
|
-
rubygems_version: 2.
|
113
|
+
rubygems_version: 2.1.11
|
71
114
|
signing_key:
|
72
115
|
specification_version: 4
|
73
|
-
summary: Rake task generator for
|
116
|
+
summary: Rake task generator for spinning up a thin server.
|
74
117
|
test_files: []
|
118
|
+
has_rdoc:
|