lws 7.2.3 → 7.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 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