shogun 6.1.0 → 6.2.0

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: 74c3d6d6b7a445c63db19ce0e3f28ecb13fe20e9
4
- data.tar.gz: 9b650a266e6d426282b56ac4462e712a57993167
3
+ metadata.gz: 71ecb6f17049d4af5762419972aac27923d4153b
4
+ data.tar.gz: 1a2d0b67d7b8b639a68cfce95a6658fb274f45d8
5
5
  SHA512:
6
- metadata.gz: ab48a6ce3df54742e4c7d2a15f7fbeccc0f5688bfb622d50420492fb714281f57745b91514095afd72aacca293ba4bc42efcb018252635617d35ed3e3b7a8090
7
- data.tar.gz: 3cf59b44cdb445d986c59375754dbdf60f1745a97d0ba2d3382a4f7aa8a5777c2a3367f96792f367d3cb0e9f977dbf8e328531042f9213591426c414ad241700
6
+ metadata.gz: 5a60cd514dae8b3bf65c74696a4f4b2245ada742c116bf02b080c43789ba41dcf801b10fb2490c6d79cb6e1187333042849c1c0009c034158e249fe9885e9aab
7
+ data.tar.gz: a908d6897d26a58d906c1f14708c9b1499e78302e739563e66a9096f95b5dedd7716d6c5f9392e29ad3cc98376a51b67c436d9e4421ea780a940f6d36f3b57ea
data/bin/shogun CHANGED
@@ -3,6 +3,7 @@
3
3
  require "shogun/command"
4
4
  require "pry"
5
5
 
6
- # shogun [namespace] [command] [options]
6
+ # shogun [namespace] [command] [parameters]
7
7
  # shogun blankapi generate flags
8
- Shogun::Command.new(*ARGV)
8
+ # shogun blankapi new
9
+ Shogun::Command.new(*ARGV).execute
@@ -4,16 +4,21 @@ require "shogun"
4
4
 
5
5
  module Shogun
6
6
  class Command
7
+ require_relative "command/new"
7
8
  require_relative "command/generate"
8
9
 
9
10
  def initialize(namespace, command, *parameters)
10
11
  @namespace = namespace
11
12
  @command = command
12
13
  @parameters = parameters
14
+ end
13
15
 
16
+ def execute
14
17
  case @command
18
+ when "new" then
19
+ ::Shogun::Command::New.new(@namespace, *@parameters).execute
15
20
  when "generate" then
16
- ::Shogun::Command::Generate.new(@namespace, *@parameters)
21
+ ::Shogun::Command::Generate.new(@namespace, *@parameters).execute
17
22
  when "database" then
18
23
  case ARGV.shift
19
24
  when "reset" then
@@ -7,15 +7,17 @@ module Shogun
7
7
  @namespace = namespace
8
8
  @resource = resource
9
9
  @parameters = parameters
10
+ end
10
11
 
12
+ def execute
11
13
  architecture(source: scaffold_directory, destination: namespace_directory) do |architect|
12
- architect.copy file: "resource.rb", as: "#{resource}.rb", context: context()
13
- architect.create directory: architect.destination(resource)
14
- architect.within source: "resource", destination: resource do |scope|
15
- scope.copy file: "endpoint.rb", context: context()
16
- scope.copy file: "model.rb", context: context()
17
- scope.copy file: "null.rb", context: context()
18
- scope.copy file: "presenter.rb", context: context()
14
+ architect.copy(file: "resource.rb", as: "#{resource}.rb", context: context)
15
+ architect.create(directory: architect.destination(resource))
16
+ architect.within(source: "resource", destination: resource) do |scope|
17
+ scope.copy(file: "endpoint.rb", context: context)
18
+ scope.copy(file: "model.rb", context: context)
19
+ scope.copy(file: "null.rb", context: context)
20
+ scope.copy(file: "presenter.rb", context: context)
19
21
  subresource(scope, "show")
20
22
  subresource(scope, "list")
21
23
  subresource(scope, "create")
@@ -26,19 +28,19 @@ module Shogun
26
28
  end
27
29
 
28
30
  private def subresource(architect, name)
