domoscio_viz 0.2.3 → 0.3.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 +4 -4
- data/Rakefile +0 -4
- data/lib/domoscio_viz/authorization_token.rb +25 -31
- data/lib/domoscio_viz/chart/chart.rb +2 -2
- data/lib/domoscio_viz/errors.rb +26 -11
- data/lib/domoscio_viz/http_calls.rb +3 -7
- data/lib/domoscio_viz/json.rb +1 -1
- data/lib/domoscio_viz/resource.rb +4 -16
- data/lib/domoscio_viz/version.rb +2 -2
- data/lib/domoscio_viz.rb +108 -79
- metadata +23 -11
- data/lib/domoscio_viz/generators/install_generator.rb +0 -10
- data/lib/domoscio_viz/generators/templates/install.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a27998a16cab08757bb639a589e3b6fac992c8edc215ddd1bef66244be05c983
|
4
|
+
data.tar.gz: 5574e4cde4e47c488626f6598fe1b2299221bb753416b8c388f8ff3cf190581d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f72c732c781f5cc4ab2fd5181547c7e65c07af79b12c98a2554885af42802d08abef81eb86329a4dd374f682d74929c6c6430e56e52515a57cb59931d9c8ce2
|
7
|
+
data.tar.gz: 5b3e486ef10f27616094adf973124afcb86c3b202c742500c73e635ce8040d11430708bdd3aee31e81ad6d182dcc3632019181778b861e75d9a9de3f4be40678
|
data/Rakefile
CHANGED
@@ -14,9 +14,6 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
14
14
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
17
|
Bundler::GemHelper.install_tasks
|
21
18
|
|
22
19
|
require 'rake/testtask'
|
@@ -28,5 +25,4 @@ Rake::TestTask.new(:test) do |t|
|
|
28
25
|
t.verbose = false
|
29
26
|
end
|
30
27
|
|
31
|
-
|
32
28
|
task default: :test
|
@@ -1,59 +1,53 @@
|
|
1
1
|
module DomoscioViz
|
2
2
|
module AuthorizationToken
|
3
|
+
# Token Manager
|
3
4
|
class Manager
|
4
|
-
|
5
5
|
class << self
|
6
6
|
def storage
|
7
|
-
|
8
|
-
end
|
9
|
-
|
10
|
-
def storage= (storage)
|
11
|
-
@@storage = storage
|
7
|
+
@storage ||= DomoscioViz.configuration.file_storage ? FileStorage.new : ManualSetting.new
|
12
8
|
end
|
13
9
|
|
14
|
-
def
|
15
|
-
|
16
|
-
token = DomoscioViz.configuration.client_passphrase if token.nil?
|
17
|
-
token
|
10
|
+
def token
|
11
|
+
storage.get
|
18
12
|
end
|
19
13
|
end
|
20
14
|
end
|
21
15
|
|
22
|
-
|
16
|
+
# Manages tokens with configuration
|
17
|
+
class ManualSetting
|
23
18
|
def get
|
24
|
-
|
19
|
+
{
|
20
|
+
access_token: DomoscioViz.configuration.access_token,
|
21
|
+
refresh_token: DomoscioViz.configuration.refresh_token
|
22
|
+
}
|
25
23
|
end
|
26
24
|
|
27
25
|
def store(token)
|
28
|
-
|
26
|
+
DomoscioViz.configuration.access_token = token[:access_token]
|
27
|
+
DomoscioViz.configuration.refresh_token = token[:refresh_token]
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
31
|
+
# Manages tokens with local File
|
32
32
|
class FileStorage
|
33
33
|
require 'yaml'
|
34
|
-
@temp_dir
|
35
34
|
|
36
|
-
def initialize
|
37
|
-
|
38
|
-
if !@temp_dir
|
39
|
-
raise "Path to temporary folder is not defined"
|
40
|
-
end
|
35
|
+
def initialize
|
36
|
+
raise 'Path to temporary folder is not defined' unless DomoscioViz.configuration.temp_dir
|
41
37
|
end
|
42
38
|
|
43
39
|
def get
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
nil
|
52
|
-
end
|
40
|
+
f = File.open(file_path, File::RDONLY)
|
41
|
+
f.flock(File::LOCK_SH)
|
42
|
+
txt = f.read
|
43
|
+
f.close
|
44
|
+
YAML.safe_load(txt) || nil
|
45
|
+
rescue Errno::ENOENT
|
46
|
+
nil
|
53
47
|
end
|
54
48
|
|
55
49
|
def store(token)
|
56
|
-
File.open(file_path, File::RDWR|File::CREAT,
|
50
|
+
File.open(file_path, File::RDWR|File::CREAT, 0o644) do |f|
|
57
51
|
f.flock(File::LOCK_EX)
|
58
52
|
f.truncate(0)
|
59
53
|
f.rewind
|
@@ -62,8 +56,8 @@ module DomoscioViz
|
|
62
56
|
end
|
63
57
|
|
64
58
|
def file_path
|
65
|
-
File.join(
|
59
|
+
File.join(DomoscioViz.configuration.temp_dir, 'DomoscioViz.AuthorizationToken.FileStore.tmp')
|
66
60
|
end
|
67
61
|
end
|
68
62
|
end
|
69
|
-
end
|
63
|
+
end
|
data/lib/domoscio_viz/errors.rb
CHANGED
@@ -1,26 +1,41 @@
|
|
1
1
|
module DomoscioViz
|
2
2
|
# Generic error superclass for MangoPay specific errors.
|
3
|
-
# Currently never instantiated directly.
|
4
|
-
# Currently only single subclass used.
|
5
3
|
class Error < StandardError
|
6
4
|
end
|
7
|
-
|
5
|
+
|
6
|
+
# Error Message from VizEngine
|
8
7
|
class ResponseError < Error
|
9
8
|
attr_reader :request_url, :code, :details, :body, :request_params
|
10
|
-
|
11
|
-
|
9
|
+
|
10
|
+
def initialize(request_url, code, details = {}, body = nil, request_params = {})
|
11
|
+
@request_url = request_url
|
12
|
+
@code = code
|
13
|
+
@details = details
|
14
|
+
@body = body
|
15
|
+
@request_params = request_params
|
12
16
|
super(message) if message
|
13
17
|
end
|
14
|
-
|
18
|
+
|
19
|
+
def message
|
20
|
+
@details.is_a?(Hash) && @details[:error].is_a?(Hash) ? @details.dig(:error, :message) : @details
|
21
|
+
end
|
15
22
|
end
|
16
23
|
|
17
|
-
# ProcessingError from
|
24
|
+
# ProcessingError from DomoscioViz
|
18
25
|
class ProcessingError < Error
|
19
26
|
attr_reader :request_url, :code, :details, :body, :request_params
|
20
|
-
|
21
|
-
|
27
|
+
|
28
|
+
def initialize(request_url, code, details = {}, body = nil, request_params = {})
|
29
|
+
@request_url = request_url
|
30
|
+
@code = code
|
31
|
+
@details = details
|
32
|
+
@body = body
|
33
|
+
@request_params = request_params
|
22
34
|
super(message) if message
|
23
35
|
end
|
24
|
-
|
36
|
+
|
37
|
+
def message
|
38
|
+
@details.message
|
39
|
+
end
|
25
40
|
end
|
26
|
-
end
|
41
|
+
end
|
@@ -2,18 +2,14 @@ module DomoscioViz
|
|
2
2
|
module HTTPCalls
|
3
3
|
module GetUrl
|
4
4
|
module ClassMethods
|
5
|
-
# In order to catch current SocketsTimeoutError that seem to appear when the VizEngine stays Idle for too long
|
6
|
-
# Perform the request a second time if it fails the fisrt time
|
7
5
|
def get_url(util_name = nil, params = {})
|
8
|
-
|
9
|
-
response = DomoscioViz.request(:post, url(util_name), params) unless response && response.is_a?(Hash) && response['url'] && response['success'] == true
|
10
|
-
response
|
6
|
+
DomoscioViz.request(:post, url(util_name), params)
|
11
7
|
end
|
12
8
|
end
|
13
9
|
|
14
10
|
def self.included(base)
|
15
11
|
base.extend(ClassMethods)
|
16
|
-
end
|
12
|
+
end
|
17
13
|
end
|
18
14
|
end
|
19
|
-
end
|
15
|
+
end
|
data/lib/domoscio_viz/json.rb
CHANGED
@@ -2,23 +2,11 @@ module DomoscioViz
|
|
2
2
|
# @abstract
|
3
3
|
class Resource
|
4
4
|
class << self
|
5
|
-
def
|
6
|
-
|
7
|
-
end
|
5
|
+
def url(util_name = nil, on_self = nil)
|
6
|
+
raise NotImplementedError, 'Resource is an abstract class. Do not use it directly.' if self == Resource
|
8
7
|
|
9
|
-
|
10
|
-
if self == Resource
|
11
|
-
raise NotImplementedError.new('Resource is an abstract class. Do not use it directly.')
|
12
|
-
end
|
13
|
-
|
14
|
-
build_url = ""
|
15
|
-
if !on_self
|
16
|
-
if util_name
|
17
|
-
build_url << "/#{util_name}"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
return build_url
|
8
|
+
util_name && !on_self ? "/#{util_name}" : ''
|
21
9
|
end
|
22
10
|
end
|
23
11
|
end
|
24
|
-
end
|
12
|
+
end
|
data/lib/domoscio_viz/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module DomoscioViz
|
2
|
-
VERSION =
|
3
|
-
end
|
2
|
+
VERSION = '0.3.1'.freeze
|
3
|
+
end
|
data/lib/domoscio_viz.rb
CHANGED
@@ -1,44 +1,23 @@
|
|
1
|
-
|
2
1
|
require 'net/https'
|
3
2
|
require 'cgi/util'
|
4
3
|
require 'multi_json'
|
5
|
-
|
4
|
+
|
6
5
|
require 'domoscio_viz/version'
|
7
6
|
require 'domoscio_viz/json'
|
8
7
|
require 'domoscio_viz/errors'
|
9
8
|
require 'domoscio_viz/authorization_token'
|
10
|
-
# generators
|
11
|
-
require 'domoscio_viz/generators/install_generator'
|
12
|
-
# resources
|
13
9
|
require 'domoscio_viz/http_calls'
|
14
10
|
require 'domoscio_viz/resource'
|
15
11
|
require 'domoscio_viz/chart/chart'
|
16
12
|
|
17
13
|
module DomoscioViz
|
18
|
-
|
19
14
|
class Configuration
|
20
|
-
attr_accessor :
|
21
|
-
|
22
|
-
:temp_dir
|
23
|
-
|
24
|
-
def preproduction
|
25
|
-
@preproduction || false
|
26
|
-
end
|
27
|
-
|
28
|
-
def test
|
29
|
-
@test || false
|
30
|
-
end
|
15
|
+
attr_accessor :client_id, :client_passphrase, :temp_dir,
|
16
|
+
:root_url, :file_storage, :access_token, :refresh_token
|
31
17
|
|
32
|
-
def
|
33
|
-
|
34
|
-
|
35
|
-
@root_url || "https://domoscio-viz-engine-preprod.azurewebsites.net"
|
36
|
-
else
|
37
|
-
@root_url || "https://domoscio-viz-engine-v2.azurewebsites.net"
|
38
|
-
end
|
39
|
-
else
|
40
|
-
@root_url || "http://localhost:3002"
|
41
|
-
end
|
18
|
+
def initialize
|
19
|
+
@root_url = ''
|
20
|
+
@file_storage ||= true
|
42
21
|
end
|
43
22
|
end
|
44
23
|
|
@@ -56,85 +35,135 @@ module DomoscioViz
|
|
56
35
|
end
|
57
36
|
|
58
37
|
#
|
59
|
-
|
60
|
-
|
38
|
+
# - +method+: HTTP method; lowercase symbol, e.g. :get, :post etc.
|
39
|
+
# - +url+: the part after Configuration#root_url
|
40
|
+
# - +params+: hash; entity data for creation, update etc.; will dump it by JSON and assign to Net::HTTPRequest#body
|
41
|
+
#
|
42
|
+
# Performs HTTP requests to Adaptive Engine
|
43
|
+
# On token issues, will try once to get a new token then will output a DomoscioViz::ReponseError with details
|
44
|
+
#
|
45
|
+
# Raises DomoscioViz::ResponseError on Adaptive Error Status
|
46
|
+
# Raises DomoscioViz::ProcessingError on Internal Error
|
47
|
+
#
|
48
|
+
def self.request(method, url, params={})
|
49
|
+
store_tokens, headers = request_headers
|
61
50
|
uri = api_uri(url)
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
data = DomoscioViz::JSON.load(
|
68
|
-
|
69
|
-
|
70
|
-
|
51
|
+
response = DomoscioViz.send_request(uri, method, params, headers)
|
52
|
+
return response if response.is_a? DomoscioViz::ProcessingError
|
53
|
+
|
54
|
+
begin
|
55
|
+
raise_http_failure(uri, response, params)
|
56
|
+
data = DomoscioViz::JSON.load(response.body.nil? ? '' : response.body)
|
57
|
+
if store_tokens
|
58
|
+
DomoscioViz::AuthorizationToken::Manager.storage.store({
|
59
|
+
access_token: response['Accesstoken'],
|
60
|
+
refresh_token: response['Refreshtoken']
|
61
|
+
})
|
71
62
|
end
|
72
|
-
rescue MultiJson::LoadError =>
|
73
|
-
|
74
|
-
rescue ResponseError =>
|
75
|
-
|
63
|
+
rescue MultiJson::LoadError => e
|
64
|
+
data = ProcessingError.new(uri, 500, e, response.body, params)
|
65
|
+
rescue ResponseError => e
|
66
|
+
data = e
|
76
67
|
end
|
77
68
|
data
|
78
69
|
end
|
79
70
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
71
|
+
# This function catches usual Http errors during calls
|
72
|
+
#
|
73
|
+
def self.send_request(uri, method, params, headers)
|
74
|
+
response = perform_call(uri, method, params, headers)
|
75
|
+
response = retry_call_and_store_tokens(uri, method, params) if %w[401 403].include? response.code
|
76
|
+
response
|
77
|
+
rescue Timeout::Error, Errno::EINVAL, HTTP::ConnectionError, Errno::ECONNREFUSED,
|
78
|
+
Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
|
79
|
+
ProcessingError.new(uri, 500, e, response, params)
|
80
|
+
end
|
81
|
+
|
82
|
+
# This helper will check the response status and build the correcponding DomoscioRails::ResponseError
|
83
|
+
#
|
84
|
+
def self.raise_http_failure(uri, response, params)
|
85
|
+
return if response.is_a? Net::HTTPSuccess
|
86
|
+
|
87
|
+
raise ResponseError.new(
|
88
|
+
uri,
|
89
|
+
response.code.to_i,
|
90
|
+
DomoscioViz::JSON.load((response.body.nil? ? '' : response.body), symbolize_keys: true),
|
91
|
+
response.body, params
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Actual HTTP call is performed here
|
96
|
+
#
|
97
|
+
def self.perform_call(uri, method, params, headers)
|
98
|
+
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
99
|
+
req = Net::HTTP::const_get(method.capitalize).new(uri.request_uri, headers)
|
100
|
+
req.body = DomoscioRails::JSON.dump(params)
|
101
|
+
http.request req
|
90
102
|
end
|
91
103
|
end
|
92
104
|
|
93
|
-
|
105
|
+
# This method is called when AdaptiveEngine returns tokens errors
|
106
|
+
# Action on those errors is to retry and request new tokens, those new token are then stored
|
107
|
+
def self.retry_call_and_store_tokens(uri, method, params)
|
108
|
+
headers = request_new_tokens
|
109
|
+
response = perform_call(uri, method, params, headers)
|
110
|
+
DomoscioViz::AuthorizationToken::Manager.storage.store({
|
111
|
+
access_token: response['Accesstoken'],
|
112
|
+
refresh_token: response['Refreshtoken']
|
113
|
+
})
|
114
|
+
response
|
115
|
+
end
|
94
116
|
|
95
117
|
def self.user_agent
|
96
|
-
@uname ||=
|
118
|
+
@uname ||= uname
|
97
119
|
{
|
98
120
|
bindings_version: DomoscioViz::VERSION,
|
99
121
|
lang: 'ruby',
|
100
122
|
lang_version: "#{RUBY_VERSION} p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE})",
|
101
123
|
platform: RUBY_PLATFORM,
|
102
124
|
uname: @uname
|
103
|
-
}
|
125
|
+
}.to_s
|
104
126
|
end
|
105
127
|
|
106
|
-
def self.
|
107
|
-
`uname -a 2>/dev/null
|
128
|
+
def self.uname
|
129
|
+
`uname -a 2>/dev/null` if RUBY_PLATFORM =~ /linux|darwin/i
|
108
130
|
rescue Errno::ENOMEM
|
109
131
|
'uname lookup failed'
|
110
132
|
end
|
111
133
|
|
134
|
+
# Process the token loading and analyze
|
135
|
+
# will return the processed headers and a token store flag
|
136
|
+
#
|
112
137
|
def self.request_headers
|
113
138
|
auth_token = DomoscioViz::AuthorizationToken::Manager.get_token
|
114
|
-
if
|
115
|
-
|
116
|
-
'user_agent' => "#{DomoscioViz.user_agent}",
|
117
|
-
'ClientId' => "#{DomoscioViz.configuration.client_id}",
|
118
|
-
'AccessToken' => "#{auth_token[:access_token]}",
|
119
|
-
'RefreshToken' => "#{auth_token[:refresh_token]}",
|
120
|
-
'Content-Type' => 'application/json'
|
121
|
-
}
|
139
|
+
if auth_token && auth_token[:access_token] && auth_token[:refresh_token]
|
140
|
+
[false, send_current_tokens(auth_token)]
|
122
141
|
else
|
123
|
-
|
124
|
-
'user_agent' => "#{DomoscioViz.user_agent}",
|
125
|
-
'ClientId' => "#{DomoscioViz.configuration.client_id}",
|
126
|
-
'Authorization' => "Token token=#{DomoscioViz.configuration.client_passphrase}",
|
127
|
-
'Content-Type' => 'application/json'
|
128
|
-
}
|
142
|
+
[true, request_new_tokens]
|
129
143
|
end
|
130
|
-
|
144
|
+
rescue SyntaxError, StandardError
|
145
|
+
[true, request_new_tokens]
|
146
|
+
end
|
147
|
+
|
148
|
+
# If stored token successfully loaded we build the header with them
|
149
|
+
#
|
150
|
+
def self.send_current_tokens(auth_token)
|
151
|
+
{
|
152
|
+
'user_agent' => DomoscioViz.user_agent,
|
153
|
+
'ClientId' => DomoscioViz.configuration.client_id,
|
154
|
+
'AccessToken' => auth_token[:access_token],
|
155
|
+
'RefreshToken' => auth_token[:refresh_token],
|
156
|
+
'Content-Type' => 'application/json'
|
157
|
+
}
|
131
158
|
end
|
132
159
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
160
|
+
# If we cant find tokens of they are corrupted / expired, then we set headers to request new ones
|
161
|
+
def self.request_new_tokens
|
162
|
+
{
|
163
|
+
'user_agent' => DomoscioViz.user_agent,
|
164
|
+
'ClientId' => DomoscioViz.configuration.client_id,
|
165
|
+
'Authorization' => "Token token=#{DomoscioViz.configuration.client_passphrase}",
|
166
|
+
'Content-Type' => 'application/json'
|
167
|
+
}
|
139
168
|
end
|
140
|
-
end
|
169
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: domoscio_viz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benoit Praly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: multi_json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.15.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.15.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yaml
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.2.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.2.0
|
27
41
|
description: Ruby client to interact with Domoscio Viz Engine.
|
28
42
|
email:
|
29
43
|
- benoit.praly@domoscio.com
|
@@ -38,8 +52,6 @@ files:
|
|
38
52
|
- lib/domoscio_viz/authorization_token.rb
|
39
53
|
- lib/domoscio_viz/chart/chart.rb
|
40
54
|
- lib/domoscio_viz/errors.rb
|
41
|
-
- lib/domoscio_viz/generators/install_generator.rb
|
42
|
-
- lib/domoscio_viz/generators/templates/install.rb
|
43
55
|
- lib/domoscio_viz/http_calls.rb
|
44
56
|
- lib/domoscio_viz/json.rb
|
45
57
|
- lib/domoscio_viz/resource.rb
|
@@ -56,14 +68,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
56
68
|
requirements:
|
57
69
|
- - ">="
|
58
70
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
71
|
+
version: 2.5.0
|
60
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
73
|
requirements:
|
62
74
|
- - ">="
|
63
75
|
- !ruby/object:Gem::Version
|
64
76
|
version: '0'
|
65
77
|
requirements: []
|
66
|
-
rubygems_version: 3.
|
78
|
+
rubygems_version: 3.1.2
|
67
79
|
signing_key:
|
68
80
|
specification_version: 4
|
69
81
|
summary: Summary of DomoscioViz.
|
@@ -1,10 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
module DomoscioViz
|
3
|
-
class InstallGenerator < ::Rails::Generators::Base
|
4
|
-
source_root File.expand_path('../templates', __FILE__)
|
5
|
-
desc "Generate config file for DomoscioViz configuration"
|
6
|
-
def install
|
7
|
-
copy_file "install.rb", "config/initializers/domoscio_viz.rb"
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
DomoscioViz.configure do |c|
|
2
|
-
if Rails.env == "production"
|
3
|
-
c.preproduction = true
|
4
|
-
else
|
5
|
-
c.preproduction = false
|
6
|
-
end
|
7
|
-
c.client_id = ENV['DOMOSCIO_ID']
|
8
|
-
c.client_passphrase = ENV['DOMOSCIO_PASSWORD']
|
9
|
-
c.temp_dir = File.expand_path('../tmp', __FILE__)
|
10
|
-
FileUtils.mkdir_p(c.temp_dir) unless File.directory?(c.temp_dir)
|
11
|
-
end
|