lws 7.2.3 → 7.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ddef464d750e49d235fc28c11f209e9ac3fe6c8abb0ae605bbf5c3f61867e895
4
- data.tar.gz: 20194be723ed5c15810a699723bef6d5de54562642bd7e25e80314cf92ed38a6
3
+ metadata.gz: a3537305fd2e0820336aeae72b893d57e81f7c5e89c1439ad11ceab621c98fe7
4
+ data.tar.gz: 24be84fdc5a329eed12a2d5b0cfe5a2e950e44a44b99b335fd9d1a0329cb2286
5
5
  SHA512:
6
- metadata.gz: 6ec11d0269f6c9565832321d27548ff22565f7afc5361317be9862eb286c9681ee2268b70145dffa8f51ec35d71765087a67347ea216c85d4e590146d1bfdedb
7
- data.tar.gz: 0c1ab92859fe42a6a6fd3f7be9cdb7d3edb0efd338890de8517bc4cc537552f1c5f8de1b0d53616e3098a2b89db94b7ecf7258a83fae6804c1d47e9c1e9aa6f1
6
+ metadata.gz: 53bdca49fdb5085a4d9cd55df5e840155f6cbff9f0370edd74bc494abadeac971829266201d3c4ac8d870b252cd50b0e276b5e1e89b65b9f20c751d74f1761a5
7
+ data.tar.gz: aa06286ad53e4947e12ed41258094a352f19d6b4f379167418ac70f442926a3cc19a9a0aa43f5c0bf83ca617a0efe6114fe266092aaec671f95edb478252cf7f
data/bin/lwsconsole CHANGED
@@ -36,7 +36,7 @@ EOB
36
36
  @options[:debug] = debug
37
37
  end
38
38
  opts.on("-e", "--environment=ENV", "select the LWS environment (default: production)") do |env|
39
- @options[:environment] = env.to_sym
39
+ @options[:environment] = env
40
40
  end
41
41
  opts.on("-t", "--token=TOKEN", "the LWS API token necessary to gain access") do |token|
42
42
  @options[:token] = token
data/lib/lws/apps/auth.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The auth app module
@@ -14,18 +15,16 @@ module LWS::Auth
14
15
 
15
16
  # :nocov:
16
17
  unless defined? ENDPOINT
17
- # The API endpoint for the auth app
18
+ # @!method self.endpoint
19
+ # @return [String] the actual API endpoint used to reach the app
20
+
21
+ # The API endpoint environment mapping for the Auth app
18
22
  ENDPOINT = { production: "https://leftclick.cloud/" ,
19
23
  development: "https://dev.leftclick.cloud/" }
20
24
  end
21
25
  # :nocov:
22
26
 
23
- # @!visibility private
24
- class << self
25
- attr_accessor :api
26
- end
27
- @api = LWS.setup_api(LWS.config.endpoints[:auth] ||
28
- ENDPOINT[LWS.config.environment])
27
+ include LWS::Generic
29
28
 
30
29
  ### Generic classes
31
30
 
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The corporate website app module
@@ -14,17 +15,16 @@ module LWS::CorporateWebsite
14
15
 
15
16
  # :nocov:
16
17
  unless defined? ENDPOINT
17
- # The API endpoint for the corporate website app
18
+ # @!method self.endpoint
19
+ # @return [String] the actual API endpoint used to reach the app
20
+
21
+ # The API endpoint environment mapping for the Corporate Website app
18
22
  ENDPOINT = { production: "https://www.leftclick.cloud/",
19
23
  development: "https://www-dev.leftclick.cloud/" }
20
24
  end
21
25
  # :nocov:
22
26
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:corporate_website] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
27
+ include LWS::Generic
28
28
 
29
29
  ### Generic classes
30
30
 
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The digital_signage app module
@@ -14,17 +15,16 @@ module LWS::DigitalSignage
14
15
 
15
16
  # :nocov:
16
17
  unless defined? ENDPOINT
17
- # The API endpoint for the digital signage app
18
+ # @!method self.endpoint
19
+ # @return [String] the actual endpoint used to reach the app
20
+
21
+ # The API endpoint environment mapping for the Digital Signage app
18
22
  ENDPOINT = { production: "https://cm.leftclick.cloud/" ,
19
23
  development: "https://cm-dev.leftclick.cloud/" }
20
24
  end
