evt-command_line-component_generator 1.0.1.2 → 2.0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/command_line/component_generator/commands/component.rb +1 -1
- data/source/%component_name%.gemspec.tt +16 -12
- data/source/Gemfile.tt +3 -3
- data/source/init.rb.tt +2 -2
- data/source/install-gems.sh +82 -11
- data/source/lib/%component_name%.rb.tt +11 -11
- data/source/lib/%component_name%/controls.rb.tt +8 -8
- data/source/lib/%component_name%/controls/time.rb.tt +1 -1
- data/source/lib/%component_name%/start.rb.tt +2 -2
- data/source/load_path.rb +5 -5
- data/source/script/start.tt +3 -3
- data/source/symlink-lib.sh.tt +64 -0
- data/source/test/automated.rb +3 -6
- data/source/test/automated/automated_init.rb +1 -1
- data/source/test/automated/database_connection.rb +3 -3
- data/source/test/interactive/interactive_init.rb +4 -2
- data/source/test/test_init.rb.tt +11 -7
- metadata +7 -7
- data/source/script/test-database-connection +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9dc83ce90b7d40d49debcda7337476597c604c5eb465a78d61a3e4faf8208fa
|
4
|
+
data.tar.gz: f03dd4d8d0967ca8aa516de2da62f0e18859902c2befee732ec65f30a7b4d727
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab294844b21cd720792cb5ebc1ec12ae44291f66f3801bd41d533a869ff5c6d12126af9562c0edabbf45b9784bffe908fcb010af1985ce31a9303af118438a52
|
7
|
+
data.tar.gz: 91618c55dcd7a1464ef7eaab75671cbcf7a03a6a584a01c0ba9b47e6a667aafbedbde38d53dcb7613f528a1cee0eacb64d1250fca7327a0388fb17fac7cd1266
|
@@ -1,20 +1,24 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
|
-
s.name =
|
4
|
-
s.version =
|
5
|
-
s.summary =
|
6
|
-
s.description =
|
3
|
+
s.name = "<%= component_name %>"
|
4
|
+
s.version = "0.0.0"
|
5
|
+
s.summary = " "
|
6
|
+
s.description = " "
|
7
7
|
|
8
|
-
s.authors = [
|
9
|
-
s.homepage =
|
10
|
-
s.licenses = [
|
8
|
+
s.authors = ["email@domain.com"]
|
9
|
+
s.homepage = "http://domain.com"
|
10
|
+
s.licenses = ["TODO"]
|
11
11
|
|
12
|
-
s.require_paths = [
|
13
|
-
s.files = Dir.glob(
|
12
|
+
s.require_paths = ["lib"]
|
13
|
+
s.files = Dir.glob("{lib}/**/*")
|
14
14
|
s.platform = Gem::Platform::RUBY
|
15
|
-
s.required_ruby_version =
|
15
|
+
s.required_ruby_version = ">= 2.4"
|
16
16
|
|
17
|
-
s.add_runtime_dependency
|
17
|
+
s.add_runtime_dependency "eventide-postgres"
|
18
18
|
|
19
|
-
s.add_development_dependency
|
19
|
+
s.add_development_dependency "evt-messaging-fixtures"
|
20
|
+
s.add_development_dependency "evt-entity_projection-fixtures"
|
21
|
+
s.add_development_dependency "evt-schema-fixtures"
|
22
|
+
|
23
|
+
s.add_development_dependency "test_bench"
|
20
24
|
end
|
data/source/Gemfile.tt
CHANGED
data/source/init.rb.tt
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative "load_path"
|
2
2
|
|
3
|
-
require
|
3
|
+
require "<%= component_name %>"
|
data/source/install-gems.sh
CHANGED
@@ -1,23 +1,94 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
set -euo pipefail
|
4
|
+
|
5
|
+
function boolean-var {
|
6
|
+
variable_name=$1
|
7
|
+
default=${2:-no}
|
8
|
+
|
9
|
+
val=${!variable_name:=$default}
|
10
|
+
|
11
|
+
if [[ "n|no|f|false|off|0" =~ $val ]]; then
|
12
|
+
echo 'false'
|
13
|
+
elif [[ "y|yes|t|true|on|1" =~ $val ]]; then
|
14
|
+
echo 'true'
|
15
|
+
else
|
16
|
+
echo "Variable \$$variable_name is set to \`$val' which is not a boolean value" >&2
|
17
|
+
echo >&2
|
18
|
+
exit 1
|
19
|
+
fi
|
20
|
+
}
|
21
|
+
|
22
|
+
if [ -z ${REMOVE_GEMS+x} ]; then
|
23
|
+
echo
|
24
|
+
echo "REMOVE_GEMS is not set. Using \"on\" by default."
|
25
|
+
remove_gems="on"
|
26
|
+
else
|
27
|
+
remove_gems=$REMOVE_GEMS
|
28
|
+
fi
|
29
|
+
|
30
|
+
gem_dir="./gems"
|
31
|
+
|
32
|
+
echo
|
33
|
+
echo "Install Gems"
|
34
|
+
echo "= = ="
|
35
|
+
|
36
|
+
if [ -z ${POSTURE+x} ]; then
|
37
|
+
echo "POSTURE is not set. Using \"operational\" by default."
|
38
|
+
posture="operational"
|
39
|
+
else
|
40
|
+
posture=$POSTURE
|
41
|
+
fi
|
42
|
+
|
43
|
+
echo "Posture: $posture"
|
44
|
+
echo "Gem Directory: $gem_dir"
|
45
|
+
echo "Remove Gems: $remove_gems"
|
46
|
+
|
47
|
+
echo
|
48
|
+
|
49
|
+
echo "Removing bundler configuration"
|
50
|
+
echo "- - -"
|
51
|
+
|
52
|
+
cmd="rm -rfv ./.bundle"
|
53
|
+
|
54
|
+
echo $cmd
|
55
|
+
($cmd)
|
56
|
+
|
9
57
|
echo
|
58
|
+
echo "Removing Gemfile.lock"
|
59
|
+
echo "- - -"
|
10
60
|
|
11
|
-
|
61
|
+
cmd="rm -fv Gemfile.lock"
|
62
|
+
|
63
|
+
echo $cmd
|
64
|
+
($cmd)
|
12
65
|
|
13
|
-
|
14
|
-
|
66
|
+
remove_gems=$(boolean-var remove_gems)
|
67
|
+
|
68
|
+
if $remove_gems; then
|
69
|
+
echo
|
70
|
+
echo "Removing installed gems"
|
71
|
+
echo "- - -"
|
72
|
+
|
73
|
+
cmd="rm -rf $gem_dir"
|
74
|
+
|
75
|
+
echo $cmd
|
76
|
+
($cmd)
|
77
|
+
fi
|
78
|
+
|
79
|
+
echo
|
80
|
+
echo "Installing bundle"
|
81
|
+
echo "- - -"
|
15
82
|
|
16
83
|
cmd="bundle install --standalone --path=./gems"
|
17
84
|
|
85
|
+
if [ operational == "$posture" ]; then
|
86
|
+
cmd="$cmd --without=development"
|
87
|
+
fi
|
88
|
+
|
18
89
|
echo $cmd
|
19
90
|
($cmd)
|
20
91
|
|
21
|
-
echo
|
22
|
-
echo
|
92
|
+
echo "- - -"
|
93
|
+
echo "(done)"
|
23
94
|
echo
|
@@ -1,17 +1,17 @@
|
|
1
|
-
require
|
1
|
+
require "eventide/postgres"
|
2
2
|
|
3
3
|
# TODO Load command and event message files"
|
4
|
-
# require
|
5
|
-
# require
|
4
|
+
# require "<%= component_name %>/messages/commands/..."
|
5
|
+
# require "<%= component_name %>/messages/events/..."
|
6
6
|
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
7
|
+
require "<%= component_name %>/<%= entity_name %>"
|
8
|
+
require "<%= component_name %>/projection"
|
9
|
+
require "<%= component_name %>/store"
|
10
10
|
|
11
|
-
require
|
12
|
-
require
|
11
|
+
require "<%= component_name %>/handlers/commands"
|
12
|
+
require "<%= component_name %>/handlers/events"
|
13
13
|
|
14
|
-
require
|
15
|
-
require
|
14
|
+
require "<%= component_name %>/consumers/commands"
|
15
|
+
require "<%= component_name %>/consumers/events"
|
16
16
|
|
17
|
-
require
|
17
|
+
require "<%= component_name %>/start"
|
@@ -1,14 +1,14 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "clock/controls"
|
2
|
+
require "identifier/uuid/controls"
|
3
3
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
4
|
+
require "<%= component_name %>/controls/id"
|
5
|
+
require "<%= component_name %>/controls/time"
|
6
|
+
require "<%= component_name %>/controls/version"
|
7
7
|
|
8
|
-
require
|
8
|
+
require "<%= component_name %>/controls/<%= entity_name %>"
|
9
9
|
|
10
10
|
# TODO Implement command controls (if using controls as part of your testing methodology)"
|
11
|
-
# require
|
11
|
+
# require "<%= component_name %>/controls/commands/..."
|
12
12
|
|
13
13
|
# TODO Implement event controls (if using controls as part of your testing methodology)"
|
14
|
-
# require
|
14
|
+
# require "<%= component_name %>/controls/events/..."
|
@@ -48,7 +48,7 @@ module <%= component_constant_name %>
|
|
48
48
|
|
49
49
|
module Raw
|
50
50
|
def self.example(time=nil, offset_milliseconds: nil)
|
51
|
-
offset_milliseconds ||=
|
51
|
+
offset_milliseconds ||= Effective.offset_milliseconds
|
52
52
|
Clock::Controls::Time::Offset::Raw.example(offset_milliseconds, time: time, precision: ISO8601.precision)
|
53
53
|
end
|
54
54
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
module <%= component_constant_name %>
|
4
4
|
module Start
|
5
5
|
def self.call
|
6
|
-
Consumers::Commands.start(
|
7
|
-
Consumers::Events.start(
|
6
|
+
Consumers::Commands.start("<%= entity_stream_name %>:command")
|
7
|
+
Consumers::Events.start("<%= entity_stream_name %>")
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
data/source/load_path.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
bundler_standalone_loader =
|
1
|
+
bundler_standalone_loader = ENV["BUNDLER_STANDALONE_LOADER"] || "gems/bundler/setup"
|
2
2
|
|
3
3
|
begin
|
4
4
|
require_relative bundler_standalone_loader
|
5
5
|
rescue LoadError
|
6
|
-
|
6
|
+
warn "WARNING: Standalone bundle loader is not at #{bundler_standalone_loader}. Using Bundler to load gems."
|
7
7
|
require "bundler/setup"
|
8
8
|
Bundler.require
|
9
9
|
end
|
10
10
|
|
11
|
-
lib_dir = File.expand_path(
|
12
|
-
$LOAD_PATH.unshift
|
11
|
+
lib_dir = File.expand_path("lib", __dir__)
|
12
|
+
$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
|
13
13
|
|
14
|
-
libraries_dir = ENV[
|
14
|
+
libraries_dir = ENV["LIBRARIES_HOME"]
|
15
15
|
unless libraries_dir.nil?
|
16
16
|
libraries_dir = File.expand_path(libraries_dir)
|
17
17
|
$LOAD_PATH.unshift libraries_dir unless $LOAD_PATH.include?(libraries_dir)
|
data/source/script/start.tt
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require_relative
|
3
|
+
require_relative "../init"
|
4
4
|
|
5
|
-
require
|
5
|
+
require "component_host"
|
6
6
|
|
7
|
-
ComponentHost.start(
|
7
|
+
ComponentHost.start("<%= service_name %>-component") do |host|
|
8
8
|
host.register(<%= component_constant_name %>::Start)
|
9
9
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -eo pipefail
|
4
|
+
|
5
|
+
if [ -z ${LIBRARIES_HOME+x} ]; then
|
6
|
+
echo "LIBRARIES_HOME must be set to the libraries directory path... exiting"
|
7
|
+
exit 1
|
8
|
+
fi
|
9
|
+
|
10
|
+
if [ ! -d "$LIBRARIES_HOME" ]; then
|
11
|
+
echo "$LIBRARIES_HOME does not exist... exiting"
|
12
|
+
exit 1
|
13
|
+
fi
|
14
|
+
|
15
|
+
function make-directory {
|
16
|
+
directory=$1
|
17
|
+
|
18
|
+
lib_directory="$LIBRARIES_HOME/$directory"
|
19
|
+
|
20
|
+
if [ ! -d "$lib_directory" ]; then
|
21
|
+
echo "- making directory $lib_directory"
|
22
|
+
mkdir -p "$lib_directory"
|
23
|
+
fi
|
24
|
+
}
|
25
|
+
|
26
|
+
function symlink-lib {
|
27
|
+
name=$1
|
28
|
+
directory=$2
|
29
|
+
|
30
|
+
echo
|
31
|
+
echo "Symlinking $name"
|
32
|
+
echo "- - -"
|
33
|
+
|
34
|
+
src="$(pwd)/lib"
|
35
|
+
dest="$LIBRARIES_HOME"
|
36
|
+
if [ ! -z "$directory" ]; then
|
37
|
+
src="$src/$directory"
|
38
|
+
dest="$dest/$directory"
|
39
|
+
|
40
|
+
make-directory $directory
|
41
|
+
fi
|
42
|
+
src="$src/$name"
|
43
|
+
|
44
|
+
echo "- destination is $dest"
|
45
|
+
|
46
|
+
full_name=$directory/$name
|
47
|
+
|
48
|
+
for entry in $src*; do
|
49
|
+
entry_basename=$(basename $entry)
|
50
|
+
dest_item="$dest/$entry_basename"
|
51
|
+
|
52
|
+
echo "- symlinking $entry_basename to $dest_item"
|
53
|
+
|
54
|
+
cmd="ln -s $entry $dest_item"
|
55
|
+
echo $cmd
|
56
|
+
($cmd)
|
57
|
+
done
|
58
|
+
|
59
|
+
echo "- - -"
|
60
|
+
echo "($name done)"
|
61
|
+
echo
|
62
|
+
}
|
63
|
+
|
64
|
+
symlink-lib "<%= component_name %>"
|
data/source/test/automated.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
require_relative
|
2
|
-
|
3
|
-
require 'test_bench/cli'
|
1
|
+
require_relative "./test_init"
|
4
2
|
|
5
3
|
TestBench::CLI.(
|
6
|
-
|
7
|
-
|
8
|
-
) or exit 1
|
4
|
+
exclude_file_pattern: %r{/_|sketch|(_init\.rb|_tests\.rb)\z}
|
5
|
+
)
|
@@ -1 +1 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative "../test_init"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# This test is for example purposes. You may remove it once it has served its purpose.
|
2
2
|
# More on the TestBench test framework for Ruby: https://github.com/ntl/test-bench/blob/master/README.adoc
|
3
3
|
|
4
|
-
require_relative
|
4
|
+
require_relative "./automated_init"
|
5
5
|
|
6
6
|
context "Database Connection" do
|
7
7
|
session = MessageStore::Postgres::Session.build
|
@@ -9,8 +9,8 @@ context "Database Connection" do
|
|
9
9
|
refute(session.connected?)
|
10
10
|
|
11
11
|
test "Connects on first use" do
|
12
|
-
|
13
|
-
|
12
|
+
refute_raises do
|
13
|
+
session.execute("SELECT 1;")
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
data/source/test/test_init.rb.tt
CHANGED
@@ -1,15 +1,19 @@
|
|
1
|
-
ENV[
|
2
|
-
ENV[
|
1
|
+
ENV["CONSOLE_DEVICE"] ||= "stdout"
|
2
|
+
ENV["LOG_LEVEL"] ||= "_min"
|
3
3
|
|
4
4
|
puts RUBY_DESCRIPTION
|
5
|
-
puts
|
6
5
|
|
7
|
-
|
6
|
+
puts
|
7
|
+
puts "TEST_BENCH_DETAIL: #{ENV["TEST_BENCH_DETAIL"].inspect}"
|
8
|
+
puts
|
8
9
|
|
9
|
-
|
10
|
+
require_relative "../init.rb"
|
11
|
+
require "<%= component_name %>/controls"
|
10
12
|
|
11
|
-
require
|
13
|
+
require "test_bench"; TestBench.activate
|
12
14
|
|
13
|
-
require
|
15
|
+
require "messaging/fixtures"
|
16
|
+
require "entity_projection/fixtures"
|
17
|
+
require "schema/fixtures"
|
14
18
|
|
15
19
|
include <%= component_constant_name %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-command_line-component_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: executable
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -87,8 +87,8 @@ files:
|
|
87
87
|
- source/lib/%component_name%/store.rb.tt
|
88
88
|
- source/load_path.rb
|
89
89
|
- source/script/start.tt
|
90
|
-
- source/script/test-database-connection
|
91
90
|
- source/settings/message_store_postgres.json.example
|
91
|
+
- source/symlink-lib.sh.tt
|
92
92
|
- source/test.sh
|
93
93
|
- source/test/automated.rb
|
94
94
|
- source/test/automated/automated_init.rb
|
@@ -99,7 +99,7 @@ homepage: https://github.com/eventide-project/command-line-component-generator
|
|
99
99
|
licenses:
|
100
100
|
- MIT
|
101
101
|
metadata: {}
|
102
|
-
post_install_message:
|
102
|
+
post_install_message:
|
103
103
|
rdoc_options: []
|
104
104
|
require_paths:
|
105
105
|
- lib
|
@@ -114,8 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: '0'
|
116
116
|
requirements: []
|
117
|
-
rubygems_version: 3.
|
118
|
-
signing_key:
|
117
|
+
rubygems_version: 3.1.2
|
118
|
+
signing_key:
|
119
119
|
specification_version: 4
|
120
120
|
summary: Command line Eventide component generator
|
121
121
|
test_files: []
|
@@ -1,28 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require_relative '../init'
|
4
|
-
|
5
|
-
puts 'Testing Message Store Database Connection'
|
6
|
-
puts '= = ='
|
7
|
-
|
8
|
-
session = MessageStore::Postgres::Session.build
|
9
|
-
|
10
|
-
puts "Connection Status: #{session.open? ? 'open' : 'closed' }"
|
11
|
-
|
12
|
-
session.open
|
13
|
-
|
14
|
-
puts 'Opening connection'
|
15
|
-
puts "Connection Status: #{session.open? ? 'open' : 'closed' }"
|
16
|
-
|
17
|
-
sql_command = 'SELECT 1;'
|
18
|
-
puts "Executing test command: #{sql_command}"
|
19
|
-
|
20
|
-
session.execute(sql_command)
|
21
|
-
|
22
|
-
puts 'Closing connection'
|
23
|
-
session.close
|
24
|
-
|
25
|
-
puts "Connection Status: #{session.open? ? 'open' : 'closed' }"
|
26
|
-
|
27
|
-
puts '- - -'
|
28
|
-
puts 'done'
|