29
- architect.copy file: "#{name}.rb", context: context()
30
- architect.create directory: architect.destination(name)
31
- architect.within source: name, destination: name do |scope|
32
- scope.copy file: "authorizer.rb", context: context()
33
- scope.copy file: "control.rb", context: context()
34
- scope.copy file: "denormalizer.rb", context: context()
35
- scope.copy file: "normalizer.rb", context: context()
36
- scope.copy file: "validator.rb", context: context()
31
+ architect.copy(file: "#{name}.rb", context: context)
32
+ architect.create(directory: architect.destination(name))
33
+ architect.within(source: name, destination: name) do |scope|
34
+ scope.copy(file: "authorizer.rb", context: context)
35
+ scope.copy(file: "control.rb", context: context)
36
+ scope.copy(file: "denormalizer.rb", context: context)
37
+ scope.copy(file: "normalizer.rb", context: context)
38
+ scope.copy(file: "validator.rb", context: context)
37
39
  end
38
40
  end
39
41
 
40
42
  private def scaffold_directory
41
- File.join(gem_directory, "scaffold")
43
+ File.join(gem_directory, "scaffold", "resource")
42
44
  end
43
45
 
44
46
  private def namespace_directory
@@ -0,0 +1,169 @@
1
+ module Shogun
2
+ class Command
3
+ class New
4
+ include Architecture
5
+
6
+ BLANK_AUTHOR = "ORGANIZATION"
7
+
8
+ def initialize(namespace, *parameters)
9
+ @namespace = namespace
10
+ @parameters = parameters
11
+ end
12
+
13
+ def execute
14
+ architecture(source: scaffold_directory, destination: current_directory) do |architect|
15
+ architect.create(directory: architect.destination(namespace))
16
+ architect.within(source: "project", destination: namespace) do |scope|
17
+ scope.copy(file: ".gitignore", context: context)
18
+ scope.copy(file: ".rspec", context: context)
19
+ scope.copy(file: ".ruby-gemset", context: context)
20
+ scope.copy(file: ".ruby-version", context: context)
21
+ scope.copy(file: ".slugignore", context: context)
22
+ scope.copy(file: ".travis.yml", context: context)
23
+ scope.copy(file: "config.ru", context: context)
24
+ scope.copy(file: "Envfile", context: context)
25
+ scope.copy(file: "Gemfile", context: context)
26
+ scope.copy(file: "LICENSE", context: context)
27
+ scope.copy(file: "Procfile", context: context)
28
+ scope.copy(file: "Rakefile", context: context)
29
+ scope.copy(file: "README.md", context: context)
30
+ scope.create(directory: scope.destination("config"))
31
+ scope.within(source: "config", destination: "config") do |scope|
32
+ scope.copy(file: "puma.rb", context: context)
33
+ end
34
+ scope.create(directory: scope.destination("lib"))
35
+ scope.within(source: "lib", destination: "lib") do |scope|
36
+ scope.copy(file: "namespace.rb", as: "#{namespace}.rb", context: context)
37
+ scope.create(directory: scope.destination(namespace))
38
+ scope.within(source: "namespace", destination: namespace) do |scope|
39
+ scope.copy(file: "server.rb", context: context)
40
+ scope.copy(file: "accounts.rb", context: context)
41
+ scope.create(directory: scope.destination("accounts"))
42
+ scope.within(source: "accounts", destination: "accounts") do |scope|
43
+ scope.copy(file: "create.rb", context: context)
44
+ scope.create(directory: scope.destination("create"))
45
+ scope.within(source: "create", destination: "create") do |scope|
46
+ scope.copy(file: "control.rb", context: context)
47
+ scope.copy(file: "denormalizer.rb", context: context)
48
+ scope.copy(file: "normalizer.rb", context: context)
49
+ scope.copy(file: "validator.rb", context: context)
50
+ end
51
+ scope.copy(file: "destroy.rb", context: context)
52
+ scope.create(directory: scope.destination("destroy"))
53
+ scope.within(source: "destroy", destination: "destroy") do |scope|
54
+ scope.copy(file: "authorizer.rb", context: context)
55
+ scope.copy(file: "control.rb", context: context)
56
+ scope.copy(file: "denormalizer.rb", context: context)
57
+ scope.copy(file: "normalizer.rb", context: context)
58
+ scope.copy(file: "validator.rb", context: context)
59
+ end
60
+ scope.copy(file: "list.rb", context: context)
61
+ scope.create(directory: scope.destination("list"))
62
+ scope.within(source: "list", destination: "list") do |scope|
63
+ scope.copy(file: "control.rb", context: context)
64
+ scope.copy(file: "denormalizer.rb", context: context)
65
+ scope.copy(file: "normalizer.rb", context: context)
66
+ scope.copy(file: "validator.rb", context: context)
67
+ end
68
+ scope.copy(file: "show.rb", context: context)
69
+ scope.create(directory: scope.destination("show"))
70
+ scope.within(source: "show", destination: "show") do |scope|
71
+ scope.copy(file: "control.rb", context: context)
72
+ scope.copy(file: "denormalizer.rb", context: context)
73
+ scope.copy(file: "normalizer.rb", context: context)
74
+ scope.copy(file: "validator.rb", context: context)
75
+ end
76
+ scope.copy(file: "update.rb", context: context)
77
+ scope.create(directory: scope.destination("update"))
78
+ scope.within(source: "update", destination: "update") do |scope|
79
+ scope.copy(file: "authorizer.rb", context: context)
80
+ scope.copy(file: "control.rb", context: context)
81
+ scope.copy(file: "denormalizer.rb", context: context)
82
+ scope.copy(file: "normalizer.rb", context: context)
83
+ scope.copy(file: "validator.rb", context: context)
84
+ end
85
+ scope.copy(file: "endpoint.rb", context: context)
86
+ scope.copy(file: "null.rb", context: context)
87
+ scope.copy(file: "presenter.rb", context: context)
88
+ scope.copy(file: "model.rb", context: context)
89
+ end
90
+ scope.copy(file: "sessions.rb", context: context)
91
+ scope.create(directory: scope.destination("sessions"))
92
+ scope.within(source: "sessions", destination: "sessions") do |scope|
93
+ scope.copy(file: "create.rb", context: context)
94
+ scope.create(directory: scope.destination("create"))
95
+ scope.within(source: "create", destination: "create") do |scope|
96
+ scope.copy(file: "authorizer.rb", context: context)
97
+ scope.copy(file: "control.rb", context: context)
98
+ scope.copy(file: "denormalizer.rb", context: context)
99
+ scope.copy(file: "normalizer.rb", context: context)
100
+ scope.copy(file: "validator.rb", context: context)
101
+ end
102
+ scope.copy(file: "destroy.rb", context: context)
103
+ scope.create(directory: scope.destination("destroy"))
104
+ scope.within(source: "destroy", destination: "destroy") do |scope|
105
+ scope.copy(file: "control.rb", context: context)
106
+ scope.copy(file: "denormalizer.rb", context: context)
107
+ scope.copy(file: "normalizer.rb", context: context)
108
+ scope.copy(file: "validator.rb", context: context)
109
+ end
110
+ scope.copy(file: "endpoint.rb", context: context)
111
+ scope.copy(file: "presenter.rb", context: context)
112
+ scope.copy(file: "model.rb", context: context)
113
+ end
114
+ scope.copy(file: "errors.rb", context: context)
115
+ scope.create(directory: scope.destination("errors"))
116
+ scope.within(source: "errors", destination: "errors") do |scope|
117
+ scope.copy(file: "denormalizer.rb", context: context)
118
+ scope.copy(file: "presenter.rb", context: context)
119
+ end
120
+ end
121
+ end
122
+ scope.create(directory: scope.destination("spec"))
123
+ scope.within(source: "spec", destination: "spec") do |scope|
124
+ scope.copy(file: "spec_helper.rb", context: context)
125
+ scope.create(directory: scope.destination("lib"))
126
+
127
+ end
128
+ end
129
+ end
130
+ end
131
+
132
+ private def scaffold_directory
133
+ File.join(gem_directory, "scaffold", "new")
134
+ end
135
+
136
+ private def resource_directory
137
+ destination(@parameters.first)
138
+ end
139
+
140
+ private def gem_directory
141
+ Gem::Specification.find_by_name("shogun").gem_dir
142
+ end
143
+
144
+ private def current_directory
145
+ Dir.pwd
146
+ end
147
+
148
+ private def context
149
+ {
150
+ namespace_module: namespace_module,
151
+ namespace: namespace,
152
+ author: author
153
+ }
154
+ end
155
+
156
+ private def namespace_module
157
+ @namespace.camelcase
158
+ end
159
+
160
+ private def namespace
161
+ @namespace.downcase
162
+ end
163
+
164
+ private def author
165
+ ENV["SHOGUN_AUTHOR"] || BLANK_AUTHOR
166
+ end
167
+ end
168
+ end
169
+ end
@@ -1,3 +1,3 @@
1
1
  module Shogun