21
25
  # :nocov:
22
26
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:digital_signage] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
27
+ include LWS::Generic
28
28
 
29
29
  ### Generic classes
30
30
 
@@ -78,6 +78,11 @@ module LWS::DigitalSignage
78
78
  # @return [Array<Channel::Group>] the groups the channel is a member of
79
79
  has_many :groups, class_name: "LWS::DigitalSignage::Channel::Group"
80
80
 
81
+ # @!attribute layout_kind
82
+ # @return ["default", "stage"] the layout (version) kinds to consider
83
+ # when generating a playlist for the channel
84
+ attribute :layout_kind
85
+
81
86
  # @!attribute marquee_config
82
87
  # @return [String] the marquee/ticker tape configuration (JSON) of the channel
83
88
  attribute :marquee_config
@@ -809,8 +814,8 @@ module LWS::DigitalSignage
809
814
  attribute :rotation_angle
810
815
 
811
816
  # @!attribute status [r]
812
- # @return ["initializing", "creating_pack", "creating_thumbnail", "available", "archive"]
813
- # the status of the layout version
817
+ # @return ["initializing", "creating_pack", "creating_thumbnail",
818
+ # "available", "archive", "stage"] the status of the layout version
814
819
  attribute :status
815
820
 
816
821
  # @!attribute thumbnail_url
@@ -1805,6 +1810,10 @@ module LWS::DigitalSignage
1805
1810
  # @!attribute thumbnail_url
1806
1811
  # @return [String, nil] the URL of the thumbnail of the slide
1807
1812
  attribute :thumbnail_url
1813
+
1814
+ # @!attribute uuid
1815
+ # @return [String] the UUID of the slide
1816
+ attribute :uuid
1808
1817
  end
1809
1818
 
1810
1819
  # = The slide schedule class
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The generic app module
@@ -14,6 +15,25 @@
14
15
  # This module contains classes that are present in all applications.
15
16
  module LWS::Generic
16
17
 
18
+ def self.included(app_mod)
19
+ app_mod.module_eval do |mod|
20
+ # Set up the API using the configured or default endpoint for the current
21
+ # environment.
22
+ endpoints = mod.const_get(:ENDPOINT)
23
+ app_name = mod.name.demodulize.underscore.to_sym
24
+ @api = LWS.setup_api(LWS.config.endpoints[app_name] ||
25
+ endpoints[LWS.config.environment])
26
+
27
+ def self.api
28
+ @api
29
+ end
30
+
31
+ def self.endpoint
32
+ @api.url_prefix.to_s
33
+ end
34
+ end
35
+ end
36
+
17
37
  # = The generic model class
18
38
  #
19
39
  # This model forms the base for all LWS models.
@@ -203,11 +223,13 @@ module LWS::Generic
203
223
  def self.use_api(api)
204
224
  config = LWS.config
205
225
 
206
- # A connection to Active Storage (with JSON request/response, but without
207
- # token authentication and caching).
208
- @as_connection = Faraday.new(url: api.url_prefix) do |c|
226
+ # An API connection to Active Storage (with JSON request/response, but
227
+ # without caching).
228
+ @as_connection = Faraday.new(url: api.url_prefix, proxy: config.proxy) do |c|
209
229
  # Request
210
230
  c.request :json
231
+ c.use LWS::Middleware::RequestHeaders, config.api_token
232
+ c.use config.api_token_middleware if config.api_token_middleware.present?
211
233
 
212
234
  # Response
213
235
  c.use LWS::JSONLogger, config.logger if config.json_debug
@@ -223,7 +245,7 @@ module LWS::Generic
223
245
 
224
246
  # A plain file connection to LWS (with token autnentication and caching but without
225
247
  # JSON request/response).
226
- @lws_connection = Faraday.new(url: api.url_prefix) do |c|
248
+ @lws_connection = Faraday.new(url: api.url_prefix, proxy: config.proxy) do |c|
227
249
  # Request
228
250
  if config.caching_object
229
251
  c.use FaradayMiddleware::Caching, config.caching_object
data/lib/lws/apps/maps.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The maps app module
@@ -14,17 +15,16 @@ module LWS::Maps
14
15
 
15
16
  # :nocov:
16
17
  unless defined? ENDPOINT
