dc-deck 0.1.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 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: []