2
- VERSION = "6.1.0"
2
+ VERSION = "6.2.0"
3
3
  end
metadata CHANGED
@@ -1,87 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shogun
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.0
4
+ version: 6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kurtis Rainbolt-Greene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-20 00:00:00.000000000 Z
11
+ date: 2015-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: adamantium
14
+ name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.2'
19
+ version: '4.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.2'
26
+ version: '4.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rack
28
+ name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.5'
33
+ version: '4.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.5'
40
+ version: '4.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rack-protection
42
+ name: adamantium
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.5'
47
+ version: '0.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.5'
54
+ version: '0.2'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rack-body_serializer
56
+ name: architecture
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '5.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '5.2'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rack-body_deserializer
70
+ name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.0'
75
+ version: '0.9'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.0'
82
+ version: '0.9'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rack-authentication_bearer
84
+ name: rack-accept_setter
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rack-accept_setter
98
+ name: rack-authentication_bearer
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '1.0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rack-chunker
112
+ name: rack-body_deserializer
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '1.0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rack-content_length_setter
126
+ name: rack-body_serializer
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '1.0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rack-runtime
140
+ name: rack-chunker
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '1.0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: rack-log
154
+ name: rack-content_length_setter
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
@@ -179,7 +179,7 @@ dependencies:
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0.2'
181
181
  - !ruby/object:Gem::Dependency
