shogun 6.0.0 → 6.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/shogun +4 -14
- data/lib/shogun/command.rb +30 -0
- data/lib/shogun/command/generate.rb +90 -0
- data/lib/shogun/version.rb +1 -1
- metadata +32 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74c3d6d6b7a445c63db19ce0e3f28ecb13fe20e9
|
4
|
+
data.tar.gz: 9b650a266e6d426282b56ac4462e712a57993167
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab48a6ce3df54742e4c7d2a15f7fbeccc0f5688bfb622d50420492fb714281f57745b91514095afd72aacca293ba4bc42efcb018252635617d35ed3e3b7a8090
|
7
|
+
data.tar.gz: 3cf59b44cdb445d986c59375754dbdf60f1745a97d0ba2d3382a4f7aa8a5777c2a3367f96792f367d3cb0e9f977dbf8e328531042f9213591426c414ad241700
|
data/bin/shogun
CHANGED
@@ -1,18 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require "shogun"
|
3
|
+
require "shogun/command"
|
4
4
|
require "pry"
|
5
|
-
require Dir["./lib/*.rb"].first
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
when "reset" then
|
11
|
-
Shogun::Database.setup!(logger: Logger.new(STDOUT))
|
12
|
-
when "console" then
|
13
|
-
Shogun::Database.new(logger: Logger.new(STDOUT))
|
14
|
-
binding.pry
|
15
|
-
end
|
16
|
-
when "console" then
|
17
|
-
binding.pry
|
18
|
-
end
|
6
|
+
# shogun [namespace] [command] [options]
|
7
|
+
# shogun blankapi generate flags
|
8
|
+
Shogun::Command.new(*ARGV)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "architecture/dsl"
|
2
|
+
require "active_support/all"
|
3
|
+
require "shogun"
|
4
|
+
|
5
|
+
module Shogun
|
6
|
+
class Command
|
7
|
+
require_relative "command/generate"
|
8
|
+
|
9
|
+
def initialize(namespace, command, *parameters)
|
10
|
+
@namespace = namespace
|
11
|
+
@command = command
|
12
|
+
@parameters = parameters
|
13
|
+
|
14
|
+
case @command
|
15
|
+
when "generate" then
|
16
|
+
::Shogun::Command::Generate.new(@namespace, *@parameters)
|
17
|
+
when "database" then
|
18
|
+
case ARGV.shift
|
19
|
+
when "reset" then
|
20
|
+
::Shogun::Database.setup!(logger: Logger.new(STDOUT))
|
21
|
+
when "console" then
|
22
|
+
::Shogun::Database.new(logger: Logger.new(STDOUT))
|
23
|
+
binding.pry
|
24
|
+
end
|
25
|
+
when "console" then
|
26
|
+
binding.pry
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
module Shogun
|
2
|
+
class Command
|
3
|
+
class Generate
|
4
|
+
include Architecture
|
5
|
+
|
6
|
+
def initialize(namespace, resource, *parameters)
|
7
|
+
@namespace = namespace
|
8
|
+
@resource = resource
|
9
|
+
@parameters = parameters
|
10
|
+
|
11
|
+
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()
|
19
|
+
subresource(scope, "show")
|
20
|
+
subresource(scope, "list")
|
21
|
+
subresource(scope, "create")
|
22
|
+
subresource(scope, "update")
|
23
|
+
subresource(scope, "destroy")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
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()
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private def scaffold_directory
|
41
|
+
File.join(gem_directory, "scaffold")
|
42
|
+
end
|
43
|
+
|
44
|
+
private def namespace_directory
|
45
|
+
File.join(current_directory, "lib", @namespace)
|
46
|
+
end
|
47
|
+
|
48
|
+
private def resource_directory
|
49
|
+
destination(@parameters.first)
|
50
|
+
end
|
51
|
+
|
52
|
+
private def gem_directory
|
53
|
+
Gem::Specification.find_by_name("shogun").gem_dir
|
54
|
+
end
|
55
|
+
|
56
|
+
private def current_directory
|
57
|
+
Dir.pwd
|
58
|
+
end
|
59
|
+
|
60
|
+
private def context
|
61
|
+
{
|
62
|
+
namespace_module: namespace_module,
|
63
|
+
resource_module: resource_module,
|
64
|
+
namespace: namespace,
|
65
|
+
resource: resource
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
private def namespace_module
|
70
|
+
@namespace.camelcase
|
71
|
+
end
|
72
|
+
|
73
|
+
private def resource_module
|
74
|
+
@resource.camelcase
|
75
|
+
end
|
76
|
+
|
77
|
+
private def namespace
|
78
|
+
@namespace.downcase
|
79
|
+
end
|
80
|
+
|
81
|
+
private def resource
|
82
|
+
@resource.downcase
|
83
|
+
end
|
84
|
+
|
85
|
+
private def resource_signular
|
86
|
+
resource.singular
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
data/lib/shogun/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shogun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.1.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:
|
11
|
+
date: 2015-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: adamantium
|
@@ -206,6 +206,20 @@ dependencies:
|
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '10.1'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: activesupport
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '4.1'
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '4.1'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: activerecord
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,6 +234,20 @@ dependencies:
|
|
220
234
|
- - "~>"
|
221
235
|
- !ruby/object:Gem::Version
|
222
236
|
version: '4.1'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: architecture
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - "~>"
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '5.2'
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '5.2'
|
223
251
|
- !ruby/object:Gem::Dependency
|
224
252
|
name: bundler
|
225
253
|
requirement: !ruby/object:Gem::Requirement
|
@@ -301,6 +329,8 @@ files:
|
|
301
329
|
- bin/shogun
|
302
330
|
- lib/shogun.rb
|
303
331
|
- lib/shogun/authorizer.rb
|
332
|
+
- lib/shogun/command.rb
|
333
|
+
- lib/shogun/command/generate.rb
|
304
334
|
- lib/shogun/control.rb
|
305
335
|
- lib/shogun/control/null.rb
|
306
336
|
- lib/shogun/database.rb
|