hecks-cli 0.0.1
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 +7 -0
- data/lib/build.rb +13 -0
- data/lib/command_runner.rb +25 -0
- data/lib/console.rb +8 -0
- data/lib/generate.rb +35 -0
- data/lib/hecks-cli.rb +29 -0
- data/lib/package.rb +13 -0
- data/lib/test.rb +56 -0
- metadata +50 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4825de58b08b998ef1d7eef46264a27b29cb9bc8
|
4
|
+
data.tar.gz: 71d172063fe5972e1dfc64a5b98caa0c468d9169
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 147a2aec84081e75d4ada35786d5d4bb3dacba19cdb1c348554913129b8c289c6de4a6f782de2c138edb0bdf21623f9ba82f377077710ee89922a59918a6e882
|
7
|
+
data.tar.gz: ed61faa4d2f07aaa134e8071dfab3618544910b3f69e9beb24ca6e0e84a15f472195e9ad4e81df94a8ce86047c5bbea8af2ba8ea1f192b7197aadfe8239f8c49
|
data/lib/build.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class CommandRunner
|
3
|
+
def initialize(hexagon, name, dry_run = false)
|
4
|
+
@hexagon = hexagon
|
5
|
+
@dry_run = dry_run
|
6
|
+
@name = name
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(command)
|
10
|
+
output = full_command(command)
|
11
|
+
unless File.directory?('tmp')
|
12
|
+
FileUtils.mkdir('tmp')
|
13
|
+
end
|
14
|
+
File.open('tmp/hecks', 'a') { |file| file.write(output + "\n") }
|
15
|
+
return if dry_run
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
attr_reader :hexagon, :dry_run, :name
|
21
|
+
|
22
|
+
def full_command(command)
|
23
|
+
(['hecks'] + command).join(' ')
|
24
|
+
end
|
25
|
+
end
|
data/lib/console.rb
ADDED
data/lib/generate.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Generate < Thor
|
3
|
+
desc 'domain_objects', 'generate domain objects'
|
4
|
+
method_option :type,
|
5
|
+
aliases: '-t',
|
6
|
+
required: true,
|
7
|
+
desc: 'The type of the domain object you want to generate',
|
8
|
+
banner: '[OBJECT_TYPE]',
|
9
|
+
enum: %w(entity value_object aggregate reference) if File.file?('Domain') || File.file?('hecks.gemspec')
|
10
|
+
|
11
|
+
register(Hecks::Domain::CLI::GenerateDomainObject,
|
12
|
+
'domain_object',
|
13
|
+
'domain_object',
|
14
|
+
'Generate Domain Objects') if File.file?('Domain')
|
15
|
+
|
16
|
+
desc 'resource_server', 'generate resource_server adapter'
|
17
|
+
register(Hecks::Domain::Adapters::ResourceServer::CLI::GenerateResourceServer,
|
18
|
+
'resource_server',
|
19
|
+
'resource_server',
|
20
|
+
'Generate A Resource Server for a domain') if File.file?('Domain')
|
21
|
+
|
22
|
+
desc 'sql_database', 'generate SQL database adapter'
|
23
|
+
register(Hecks::Domain::Adapters::SQLDatabase::CLI::GenerateSQLDatabase,
|
24
|
+
'sql_database',
|
25
|
+
'sql_database',
|
26
|
+
'Generate a SQL Server Database adapter') if File.file?('Domain')
|
27
|
+
|
28
|
+
desc 'domain_migrations', 'generate migrations for the sql database adapter based on your domain'
|
29
|
+
register(Hecks::Domain::Adapters::SQLDatabase::CLI::GenerateDomainMigrations,
|
30
|
+
'domain_migrations',
|
31
|
+
'domain_migrations',
|
32
|
+
'Generate Domain Migrations')
|
33
|
+
|
34
|
+
desc 'readme', 'Generate the hecks Readme with the latest examples'
|
35
|
+
end
|
data/lib/hecks-cli.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'active_support/inflector'
|
3
|
+
require 'hecks-packager'
|
4
|
+
require_relative 'generate'
|
5
|
+
require_relative 'package'
|
6
|
+
require_relative 'test'
|
7
|
+
require_relative 'console'
|
8
|
+
require_relative 'command_runner'
|
9
|
+
require_relative 'build'
|
10
|
+
|
11
|
+
module Hecks
|
12
|
+
class CLI < Thor
|
13
|
+
package_name 'hecks'
|
14
|
+
|
15
|
+
desc 'generate', 'generate'
|
16
|
+
subcommand('generate', Generate)
|
17
|
+
|
18
|
+
desc 'package', 'package'
|
19
|
+
subcommand('package', Package) if File.file?('Domain')
|
20
|
+
|
21
|
+
desc 'test', 'test'
|
22
|
+
subcommand('test', Test) if File.file?('hecks.gemspec')
|
23
|
+
|
24
|
+
long_desc 'Generate a domain'
|
25
|
+
method_option :dryrun, aliases: '-d', type: :boolean, desc: 'Output commands without running'
|
26
|
+
|
27
|
+
register(Hecks::Domain::CLI::New, 'new', 'new', 'Create a new Domain') if File.file?('Domain')
|
28
|
+
end
|
29
|
+
end
|
data/lib/package.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
class Package < Thor
|
2
|
+
desc 'lambda', 'lambda'
|
3
|
+
register Hecks::Packager::CLI::GenerateLambdaPackage,
|
4
|
+
'lambda',
|
5
|
+
'lambda',
|
6
|
+
'Generate Lambda Package'
|
7
|
+
|
8
|
+
desc 'binary', 'binary'
|
9
|
+
register Hecks::Packager::CLI::GenerateBinaryPackage,
|
10
|
+
'binary',
|
11
|
+
'binary',
|
12
|
+
'Generate Binary Package'
|
13
|
+
end
|
data/lib/test.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
class Test < Thor
|
2
|
+
include Thor::Actions
|
3
|
+
|
4
|
+
class_option :no_cache, aliases: '-n', desc: 'download resources', default: false, type: :boolean
|
5
|
+
|
6
|
+
desc 'ci', 'Run and test the generators'
|
7
|
+
def ci
|
8
|
+
examples
|
9
|
+
packages
|
10
|
+
domain_adapters
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'domain_adapters', "run the domain adapter specs"
|
14
|
+
def domain_adapters
|
15
|
+
generate_resource_server('pizza_builder')
|
16
|
+
generate_sql_database('pizza_builder')
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'examples', 'Generate and run the example specs'
|
20
|
+
def examples
|
21
|
+
reset_example('pizza_builder')
|
22
|
+
run('rspec -f d')
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'packages', 'Generate and run the package specs'
|
26
|
+
def packages
|
27
|
+
build_binary_package('pizza_builder')
|
28
|
+
build_lambda_package('pizza_builder')
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def generate_sql_database(name)
|
34
|
+
run("cd spec/examples/#{name} && hecks generate sql_database")
|
35
|
+
end
|
36
|
+
|
37
|
+
def reset_example(name)
|
38
|
+
run("cd spec/examples/#{name} && rm -rf lib")
|
39
|
+
run("cd spec/examples/#{name} && rm -rf spec")
|
40
|
+
run("cd spec/examples/#{name} && hecks new")
|
41
|
+
end
|
42
|
+
|
43
|
+
def build_binary_package(name)
|
44
|
+
run("cd spec/examples/#{name} && hecks package binary #{'-n' if options[:no_cache]}")
|
45
|
+
end
|
46
|
+
|
47
|
+
def build_lambda_package(name)
|
48
|
+
run("cd spec/examples/#{name} && hecks package lambda")
|
49
|
+
end
|
50
|
+
|
51
|
+
def generate_resource_server(name)
|
52
|
+
run("cd spec/examples/#{name} && rm -rf config.ru")
|
53
|
+
run("cd spec/examples/#{name} && hecks generate resource_server")
|
54
|
+
run("cd spec/examples/#{name}")
|
55
|
+
end
|
56
|
+
end
|
metadata
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hecks-cli
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Chris Young
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-03-11 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Make the Domain the center of your programming world
|
14
|
+
email: chris@example.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/build.rb
|
20
|
+
- lib/command_runner.rb
|
21
|
+
- lib/console.rb
|
22
|
+
- lib/generate.rb
|
23
|
+
- lib/hecks-cli.rb
|
24
|
+
- lib/package.rb
|
25
|
+
- lib/test.rb
|
26
|
+
homepage: https://github.com/chrisyoung/hecks-domain
|
27
|
+
licenses:
|
28
|
+
- MIT
|
29
|
+
metadata: {}
|
30
|
+
post_install_message:
|
31
|
+
rdoc_options: []
|
32
|
+
require_paths:
|
33
|
+
- lib
|
34
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
requirements: []
|
45
|
+
rubyforge_project:
|
46
|
+
rubygems_version: 2.6.10
|
47
|
+
signing_key:
|
48
|
+
specification_version: 4
|
49
|
+
summary: DDD and Hexagonal Code Generators
|
50
|
+
test_files: []
|