sample_core_api 0.0.5 → 0.0.6
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 +5 -5
- data/lib/application_configuration.rb +15 -2
- data/lib/cassandra/cassandra_service.rb +7 -4
- data/lib/consul/consul_service.rb +5 -2
- data/lib/container.rb +11 -0
- data/lib/rest/rest_configuration.rb +1 -0
- data/lib/rest/rest_service.rb +1 -1
- data/lib/sample_core_api.rb +26 -5
- metadata +43 -3
- data/lib/application_service.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9ce57ddca1656c1c4b1cf29aff4790ac0874914f
|
4
|
+
data.tar.gz: a6094edffaa60dbaa866b2044173bbea3e5a0190
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55c16eca7f830487f48b5c0cbc2f73e8b49f5c4b54285144e0292b18b8c98d8ec0c179dd4edc93131f600eb2fd4dbce229ec7a054221539ab022d2e896f4d4cf
|
7
|
+
data.tar.gz: 3fce448044bc187baf19c9d909de0605f099fbe07bb727da775f7e8ca44de1cac83336c06f932db47ac7c4ebf6745ae352f89286cb886098fefa6c576d5ceb28
|
@@ -2,10 +2,23 @@ module ApplicationConfiguration
|
|
2
2
|
def config
|
3
3
|
{
|
4
4
|
consul: {
|
5
|
-
|
5
|
+
consul_service_data: {
|
6
|
+
name: "Service-1",
|
7
|
+
id: "Service1",
|
8
|
+
port: 9292,
|
9
|
+
check: {
|
10
|
+
id: "bluesky-api",
|
11
|
+
name: "HTTP Health Check API on port 9292",
|
12
|
+
http: "http://localhost:9292/health-check-new",
|
13
|
+
tls_skip_verify: false,
|
14
|
+
method: "GET",
|
15
|
+
interval: "10s",
|
16
|
+
timeout: "1s"
|
17
|
+
}
|
18
|
+
}
|
6
19
|
},
|
7
20
|
rest: {
|
8
|
-
|
21
|
+
consul_check_http: "/health-check-new"
|
9
22
|
},
|
10
23
|
}
|
11
24
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'cassandra'
|
2
|
+
require './lib/container'
|
2
3
|
require_relative 'abstracted_cassandra_repository'
|
3
4
|
|
4
5
|
class CassandraService
|
@@ -8,11 +9,11 @@ class CassandraService
|
|
8
9
|
|
9
10
|
def initialize
|
10
11
|
puts 'init cassandra'
|
11
|
-
|
12
|
+
self.cassandra_cluster = Cassandra.cluster
|
12
13
|
end
|
13
14
|
|
14
|
-
def start
|
15
|
-
puts 'start cassandra, create cluster
|
15
|
+
def start
|
16
|
+
puts 'start cassandra, create cluster'
|
16
17
|
if !cassandra_cluster
|
17
18
|
cassandra_cluster = Cassandra.cluster
|
18
19
|
end
|
@@ -26,4 +27,6 @@ class CassandraService
|
|
26
27
|
cassandra_cluster.close
|
27
28
|
end
|
28
29
|
end
|
29
|
-
end
|
30
|
+
end
|
31
|
+
|
32
|
+
registerService CassandraService.new
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'diplomat'
|
2
|
+
require './lib/container'
|
2
3
|
require_relative 'consul_configuration'
|
3
4
|
|
4
5
|
class ConsulService
|
@@ -9,7 +10,6 @@ class ConsulService
|
|
9
10
|
def initialize
|
10
11
|
puts 'init consul'
|
11
12
|
self.consul_service_data = ConsulService::configure
|
12
|
-
Diplomat::Service.register(consul_service_data)
|
13
13
|
end
|
14
14
|
|
15
15
|
def start
|
@@ -17,10 +17,13 @@ class ConsulService
|
|
17
17
|
if !consul_service_data
|
18
18
|
consul_service_data = ConsulService::configure
|
19
19
|
end
|
20
|
+
Diplomat::Service.register(consul_service_data)
|
20
21
|
end
|
21
22
|
|
22
23
|
def stop
|
23
24
|
puts 'stop consul'
|
24
25
|
Diplomat::Service.deregister(consul_service_data[:id])
|
25
26
|
end
|
26
|
-
end
|
27
|
+
end
|
28
|
+
|
29
|
+
registerService ConsulService.new
|
data/lib/container.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require "dry-container"
|
2
|
+
require "dry-auto_inject"
|
3
|
+
|
4
|
+
Container = Dry::Container.new
|
5
|
+
Inject = Dry::AutoInject(Container)
|
6
|
+
|
7
|
+
def registerService instance
|
8
|
+
class_name = instance.class.name
|
9
|
+
name = class_name.sub(class_name[0], class_name[0].downcase)
|
10
|
+
Container.register(name, instance)
|
11
|
+
end
|
data/lib/rest/rest_service.rb
CHANGED
data/lib/sample_core_api.rb
CHANGED
@@ -1,11 +1,32 @@
|
|
1
1
|
require 'bundler/setup'
|
2
|
+
require 'sinatra/base'
|
2
3
|
require_relative 'application_configuration'
|
3
|
-
|
4
|
-
|
4
|
+
require_relative 'cassandra/cassandra_service'
|
5
|
+
require_relative 'consul/consul_service'
|
6
|
+
require_relative 'rest/rest_service'
|
7
|
+
require_relative 'container'
|
8
|
+
# Dir["#{File.dirname(__FILE__)}/**/*.rb"].each {|file| require file }
|
5
9
|
|
6
10
|
class SampleCoreApi
|
7
|
-
extend ::ApplicationService
|
8
11
|
extend ::ApplicationConfiguration
|
9
|
-
|
12
|
+
include Inject["consulService","cassandraService"]
|
13
|
+
|
14
|
+
def initialize(config)
|
15
|
+
@config = config
|
16
|
+
end
|
17
|
+
|
18
|
+
def run_rest_services
|
19
|
+
RestService.run!
|
20
|
+
end
|
10
21
|
|
11
|
-
|
22
|
+
def start
|
23
|
+
Container["consulService"].start
|
24
|
+
Container["cassandraService"].start
|
25
|
+
run_rest_services
|
26
|
+
end
|
27
|
+
|
28
|
+
def stop
|
29
|
+
consulService.stop
|
30
|
+
cassandraService.stop
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sample_core_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fusin Thang
|
@@ -10,6 +10,46 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2018-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dry-container
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.6.0
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.6.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.6.0
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.6.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: dry-auto_inject
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 0.4.6
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.4.6
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.4.6
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 0.4.6
|
13
53
|
- !ruby/object:Gem::Dependency
|
14
54
|
name: sinatra
|
15
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,11 +217,11 @@ extensions: []
|
|
177
217
|
extra_rdoc_files: []
|
178
218
|
files:
|
179
219
|
- lib/application_configuration.rb
|
180
|
-
- lib/application_service.rb
|
181
220
|
- lib/cassandra/abstracted_cassandra_repository.rb
|
182
221
|
- lib/cassandra/cassandra_service.rb
|
183
222
|
- lib/consul/consul_configuration.rb
|
184
223
|
- lib/consul/consul_service.rb
|
224
|
+
- lib/container.rb
|
185
225
|
- lib/rest/rest_common_error.rb
|
186
226
|
- lib/rest/rest_configuration.rb
|
187
227
|
- lib/rest/rest_error_handler.rb
|
@@ -208,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
248
|
version: '0'
|
209
249
|
requirements: []
|
210
250
|
rubyforge_project:
|
211
|
-
rubygems_version: 2.
|
251
|
+
rubygems_version: 2.6.13
|
212
252
|
signing_key:
|
213
253
|
specification_version: 4
|
214
254
|
summary: Sample Core Api
|
data/lib/application_service.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module ApplicationService
|
2
|
-
IMPORT_SERVICES = ['cassandra_service', 'consul_service']
|
3
|
-
|
4
|
-
def load_services
|
5
|
-
$service_list = {}
|
6
|
-
IMPORT_SERVICES.each do |service_name|
|
7
|
-
if !service_name.include?('rest_service')
|
8
|
-
puts "load_services #{service_name}"
|
9
|
-
class_name = service_name.split('_').map{|e| e.capitalize}.join
|
10
|
-
class_object = Object.const_get(class_name)
|
11
|
-
$service_list["#{service_name}"] = class_object.new
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|