17
- # The API endpoint for the map app
18
+ # @!method self.endpoint
19
+ # @return [String] the actual API endpoint used to reach the app
20
+
21
+ # The API endpoint environment mapping for the Maps app
18
22
  ENDPOINT = { production: "https://maps.leftclick.cloud/",
19
23
  development: "https://maps-dev.leftclick.cloud/" }
20
24
  end
21
25
  # :nocov:
22
26
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:maps] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
27
+ include LWS::Generic
28
28
 
29
29
  ### Generic classes
30
30
 
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The presence app module
@@ -14,17 +15,16 @@ module LWS::Presence
14
15
 
15
16
  # :nocov:
16
17
  unless defined? ENDPOINT
17
- # The API endpoint for the presence app
18
+ # @!method self.endpoint
19
+ # @return [String] the actual API endpoint used to reach the app
20
+
21
+ # The API endpoint environment mapping for the Presence app
18
22
  ENDPOINT = { production: "https://presence.leftclick.cloud/",
19
23
  development: "https://presence-dev.leftclick.cloud/" }
20
24
  end
21
25
  # :nocov:
22
26
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:presence] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
27
+ include LWS::Generic
28
28
 
29
29
  ### Generic classes
30
30
 
@@ -220,6 +220,11 @@ module LWS::Presence
220
220
  # @return [String, nil] reference of the location in the remote database
221
221
  attribute :import_ref
222
222
 
223
+ # @!attribute invite_remarks
224
+ # @return [String, nil] the remarks to add when sending invites for
225
+ # appointments involving the location
226
+ attribute :invite_remarks
227
+
223
228
  # @!attribute journals
224
229
  # @return [Array<Journal>] the journal (entries) associated with the location
225
230
  has_many :journals, class: "LWS::Presence::Journal"
@@ -288,6 +293,11 @@ module LWS::Presence
288
293
  # @return [Array<Reader>] the (RFID/code/ID/...) readers linked to this location
289
294
  has_many :readers
290
295
 
296
+ # @!attribute reservation_required
297
+ # @return [Boolean] whether a reservation is required for checking in to
298
+ # this location
299
+ attribute :reservation_required
300
+
291
301
  # @!attribute status
292
302
  # @return ["available", "maintenance_cleaning",
293
303
  # "maintenance_technical", "reserved", "unavailable",
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The resource app module
@@ -14,17 +15,16 @@ module LWS::Resource
14
15
 
15
16
  # :nocov:
16
17
  unless defined? ENDPOINT
17
- # The API endpoint for the resource app
18
+ # @!method self.endpoint
19
+ # @return [String] the actual API endpoint used to reach the app
20
+
21
+ # The API endpoint environment mapping for the Resource app
18
22
  ENDPOINT = { production: "https://resource.leftclick.cloud/",
19
23
  development: "https://resource-dev.leftclick.cloud/" }
20
24
  end
21
25
  # :nocov:
22
26
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:resource] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
27
+ include LWS::Generic
28
28
 
29
29
  ### Generic classes
30
30
 
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  # = The ticket app module
@@ -14,17 +15,16 @@ module LWS::Ticket
14
15
 
15
16
  # :nocov:
16
17
  unless defined? ENDPOINT
17
- # The API endpoint for the ticket app
18
+ # @!method self.endpoint
19
+ # @return [String] the actual API endpoint used to reach the app
20
+
21
+ # The API endpoint environment mapping for the Ticket app
18
22
  ENDPOINT = { production: "https://ticket.leftclick.cloud/",
19
23
  development: "https://ticket-dev.leftclick.cloud/" }
20
24
  end
21
25
  # :nocov:
22
26
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:ticket] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
27
+ include LWS::Generic
28
28
 
29
29
  ### Generic classes
30
30
 
data/lib/lws/config.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
10
-
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
11
11
 
12
12
  module LWS
13
13
 
@@ -20,7 +20,9 @@ module LWS
20
20
  # configured for the library to work properly!
21
21
  class Config < Hashie::Dash
22
22
  # The list of properties that can be set using a config file.
23
- VALID_FILE_PROPERTIES = [:api_token, :endpoints, :http_debug, :http_debug_headers, :json_debug]
23
+ VALID_FILE_PROPERTIES =
24
+ [:api_token, :endpoints, :environment, :http_debug, :http_debug_headers,
25
+ :json_debug, :proxy]
24
26
 
25
27
  #@!attribute api_token
