hecks 0.0.8 → 0.1.2
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 +4 -4
- data/bin/hecks +1 -0
- data/lib/cli.rb +28 -0
- data/lib/cli/build.rb +13 -0
- data/lib/cli/{commands/console.rb → console.rb} +0 -0
- data/lib/cli/generate.rb +35 -0
- data/lib/cli/{commands/package.rb → package.rb} +2 -5
- data/lib/cli/test.rb +56 -0
- data/lib/{console/console.rb → console.rb} +1 -2
- data/lib/console/commands.rb +1 -1
- data/lib/hecks.rb +6 -6
- data/lib/packager.rb +2 -0
- data/lib/packager/generate_binary_package.rb +146 -0
- data/lib/packager/generate_lambda_package.rb +26 -0
- data/lib/{cli/commands/generate/templates/binary_package/build/resources → packager/templates}/Gemfile.tt +1 -1
- data/lib/{cli/commands/generate → packager}/templates/binary_package/build/linux-x86_64/lib/app/hello.rb +0 -0
- data/lib/{cli/commands/generate → packager}/templates/binary_package/build/resources/%domain_name%.rb.tt +6 -2
- data/lib/packager/templates/binary_package/build/resources/Dockerfile.tt +14 -0
- data/lib/{cli/commands/generate → packager}/templates/binary_package/build/resources/bundle/config +0 -0
- data/lib/{cli/commands/generate → packager}/templates/binary_package/build/resources/wrapper.tt +0 -0
- data/lib/{cli/commands/generate → packager}/templates/lambda_package/handler.js.tt +0 -0
- data/lib/{cli/commands/generate → packager}/templates/lambda_package/serverless.yml.tt +0 -0
- metadata +45 -94
- data/lib/adapters/adapters.rb +0 -6
- data/lib/adapters/events/events.rb +0 -27
- data/lib/adapters/logger/logger.rb +0 -18
- data/lib/adapters/memory_database/memory_database.rb +0 -18
- data/lib/adapters/resource_server/methods.rb +0 -22
- data/lib/adapters/resource_server/methods/create.rb +0 -49
- data/lib/adapters/resource_server/methods/delete.rb +0 -45
- data/lib/adapters/resource_server/methods/read.rb +0 -44
- data/lib/adapters/resource_server/methods/update.rb +0 -50
- data/lib/adapters/resource_server/resource_server.rb +0 -52
- data/lib/adapters/validator/validator.rb +0 -33
- data/lib/application/application.rb +0 -45
- data/lib/application/commands/commands.rb +0 -5
- data/lib/application/commands/create.rb +0 -52
- data/lib/application/commands/crud_handler.rb +0 -40
- data/lib/application/commands/delete.rb +0 -40
- data/lib/application/commands/runner.rb +0 -48
- data/lib/application/commands/update.rb +0 -41
- data/lib/application/queries/find_by_id.rb +0 -19
- data/lib/application/queries/queries.rb +0 -2
- data/lib/application/queries/query_runner.rb +0 -28
- data/lib/cli/cli.rb +0 -24
- data/lib/cli/commands.rb +0 -5
- data/lib/cli/commands/build.rb +0 -10
- data/lib/cli/commands/generate.rb +0 -26
- data/lib/cli/commands/generate/builder.rb +0 -60
- data/lib/cli/commands/generate/builder/aggregate_command_line_builder.rb +0 -18
- data/lib/cli/commands/generate/builder/reference_command_line_builder.rb +0 -19
- data/lib/cli/commands/generate/builder/value_object_command_line_builder.rb +0 -19
- data/lib/cli/commands/generate/generate_aws_package.rb +0 -17
- data/lib/cli/commands/generate/generate_binary_package.rb +0 -92
- data/lib/cli/commands/generate/generate_domain_object.rb +0 -71
- data/lib/cli/commands/generate/generate_domain_object/assignment_template.rb +0 -36
- data/lib/cli/commands/generate/generate_domain_object/option_formatter.rb +0 -30
- data/lib/cli/commands/generate/generate_lambda_package.rb +0 -20
- data/lib/cli/commands/generate/generate_resource_server.rb +0 -17
- data/lib/cli/commands/generate/new.rb +0 -47
- data/lib/cli/commands/generate/templates/aggregate/lib/domain/%name%/%head_name%.rb.tt +0 -16
- data/lib/cli/commands/generate/templates/aggregate/lib/domain/%name%/%name%.rb.tt +0 -9
- data/lib/cli/commands/generate/templates/aggregate/lib/domain/%name%/repository.rb.tt +0 -40
- data/lib/cli/commands/generate/templates/binary_package/build/resources/Dockerfile.tt +0 -8
- data/lib/cli/commands/generate/templates/domain/%name%.gemspec.tt +0 -12
- data/lib/cli/commands/generate/templates/domain/Version +0 -1
- data/lib/cli/commands/generate/templates/domain/lib/%name%.rb.tt +0 -21
- data/lib/cli/commands/generate/templates/domain/spec/spec_helper.rb.tt +0 -4
- data/lib/cli/commands/generate/templates/reference/lib/domain/%module_name%/%file_name%.rb.tt +0 -25
- data/lib/cli/commands/generate/templates/resource_server/config.ru.tt +0 -8
- data/lib/cli/commands/generate/templates/value_object/lib/domain/%module_name%/%name%.rb.tt +0 -24
- data/lib/cli/commands/test.rb +0 -41
- data/lib/domain_builder/attribute.rb +0 -33
- data/lib/domain_builder/domain.rb +0 -17
- data/lib/domain_builder/domain_builder.rb +0 -35
- data/lib/domain_builder/domain_module.rb +0 -26
- data/lib/domain_builder/domain_object.rb +0 -37
- data/lib/domain_builder/head.rb +0 -6
- data/lib/domain_builder/reference.rb +0 -17
- data/lib/domain_builder/value.rb +0 -6
@@ -1,40 +0,0 @@
|
|
1
|
-
class CRUDHandler
|
2
|
-
attr_reader :module_name, :application
|
3
|
-
|
4
|
-
def initialize(module_name:, application:)
|
5
|
-
@module_name = module_name
|
6
|
-
@application = application
|
7
|
-
end
|
8
|
-
|
9
|
-
def create(attributes)
|
10
|
-
application.call(
|
11
|
-
module_name: module_name,
|
12
|
-
command_name: :create,
|
13
|
-
args: attributes
|
14
|
-
)
|
15
|
-
end
|
16
|
-
|
17
|
-
def read(id)
|
18
|
-
application.query(
|
19
|
-
module_name: module_name,
|
20
|
-
query_name: :find_by_id,
|
21
|
-
args: {id: id}
|
22
|
-
)
|
23
|
-
end
|
24
|
-
|
25
|
-
def update(id, attributes)
|
26
|
-
application.call(
|
27
|
-
module_name: module_name,
|
28
|
-
command_name: :update,
|
29
|
-
args: attributes.merge(id: id)
|
30
|
-
)
|
31
|
-
end
|
32
|
-
|
33
|
-
def delete(id)
|
34
|
-
application.call(
|
35
|
-
module_name: module_name,
|
36
|
-
command_name: :delete,
|
37
|
-
args: {id: id}
|
38
|
-
)
|
39
|
-
end
|
40
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Hecks
|
3
|
-
module Adapters
|
4
|
-
class Application
|
5
|
-
module Commands
|
6
|
-
class Delete
|
7
|
-
attr_accessor :args, :errors, :repository
|
8
|
-
|
9
|
-
def initialize(args: nil, repository:, domain_module:)
|
10
|
-
@args = args || chained_command.args
|
11
|
-
@repository = repository
|
12
|
-
@errors = { base: [] }
|
13
|
-
end
|
14
|
-
|
15
|
-
def call
|
16
|
-
delete
|
17
|
-
self
|
18
|
-
end
|
19
|
-
|
20
|
-
def name
|
21
|
-
self.class.to_s.split('::').last.underscore
|
22
|
-
end
|
23
|
-
|
24
|
-
def to_h
|
25
|
-
{ errors: errors, args: args }
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
attr_accessor :command_result, :repository
|
31
|
-
|
32
|
-
def delete
|
33
|
-
@result = repository.delete(args[:id])
|
34
|
-
@errors[:base] << "cound not find #{args[:id]}" unless @result
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module Hecks
|
2
|
-
module Adapters
|
3
|
-
class Application
|
4
|
-
class Runner
|
5
|
-
attr_reader :module_name, :command
|
6
|
-
|
7
|
-
def initialize(command_name:, module_name:, args:, application:)
|
8
|
-
@command_name = command_name
|
9
|
-
@module_name = module_name
|
10
|
-
@args = args
|
11
|
-
@application = application
|
12
|
-
@domain_spec = application.domain_spec
|
13
|
-
end
|
14
|
-
|
15
|
-
def call()
|
16
|
-
fetch_command
|
17
|
-
run_command
|
18
|
-
broadcast
|
19
|
-
command
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
attr_reader :command_name, :args, :application, :domain_spec
|
25
|
-
|
26
|
-
def broadcast
|
27
|
-
application.events_port.send(command: command, module_name: module_name)
|
28
|
-
end
|
29
|
-
|
30
|
-
def fetch_command
|
31
|
-
@command = Commands.const_get(command_name.to_s.camelcase).new(
|
32
|
-
repository: application.database[module_name],
|
33
|
-
args: args,
|
34
|
-
domain_module: fetch_module
|
35
|
-
)
|
36
|
-
end
|
37
|
-
|
38
|
-
def fetch_module
|
39
|
-
domain_spec.domain_modules[module_name.to_s.camelize.to_sym]
|
40
|
-
end
|
41
|
-
|
42
|
-
def run_command
|
43
|
-
@command = command.call
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Hecks
|
3
|
-
module Adapters
|
4
|
-
class Application
|
5
|
-
module Commands
|
6
|
-
class Update
|
7
|
-
attr_accessor :args, :errors, :id, :repository
|
8
|
-
|
9
|
-
def initialize(args: nil, repository: Repository, domain_module:)
|
10
|
-
@repository = repository
|
11
|
-
@args = args
|
12
|
-
@errors = []
|
13
|
-
@id = @args.delete(:id)
|
14
|
-
end
|
15
|
-
|
16
|
-
def name
|
17
|
-
self.class.to_s.split('::').last.underscore
|
18
|
-
end
|
19
|
-
|
20
|
-
def call
|
21
|
-
update
|
22
|
-
self
|
23
|
-
end
|
24
|
-
|
25
|
-
def to_h
|
26
|
-
{ id: id, args: args }
|
27
|
-
end
|
28
|
-
|
29
|
-
private
|
30
|
-
|
31
|
-
attr_reader :repository_result
|
32
|
-
|
33
|
-
def update
|
34
|
-
return if @errors.count.positive?
|
35
|
-
@repository_result = repository.update(id, args)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Hecks
|
3
|
-
module Adapters
|
4
|
-
class Application
|
5
|
-
module Queries
|
6
|
-
class FindById
|
7
|
-
def initialize(repository:)
|
8
|
-
@repository = repository
|
9
|
-
end
|
10
|
-
|
11
|
-
def call(params)
|
12
|
-
return unless params.keys == [:id]
|
13
|
-
@repository.read(params[:id])
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Hecks
|
2
|
-
module Adapters
|
3
|
-
class Application
|
4
|
-
class QueryRunner
|
5
|
-
def initialize(query_name:, application:, module_name:, args:)
|
6
|
-
@query_name = query_name
|
7
|
-
@application = application
|
8
|
-
@module_name = module_name
|
9
|
-
@args = args
|
10
|
-
end
|
11
|
-
|
12
|
-
def call()
|
13
|
-
fetch.new(repository: repository).call(@args)
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def fetch
|
19
|
-
Queries.const_get(@query_name.to_s.camelcase)
|
20
|
-
end
|
21
|
-
|
22
|
-
def repository
|
23
|
-
@application.database[@module_name]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
data/lib/cli/cli.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'active_support/inflector'
|
3
|
-
require_relative 'command_runner'
|
4
|
-
require_relative 'commands'
|
5
|
-
|
6
|
-
module Hecks
|
7
|
-
class CLI < Thor
|
8
|
-
package_name 'hecks'
|
9
|
-
|
10
|
-
desc 'generate', 'generate'
|
11
|
-
subcommand('generate', Generate)
|
12
|
-
|
13
|
-
desc 'package', 'package'
|
14
|
-
subcommand('package', Package) if File.file?('HECKS')
|
15
|
-
|
16
|
-
long_desc 'Generate a domain'
|
17
|
-
method_option :dryrun,
|
18
|
-
aliases: '-d',
|
19
|
-
type: :boolean,
|
20
|
-
desc: 'Output commands without running'
|
21
|
-
|
22
|
-
register(New, 'new', 'new', 'Create a new Domain') if File.file?('HECKS')
|
23
|
-
end
|
24
|
-
end
|
data/lib/cli/commands.rb
DELETED
data/lib/cli/commands/build.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require_relative 'generate/new'
|
3
|
-
require_relative 'generate/generate_domain_object'
|
4
|
-
require_relative 'generate/generate_resource_server'
|
5
|
-
require_relative 'generate/builder'
|
6
|
-
|
7
|
-
|
8
|
-
class Generate < Thor
|
9
|
-
desc 'domain_objects', 'generate domain objects'
|
10
|
-
method_option :type,
|
11
|
-
aliases: '-t',
|
12
|
-
required: true,
|
13
|
-
desc: 'The type of the domain object you want to generate',
|
14
|
-
banner: '[OBJECT_TYPE]',
|
15
|
-
enum: %w(entity value_object aggregate reference)
|
16
|
-
register(GenerateDomainObject,
|
17
|
-
'domain_object',
|
18
|
-
'domain_object',
|
19
|
-
'Generate Domain Objects') if File.file?('HECKS')
|
20
|
-
|
21
|
-
desc 'resource_server', 'generate resource_server'
|
22
|
-
register(GenerateResourceServer,
|
23
|
-
'resource_server',
|
24
|
-
'resource_server',
|
25
|
-
'Generate A Resource Server for a domain') if File.file?('HECKS')
|
26
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
require_relative 'builder/value_object_command_line_builder'
|
5
|
-
require_relative 'builder/aggregate_command_line_builder'
|
6
|
-
require_relative 'builder/reference_command_line_builder'
|
7
|
-
|
8
|
-
module Hecks
|
9
|
-
class Builder
|
10
|
-
def initialize(hecks_file:, name:, dry_run: false)
|
11
|
-
@name = name
|
12
|
-
@domain = eval(hecks_file).domain
|
13
|
-
@dry_run = dry_run
|
14
|
-
@runner = CommandRunner.new(domain, name, dry_run)
|
15
|
-
end
|
16
|
-
|
17
|
-
def call
|
18
|
-
delete_tmpfile
|
19
|
-
puts "\n"
|
20
|
-
generate :domain
|
21
|
-
generate :modules
|
22
|
-
generate :value_objects
|
23
|
-
generate :references
|
24
|
-
execute_tmpfile && return unless @dry_run
|
25
|
-
print_tmpfile
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
attr_reader :runner, :name, :domain
|
31
|
-
|
32
|
-
def print_tmpfile
|
33
|
-
puts File.read('tmp/hecks')
|
34
|
-
end
|
35
|
-
|
36
|
-
def delete_tmpfile
|
37
|
-
return unless Pathname('tmp/hecks').exist?
|
38
|
-
FileUtils.rm('tmp/hecks')
|
39
|
-
end
|
40
|
-
|
41
|
-
def execute_tmpfile
|
42
|
-
exec('bash -x tmp/hecks')
|
43
|
-
end
|
44
|
-
|
45
|
-
def generate(command)
|
46
|
-
case command
|
47
|
-
when :references
|
48
|
-
ReferenceCommandLineBuilder.build(domain, runner)
|
49
|
-
when :domain
|
50
|
-
runner.call(['new', '-n', name])
|
51
|
-
when :modules
|
52
|
-
AggregateCommandLineBuilder.build(domain, runner)
|
53
|
-
when :value_objects
|
54
|
-
ValueObjectCommandLineBuilder.build(domain, runner)
|
55
|
-
else
|
56
|
-
raise "unrecognized command: #{command}"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Hecks
|
2
|
-
class Builder
|
3
|
-
module AggregateCommandLineBuilder
|
4
|
-
def self.build(domain, runner)
|
5
|
-
domain.domain_modules.values.each do |domain_module|
|
6
|
-
runner.call(
|
7
|
-
[
|
8
|
-
'generate domain_object',
|
9
|
-
'-t', 'aggregate',
|
10
|
-
'-n', domain_module.name,
|
11
|
-
'--head_name', domain_module.head.name,
|
12
|
-
'-a', domain_module.head.attribute_string
|
13
|
-
])
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Hecks
|
2
|
-
class Builder
|
3
|
-
module ReferenceCommandLineBuilder
|
4
|
-
def self.build(domain, runner)
|
5
|
-
domain.domain_modules.values.each do |domain_module|
|
6
|
-
domain_module.references.each do |reference|
|
7
|
-
runner.call([
|
8
|
-
'generate domain_object',
|
9
|
-
'-t', 'reference',
|
10
|
-
'-n', reference.name,
|
11
|
-
'-m', domain_module.name,
|
12
|
-
'-r', reference.referenced_entity
|
13
|
-
])
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Hecks
|
2
|
-
class Builder
|
3
|
-
module ValueObjectCommandLineBuilder
|
4
|
-
def self.build(domain, runner)
|
5
|
-
domain.domain_modules.values.each do |domain_module|
|
6
|
-
(domain_module.objects - [domain_module.head]).each do |value_object|
|
7
|
-
runner.call([
|
8
|
-
'generate domain_object',
|
9
|
-
'-t', 'value_object',
|
10
|
-
'-n', value_object.name,
|
11
|
-
'-m', domain_module.name,
|
12
|
-
'-a', value_object.attribute_string
|
13
|
-
])
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
class GenerateResourceServer < Thor::Group; end
|
2
|
-
|
3
|
-
class GeneratePackage
|
4
|
-
include Thor::Actions
|
5
|
-
|
6
|
-
def self.source_root
|
7
|
-
File.dirname(__FILE__) + '/templates/'
|
8
|
-
end
|
9
|
-
|
10
|
-
def create_package
|
11
|
-
directory('package', './packages/lambda')
|
12
|
-
end
|
13
|
-
|
14
|
-
def domain
|
15
|
-
File.basename(Dir.getwd)
|
16
|
-
end
|
17
|
-
end
|
@@ -1,92 +0,0 @@
|
|
1
|
-
class GenerateBinaryPackage < Thor::Group
|
2
|
-
include Thor::Actions
|
3
|
-
|
4
|
-
HOST = "http://d6r77u77i8pq3.cloudfront.net/releases"
|
5
|
-
OSX_BINARY = "traveling-ruby-20150715-2.2.2-osx.tar.gz"
|
6
|
-
LINUX_BINARY = 'traveling-ruby-20150715-2.2.2-linux-x86_64.tar.gz'
|
7
|
-
BUILD_DIR = 'packages/binary/build'
|
8
|
-
RESOURCES_DIR = BUILD_DIR + '/resources'
|
9
|
-
OSX_DIR = BUILD_DIR + '/osx'
|
10
|
-
OSX_LIB_DIR = OSX_DIR + '/lib'
|
11
|
-
OSX_APP_DIR = OSX_LIB_DIR + '/app'
|
12
|
-
LINUX_DIR = BUILD_DIR + '/linux-x86_64'
|
13
|
-
LINUX_LIB_DIR = LINUX_DIR + 'lib'
|
14
|
-
LINUX_APP_DIR = LINUX_LIB_DIR + '/app'
|
15
|
-
|
16
|
-
def self.source_root
|
17
|
-
File.dirname(__FILE__) + '/templates'
|
18
|
-
end
|
19
|
-
|
20
|
-
def create_package_folder
|
21
|
-
run("rm -rf packages/binary")
|
22
|
-
directory('binary_package', './packages/binary')
|
23
|
-
end
|
24
|
-
|
25
|
-
def domain_name
|
26
|
-
Dir.pwd.split('/').last
|
27
|
-
end
|
28
|
-
|
29
|
-
def build
|
30
|
-
package(OSX_APP_DIR, OSX_LIB_DIR, OSX_BINARY, OSX_DIR)
|
31
|
-
package(LINUX_APP_DIR, LINUX_LIB_DIR, LINUX_BINARY, LINUX_DIR)
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def package(app_dir, lib_dir, binary, package_dir)
|
37
|
-
empty_directory(app_dir)
|
38
|
-
empty_directory(lib_dir + '/ruby')
|
39
|
-
download(binary, lib_dir)
|
40
|
-
copy_resources(app_dir, package_dir)
|
41
|
-
bundle_with_ruby_2_2_2(app_dir)
|
42
|
-
reduce_package_size(app_dir)
|
43
|
-
end
|
44
|
-
|
45
|
-
def reduce_package_size(app_dir)
|
46
|
-
files = %w(test tests spec features benchmark README* CHANGE* Change*
|
47
|
-
COPYING* LICENSE* MIT-LICENSE* TODO *.txt *.md *.rdoc doc docs example
|
48
|
-
examples sample doc-api
|
49
|
-
)
|
50
|
-
files.each do |file|
|
51
|
-
run("rm -rf #{app_dir}/vendor/ruby/*/gems/*/#{file}")
|
52
|
-
end
|
53
|
-
|
54
|
-
run("rm -rf #{app_dir}/vendor/*/*/cache/*")
|
55
|
-
%w(.gitignore .travis.yml).each do |file|
|
56
|
-
run("rm -rf #{app_dir}/vendor/ruby/*/gems/*/#{file}")
|
57
|
-
end
|
58
|
-
|
59
|
-
%w(MAKEfile */Makefile */tmp).each do |file|
|
60
|
-
run("rm -f #{app_dir}/vendor/ruby/*/gems/*/ext/#{file}")
|
61
|
-
end
|
62
|
-
|
63
|
-
%w(*.c *.cpp *.h *.rl *extconf.rb *.java *.class *.md).each do |file|
|
64
|
-
run("find #{app_dir}/vendor/ruby -name '#{file}' | xargs rm -f")
|
65
|
-
end
|
66
|
-
|
67
|
-
%w(*.0 *.so *.bundle).each do |file|
|
68
|
-
run("find #{app_dir}/vendor/ruby/*/gems -name '#{file}' | xargs rm -f")
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def copy_resources(app_dir, package_dir)
|
73
|
-
run("cp #{RESOURCES_DIR}/Gemfile #{app_dir}")
|
74
|
-
run("cp -rf #{RESOURCES_DIR}/bundle #{app_dir}/.bundle")
|
75
|
-
run("cp -rf #{RESOURCES_DIR}/#{domain_name}.rb #{app_dir}/#{domain_name}.rb")
|
76
|
-
run("cp -rf #{RESOURCES_DIR}/wrapper #{package_dir}/#{domain_name}")
|
77
|
-
run("cd #{package_dir} && chmod 744 #{domain_name}")
|
78
|
-
end
|
79
|
-
|
80
|
-
def download(binary, lib_dir)
|
81
|
-
run("cd #{RESOURCES_DIR} && curl -O #{HOST}/#{binary}")
|
82
|
-
run("tar -xzf #{RESOURCES_DIR}/#{binary} -C #{lib_dir}/ruby")
|
83
|
-
end
|
84
|
-
|
85
|
-
def bundle_with_ruby_2_2_2(app_dir)
|
86
|
-
run("cp -rf #{RESOURCES_DIR}/Dockerfile #{app_dir}")
|
87
|
-
run("cp #{domain_name}-0.0.0.gem #{app_dir}" )
|
88
|
-
run("cd #{app_dir} && docker build -t #{domain_name} --no-cache .")
|
89
|
-
container = `docker create pizza_builder:latest`.gsub("\n", '')
|
90
|
-
run("docker cp #{container}:/usr/src/app/vendor #{app_dir}")
|
91
|
-
end
|
92
|
-
end
|