dc-deck 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f37eabed222fa4a18f32dd53e684203a26156522
4
+ data.tar.gz: c53485c18058a251d5ea878e16058ab7e931a0eb
5
+ SHA512:
6
+ metadata.gz: 345894e241846b2831d5c8a911033d8caad9c2727850cab28847751a065cf0245777c7d709f884d1ce3cbc5c1a65d66a37c5d0070db540e142627ca5df81e7c6
7
+ data.tar.gz: 657ce336267204eeda2932bace07e57645ea41996a9e3d17080b12ba107834cc9b4cf3fd39b8f365de1571582115e8d354852a6b717c72062679b05e8fa1ec53
@@ -0,0 +1,32 @@
1
+ class Deck::Build::Archive
2
+ include Deck::Submodule
3
+
4
+ register_name :archive
5
+
6
+ def execute(file, path: '/', type: :tar)
7
+ attributes[:file] = file
8
+ attributes[:path] = path
9
+ attributes[:type] = type
10
+ end
11
+
12
+ def value
13
+ attributes[:file]
14
+ end
15
+
16
+ def build_command(deps)
17
+ cmd = "ADD #{attributes[:file]} #{attributes[:path]}\n"
18
+ cmd += "RUN #{send attributes[:type]}"
19
+ end
20
+
21
+ def tar
22
+ "cd #{attributes[:path]} && tar xf #{filename}"
23
+ end
24
+
25
+ def tar_gz
26
+ "cd #{attributes[:path]} && tar zxf #{filename}"
27
+ end
28
+
29
+ def filename
30
+ File.basename attributes[:file]
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ class Deck::Build::Cmd
2
+ include Deck::Submodule
3
+
4
+ register_name :cmd
5
+
6
+ def execute(command, workdir: '/')
7
+ attributes[:command] = command
8
+ attributes[:workdir] = workdir
9
+ end
10
+
11
+ def value
12
+ attributes[:command]
13
+ end
14
+
15
+ def build_command(deps)
16
+ "RUN cd #{attributes[:workdir]} && #{attributes[:command]}"
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ class Deck::Build::Expose
2
+ include Deck::Submodule
3
+
4
+ register_name :expose
5
+
6
+ def execute(port)
7
+ attributes[:port] = port
8
+ end
9
+
10
+ def value
11
+ attributes[:port]
12
+ end
13
+
14
+ def build_command(deps)
15
+ "EXPOSE #{value}"
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ class Deck::Build::From
2
+ include Deck::Submodule
3
+
4
+ register_name :from
5
+ dependancies :repository
6
+
7
+ def execute(name, of: nil)
8
+ attributes[:name] = name
9
+ attributes[:repository] = of
10
+ end
11
+
12
+ def value
13
+ attributes[:name]
14
+ end
15
+
16
+ def build_command(deps)
17
+ repository = attributes[:repository]
18
+ repository = deps[:repository].value if repository.nil?
19
+ "FROM #{repository}/#{value}"
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ class Deck::Build::Name
2
+ include Deck::Submodule
3
+
4
+ register_name :name
5
+ dependancies :repository
6
+
7
+ def execute(name)
8
+ attributes[:name] = name
9
+ end
10
+
11
+ def value
12
+ attributes[:name]
13
+ end
14
+
15
+ def build_command(deps)
16
+ # "#{deps[:repository].value}/#{value}"
17
+ end
18
+ end
@@ -0,0 +1,13 @@
1
+ class Deck::Build::Repository
2
+ include Deck::Submodule
3
+
4
+ register_name :repository
5
+
6
+ def execute(name)
7
+ attributes[:repository] = name
8
+ end
9
+
10
+ def value
11
+ attributes[:repository]
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ class Deck::Build::Start
2
+ include Deck::Submodule
3
+
4
+ register_name :start
5
+
6
+ def execute(type, command, workdir: '/')
7
+ attributes[:type] = type
8
+ attributes[:command] = command
9
+ attributes[:workdir] = workdir
10
+ end
11
+
12
+ def value
13
+ attributes[:command]
14
+ end
15
+
16
+ def build_command(deps)
17
+ "CMD cd #{attributes[:workdir]} && #{attributes[:command]}"
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ class Deck::Build::WorkDir
2
+ include Deck::Submodule
3
+
4
+ register_name :workdir
5
+
6
+ def execute(workdir)
7
+ attributes[:workdir] = workdir
8
+ end
9
+
10
+ def value
11
+ attributes[:workdir]
12
+ end
13
+
14
+ def build_command(deps)
15
+ "WORKDIR #{attributes[:workdir]}"
16
+ end
17
+ end
data/lib/deck/build.rb ADDED
@@ -0,0 +1,34 @@
1
+ class Deck::Build
2
+ autoload :Repository, 'deck/build/repository'
3
+ autoload :Name, 'deck/build/name'
4
+ autoload :From, 'deck/build/from'
5
+ autoload :Expose, 'deck/build/expose'
6
+ autoload :Cmd, 'deck/build/cmd'
7
+ autoload :Archive, 'deck/build/archive'
8
+ autoload :Start, 'deck/build/start'
9
+ autoload :WorkDir, 'deck/build/work_dir'
10
+
11
+ def initialize
12
+ @informations = {}
13
+ @call_order = []
14
+ self.class.constants.each do |sub|
15
+ sub = self.class.const_get(sub).new
16
+ @informations[sub.class.register_name] = sub
17
+ end
18
+ end
19
+
20
+ def build_command
21
+ @call_order.each do |info|
22
+ puts @informations[info].build_command(@informations) unless @informations[info].build_command(@informations).nil?
23
+ end
24
+ end
25
+
26
+ def execute
27
+ end
28
+
29
+ def method_missing(name, *args, &block)
30
+ raise NoMethodError, 'do not define such method' unless @informations.include? name.to_sym
31
+ @informations[name.to_sym].send :execute, *args
32
+ @call_order << name.to_sym unless @call_order.include? name.to_sym
33
+ end
34
+ end
data/lib/deck/run.rb ADDED
@@ -0,0 +1,7 @@
1
+ class Deck::Run
2
+ def build_command
3
+ end
4
+
5
+ def execute
6
+ end
7
+ end
@@ -0,0 +1,36 @@
1
+ module Deck::Submodule
2
+ def attributes
3
+ @attributes ||= {}
4
+ @attributes
5
+ end
6
+
7
+ def value
8
+ attributes
9
+ end
10
+
11
+ def execute(*args)
12
+ end
13
+
14
+ def build_command(deps)
15
+ end
16
+
17
+ module ClassMethods
18
+ def register_name(name=nil)
19
+ @name = name unless name.nil?
20
+ @name
21
+ end
22
+
23
+ def dependancies(dependancies=nil)
24
+ unless dependancies.nil?
25
+ dep_list = dependancies
26
+ dep_list = [dependancies] unless dependancies.instance_of? Array
27
+ @dependancies = dep_list
28
+ end
29
+ @dependancies
30
+ end
31
+ end
32
+
33
+ def self.included(target)
34
+ target.extend ClassMethods
35
+ end
36
+ end
data/lib/deck.rb ADDED
@@ -0,0 +1,17 @@
1
+ module Deck
2
+ autoload :Submodule, 'deck/submodule'
3
+ autoload :Build, 'deck/build'
4
+ autoload :Run, 'deck/run'
5
+
6
+ class << self
7
+ def build(name, &block)
8
+ build = Build.new
9
+ build.name name
10
+ build.instance_eval &block
11
+ build
12
+ end
13
+
14
+ def run
15
+ end
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,190 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dc-deck
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeong, Jiung
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.19.1
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '0.19'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.19.1
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.19'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rake
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 10.3.2
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '10.3'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 10.3.2
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '10.3'
53
+ - !ruby/object:Gem::Dependency
54
+ name: wirble
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.1.3
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.1'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 0.1.3
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '0.1'
73
+ - !ruby/object:Gem::Dependency
74
+ name: bundler
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 1.5.3
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.5'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 1.5.3
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.5'
93
+ - !ruby/object:Gem::Dependency
94
+ name: pry
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.9.12
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.9'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 0.9.12
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '0.9'
113
+ - !ruby/object:Gem::Dependency
114
+ name: yard
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: 0.8.7
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0.8'
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 0.8.7
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '0.8'
133
+ - !ruby/object:Gem::Dependency
134
+ name: rspec
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '2.99'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '2.99'
147
+ description: Docker CLI helper
148
+ email:
149
+ - ethernuiel@gmail.com
150
+ executables: []
151
+ extensions: []
152
+ extra_rdoc_files: []
153
+ files:
154
+ - lib/deck.rb
155
+ - lib/deck/build.rb
156
+ - lib/deck/build/archive.rb
157
+ - lib/deck/build/cmd.rb
158
+ - lib/deck/build/expose.rb
159
+ - lib/deck/build/from.rb
160
+ - lib/deck/build/name.rb
161
+ - lib/deck/build/repository.rb
162
+ - lib/deck/build/start.rb
163
+ - lib/deck/build/work_dir.rb
164
+ - lib/deck/run.rb
165
+ - lib/deck/submodule.rb
166
+ homepage:
167
+ licenses:
168
+ - MIT
169
+ metadata: {}
170
+ post_install_message:
171
+ rdoc_options: []
172
+ require_paths:
173
+ - lib
174
+ required_ruby_version: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ required_rubygems_version: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ requirements: []
185
+ rubyforge_project:
186
+ rubygems_version: 2.2.2
187
+ signing_key:
188
+ specification_version: 4
189
+ summary: Docker Command line helper
190
+ test_files: []