26
28
  # @return [String, nil] the API token necessary to gain access
@@ -76,13 +78,42 @@ module LWS
76
78
  # (Rails logger, Logger, etc.)
77
79
  property :logger
78
80
 
81
+ #@!attribute proxy
82
+ # When passing a Hash, it should at least contain +:uri+ as key with
83
+ # a String or URI as value and optionally the +:user+ and +:password+
84
+ # keys with appropriate values.
85
+ # @return [Hash, String, URI] the proxy configuration, either as URL or
86
+ # as a Hash
87
+ property :proxy
88
+
79
89
  #@!attribute stubbing
80
90
  # @return [String] the path to a directory with stubbing fixtures
81
91
  # (setting this enables the default stubs)
82
92
  property :stubbing
83
93
 
84
- # Supplements the configuration with settings from a config file.
94
+ # Sets the environment for the config.
95
+ #
96
+ # The provided environment can be a string in short and long format as well
97
+ # as a symbol.
98
+ #
99
+ # @param new_env [Symbol, String] the new environment to use
100
+ # @return [Symbol] the new environment
101
+ # @raise when an invalid environment is provided
102
+ def environment=(new_env)
103
+ real_env =
104
+ case new_env
105
+ when "prod", "production", :prod, :production
106
+ :production
107
+ when "dev", "development", :dev, :development
108
+ :development
109
+ else
110
+ raise "unsupported environment: #{new_env}"
111
+ end
112
+ self[:environment] = real_env
113
+ end
85
114
 
115
+ # Supplements the configuration with settings from a config file.
116
+ #
86
117
  # The configuration file has a section per environment that indicates
87
118
  # per property what to use if it is unset.
88
119
  #
@@ -100,9 +131,10 @@ module LWS
100
131
  # an environment key that selects the default environment (unless
101
132
  # overriden by the +LC_LWS_ENV+ environment variable).
102
133
  #
103
- # @example A elaborate configuration that sets the development environment as default, enables debugging and overrides an endpoint
134
+ # @example A elaborate configuration that sets the proxy and the development environment as default, enables debugging and overrides an endpoint
104
135
  # default:
105
136
  # environment: "development"
137
+ # proxy: "http://proxyserver:8080"
106
138
  #
107
139
  # production:
108
140
  # api_token: "my-prod-api-token"
@@ -123,12 +155,13 @@ module LWS
123
155
  def load_config_file(config_file, force_environment = nil)
124
156
  return false unless File.exist? config_file
125
157
  config_data = YAML.load_file(config_file)
126
- environment = force_environment ||
127
- ENV["LC_LWS_ENV"] ||
128
- config_data.dig("default", "environment") ||
129
- self.environment
130
- self.environment = environment.to_sym
131
- config = config_data[environment.to_s] || {}
158
+ default_config = config_data["default"] || {}
159
+
160
+ self.environment = force_environment ||
161
+ ENV["LC_LWS_ENV"] ||
162
+ config_data.dig("default", "environment") ||
163
+ self.environment
164
+ config = default_config.merge(config_data[self.environment.to_s] || {})
132
165
 
133
166
  config.each_pair do |key, value|
134
167
  unless VALID_FILE_PROPERTIES.include? key.to_sym
data/lib/lws/errors.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  module LWS
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  module LWS
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  module LWS
@@ -1,12 +1,13 @@
1
1
  #
2
- # Copyright © 2016–2020 LeftClick B.V.
2
+ # Copyright © 2016–2021 LeftClick Web Services B.V.
3
3
  #
4
- # This software is property of LeftClick B.V. and cannot be redistributed
5
- # and/or modified without permission. The software or any of its parts
6
- # cannot be used for any other purposes than the LeftClick services and
7
- # only during a valid license subscription. For more information, please
8
- # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
- # Netherlands, info@leftclick.eu, +3185-4444-004.
4
+ # This software is property of LeftClick Web Services B.V. and cannot be
5
+ # redistributed and/or modified without permission. The software or any
6
+ # of its parts cannot be used for any other purposes than the LeftClick
7
+ # services and only during a valid license subscription. For more
8
+ # information, please contact LeftClick Web Services B.V. at:
9
+ # Schootense Dreef 20A, 5708 HZ Helmond, The Netherlands,
10
+ # info@leftclick.eu, +3185-4444-004.
10
11
 
11
12
 
12
13
  module LWS