182
- name: scrawl
182
+ name: rack-log
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
@@ -193,103 +193,103 @@ dependencies:
193
193
  - !ruby/object:Gem::Version
194
194
  version: '1.0'
195
195
  - !ruby/object:Gem::Dependency
196
- name: rake
196
+ name: rack-protection
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '10.1'
201
+ version: '1.5'
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '10.1'
208
+ version: '1.5'
209
209
  - !ruby/object:Gem::Dependency
210
- name: activesupport
210
+ name: rack-runtime
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: '4.1'
215
+ version: '1.0'
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: '4.1'
222
+ version: '1.0'
223
223
  - !ruby/object:Gem::Dependency
224
- name: activerecord
224
+ name: rack
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '4.1'
229
+ version: '1.5'
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - "~>"
235
235
  - !ruby/object:Gem::Version
236
- version: '4.1'
236
+ version: '1.5'
237
237
  - !ruby/object:Gem::Dependency
238
- name: architecture
238
+ name: rake
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
241
  - - "~>"
242
242
  - !ruby/object:Gem::Version
243
- version: '5.2'
243
+ version: '10.1'
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
- version: '5.2'
250
+ version: '10.1'
251
251
  - !ruby/object:Gem::Dependency
252
- name: bundler
252
+ name: scrawl
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
255
  - - "~>"
256
256
  - !ruby/object:Gem::Version
257
- version: '1.3'
258
- type: :development
257
+ version: '1.0'
258
+ type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - "~>"
263
263
  - !ruby/object:Gem::Version
264
- version: '1.3'
264
+ version: '1.0'
265
265
  - !ruby/object:Gem::Dependency
266
- name: rspec
266
+ name: bundler
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
269
  - - "~>"
270
270
  - !ruby/object:Gem::Version
271
- version: '3.0'
271
+ version: '1.3'
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
276
  - - "~>"
277
277
  - !ruby/object:Gem::Version
278
- version: '3.0'
278
+ version: '1.3'
279
279
  - !ruby/object:Gem::Dependency
280
- name: pry
280
+ name: rspec
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
283
  - - "~>"
284
284
  - !ruby/object:Gem::Version
285
- version: '0.9'
285
+ version: '3.0'
286
286
  type: :development
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
290
  - - "~>"
291
291
  - !ruby/object:Gem::Version
292
- version: '0.9'
292
+ version: '3.0'
293
293
  - !ruby/object:Gem::Dependency
294
294
  name: pry-doc
295
295
  requirement: !ruby/object:Gem::Requirement
@@ -331,6 +331,7 @@ files:
331
331
  - lib/shogun/authorizer.rb
332
332
  - lib/shogun/command.rb
333
333
  - lib/shogun/command/generate.rb
334
+ - lib/shogun/command/new.rb
334
335
  - lib/shogun/control.rb
335
336
  - lib/shogun/control/null.rb
336
337
  - lib/shogun/database.rb