lws 7.2.1 → 7.3.0

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: 6deffc4e78a47854d29873d8fc9a28362613690de1c942ae8eed2c5e83e937ca
4
- data.tar.gz: a1986c2225a9f172a12cacc6a37d00a19458cbe396212a3281cb74c7901db850
3
+ metadata.gz: 7adfefa3011145091ec6c1bbcf5c729159e25785e6ed08a4d0a2016b3fee39da
4
+ data.tar.gz: 7a36e1b6055974e4694c90305a92780b53083070f7f4d68f4b60c3e0415d80b3
5
5
  SHA512:
6
- metadata.gz: 3e8856e550c55c227c1671a42573f60044a7bee2e16be6a4f35f5e954cd2b37289a8ee4eee225894d5073e82cb37ee0111bd29c464ccad8c36b3872a0698eacf
7
- data.tar.gz: c3e1c5f33253614acf54842796ccb4c9b3b532b4f172d22c7f5f0456056425c15f785a8df29db2af5eb80828bcd76ae3bf7131d74cff967702ad350b40f78656
6
+ metadata.gz: c9a678afd13b84a45b5806fe6b23cd62cd6fb168f9bb6ea3847a920e0f0ede050cf39ba2af2c19ec07adaeeeca8d67058fc74f786c20ba7a08a1a44207cc3cfa
7
+ data.tar.gz: 3326e671e49b61f88e12a98881c8339d3e0f13a2c76079cf957910b197af85078a35d065130694d73b91f295b2ae61c137878450ce05f71549ab48629605ffb1
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
@@ -80,6 +80,7 @@ begin
80
80
  LWS.setup do |config|
81
81
  config.api_token = @options[:token] if @options[:token]
82
82
  config.endpoints = @endpoints
83
+ config.http_caching = true
83
84
  config.http_debug = @options[:debug]
84
85
  config.json_debug = @options[:debug]
85
86
  config.logger = logger
data/lib/lws.rb CHANGED
@@ -8,7 +8,6 @@
8
8
  # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
9
  # Netherlands, info@leftclick.eu, +3185-4444-004.
10
10
 
11
-
12
11
  require "faraday_middleware"
13
12
  require "faraday/http_cache"
14
13
  require "hashie"
@@ -81,7 +80,7 @@ module LWS
81
80
 
82
81
  # Override the environment if needed
83
82
  if ENV["LC_LWS_ENV"].present?
84
- @@config.environment = ENV["LC_LWS_ENV"].to_sym
83
+ @@config.environment = ENV["LC_LWS_ENV"]
85
84
  end
86
85
 
87
86
  # Override the API token if needed (and no custom API token middleware
@@ -112,7 +111,7 @@ module LWS
112
111
  # @param api_url [String] The endpoint URL of the API
113
112
  # @return [Faraday::Connection] A Faraday connection that makes requests to the API
114
113
  def self.setup_api(api_url)
115
- api = Faraday.new(url: api_url) do |c|
114
+ api = Faraday.new(url: api_url, proxy: config.proxy) do |c|
116
115
  # Request
117
116
  if config.caching_object
118
117
  c.use FaradayMiddleware::Caching, config.caching_object
data/lib/lws/apps/auth.rb CHANGED
@@ -14,18 +14,16 @@ module LWS::Auth
14
14
 
15
15
  # :nocov:
16
16
  unless defined? ENDPOINT
17
- # The API endpoint for the auth app
17
+ # @!method self.endpoint
18
+ # @return [String] the actual API endpoint used to reach the app
19
+
20
+ # The API endpoint environment mapping for the Auth app
18
21
  ENDPOINT = { production: "https://leftclick.cloud/" ,
19
22
  development: "https://dev.leftclick.cloud/" }
20
23
  end
21
24
  # :nocov:
22
25
 
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])
26
+ include LWS::Generic
29
27
 
30
28
  ### Generic classes
31
29
 
@@ -14,17 +14,16 @@ module LWS::CorporateWebsite
14
14
 
15
15
  # :nocov:
16
16
  unless defined? ENDPOINT
17
- # The API endpoint for the corporate website app
17
+ # @!method self.endpoint
18
+ # @return [String] the actual API endpoint used to reach the app
19
+
20
+ # The API endpoint environment mapping for the Corporate Website app
18
21
  ENDPOINT = { production: "https://www.leftclick.cloud/",
19
22
  development: "https://www-dev.leftclick.cloud/" }
20
23
  end
21
24
  # :nocov:
22
25
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:corporate_website] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
26
+ include LWS::Generic
28
27
 
29
28
  ### Generic classes
30
29
 
@@ -14,17 +14,16 @@ module LWS::DigitalSignage
14
14
 
15
15
  # :nocov:
16
16
  unless defined? ENDPOINT
17
- # The API endpoint for the digital signage app
17
+ # @!method self.endpoint
18
+ # @return [String] the actual endpoint used to reach the app
19
+
20
+ # The API endpoint environment mapping for the Digital Signage app
18
21
  ENDPOINT = { production: "https://cm.leftclick.cloud/" ,
19
22
  development: "https://cm-dev.leftclick.cloud/" }
20
23
  end
21
24
  # :nocov:
22
25
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:digital_signage] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
26
+ include LWS::Generic
28
27
 
29
28
  ### Generic classes
30
29
 
@@ -653,6 +652,12 @@ module LWS::DigitalSignage
653
652
  # of the layout element
654
653
  has_many :customizables, class_name: "LWS::DigitalSignage::Layout::Element::Customizable"
655
654
 
655
+ # @!attribute definition
656
+ # @note This attribute is only available if the token is of an account
657
+ # with sysadmin permissions
658
+ # @return [Hash] the (plugin) component definition of the layout element
659
+ attribute :definition
660
+
656
661
  # @!attribute index
657
662
  # @return [Integer, nil] the index of the element within the list of
658
663
  # layout elements of the associated layout version
@@ -768,8 +773,10 @@ module LWS::DigitalSignage
768
773
 
769
774
  # @!attribute archive_url
770
775
  # @note
771
- # To be able retrieve this, the token needs to be passed via +X-Token+
772
- # in the HTTP request headers!
776
+ # To be able retrieve the archive, the token needs to be passed via
777
+ # +X-Token+ in the HTTP request headers!
778
+ # @note This attribute is only available if the token is of an account
779
+ # with sysadmin permissions
773
780
  # @return [String, nil] the URL of the archive/layout pack of the layout
774
781
  # version (if accessible)
775
782
  attribute :archive_url
@@ -14,6 +14,25 @@
14
14
  # This module contains classes that are present in all applications.
15
15
  module LWS::Generic
16
16
 
17
+ def self.included(app_mod)
18
+ app_mod.module_eval do |mod|
19
+ # Set up the API using the configured or default endpoint for the current
20
+ # environment.
21
+ endpoints = mod.const_get(:ENDPOINT)
22
+ app_name = mod.name.demodulize.underscore.to_sym
23
+ @api = LWS.setup_api(LWS.config.endpoints[app_name] ||
24
+ endpoints[LWS.config.environment])
25
+
26
+ def self.api
27
+ @api
28
+ end
29
+
30
+ def self.endpoint
31
+ @api.url_prefix.to_s
32
+ end
33
+ end
34
+ end
35
+
17
36
  # = The generic model class
18
37
  #
19
38
  # This model forms the base for all LWS models.
@@ -203,11 +222,13 @@ module LWS::Generic
203
222
  def self.use_api(api)
204
223
  config = LWS.config
205
224
 
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|
225
+ # An API connection to Active Storage (with JSON request/response, but
226
+ # without caching).
227
+ @as_connection = Faraday.new(url: api.url_prefix, proxy: config.proxy) do |c|
209
228
  # Request
210
229
  c.request :json
230
+ c.use LWS::Middleware::RequestHeaders, config.api_token
231
+ c.use config.api_token_middleware if config.api_token_middleware.present?
211
232
 
212
233
  # Response
213
234
  c.use LWS::JSONLogger, config.logger if config.json_debug
@@ -223,7 +244,7 @@ module LWS::Generic
223
244
 
224
245
  # A plain file connection to LWS (with token autnentication and caching but without
225
246
  # JSON request/response).
226
- @lws_connection = Faraday.new(url: api.url_prefix) do |c|
247
+ @lws_connection = Faraday.new(url: api.url_prefix, proxy: config.proxy) do |c|
227
248
  # Request
228
249
  if config.caching_object
229
250
  c.use FaradayMiddleware::Caching, config.caching_object
data/lib/lws/apps/maps.rb CHANGED
@@ -14,17 +14,16 @@ module LWS::Maps
14
14
 
15
15
  # :nocov:
16
16
  unless defined? ENDPOINT
17
- # The API endpoint for the map app
17
+ # @!method self.endpoint
18
+ # @return [String] the actual API endpoint used to reach the app
19
+
20
+ # The API endpoint environment mapping for the Maps app
18
21
  ENDPOINT = { production: "https://maps.leftclick.cloud/",
19
22
  development: "https://maps-dev.leftclick.cloud/" }
20
23
  end
21
24
  # :nocov:
22
25
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:maps] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
26
+ include LWS::Generic
28
27
 
29
28
  ### Generic classes
30
29
 
@@ -14,17 +14,16 @@ module LWS::Presence
14
14
 
15
15
  # :nocov:
16
16
  unless defined? ENDPOINT
17
- # The API endpoint for the presence app
17
+ # @!method self.endpoint
18
+ # @return [String] the actual API endpoint used to reach the app
19
+
20
+ # The API endpoint environment mapping for the Presence app
18
21
  ENDPOINT = { production: "https://presence.leftclick.cloud/",
19
22
  development: "https://presence-dev.leftclick.cloud/" }
20
23
  end
21
24
  # :nocov:
22
25
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:presence] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
26
+ include LWS::Generic
28
27
 
29
28
  ### Generic classes
30
29
 
@@ -84,7 +83,7 @@ module LWS::Presence
84
83
  attribute :title
85
84
 
86
85
  # @!attribute uuid
87
- # @return [String] the UUID of the location
86
+ # @return [String] the UUID of the appointment
88
87
  attribute :uuid
89
88
  end
90
89
 
@@ -174,11 +173,11 @@ module LWS::Presence
174
173
  attribute :checkin_status
175
174
 
176
175
  # @!attribute checkout_alter_status
177
- # @return ["available", "unavailable", "maintenance_cleaning",
178
- # "maintenance_technical", "permanent_available",
179
- # "permanent_unavailable", "permanent_maintenance_cleaning",
180
- # "permanent_maintenance_technical", nil] the status to set the
181
- # location to when someone checks out
176
+ # @return ["available", "maintenance_cleaning", "maintenance_technical",
177
+ # "reserved", "unavailable", "permanent_available",
178
+ # "permanent_maintenance_cleaning", "permanent_maintenance_technical",
179
+ # "permanent_reserved", "permanent_unavailable", nil] the status to set
180
+ # the location to when someone checks out
182
181
  attribute :checkout_alter_status
183
182
 
184
183
  # @!attribute checkout_location
@@ -216,6 +215,10 @@ module LWS::Presence
216
215
  # @return [String, nil] the URL of the image of the location
217
216
  attribute :image_url
218
217
 
218
+ # @!attribute import_ref
219
+ # @return [String, nil] reference of the location in the remote database
220
+ attribute :import_ref
221
+
219
222
  # @!attribute journals
220
223
  # @return [Array<Journal>] the journal (entries) associated with the location
221
224
  has_many :journals, class: "LWS::Presence::Journal"
@@ -285,10 +288,11 @@ module LWS::Presence
285
288
  has_many :readers
286
289
 
287
290
  # @!attribute status
288
- # @return ["available", "unavailable", "maintenance_cleaning",
289
- # "maintenance_technical", "permanent_available",
290
- # "permanent_unavailable", "permanent_maintenance_cleaning",
291
- # "permanent_maintenance_technical"] the status of the location
291
+ # @return ["available", "maintenance_cleaning",
292
+ # "maintenance_technical", "reserved", "unavailable",
293
+ # "permanent_available", "permanent_maintenance_cleaning",
294
+ # "permanent_maintenance_technical", "permanent_reserved",
295
+ # "permanent_unavailable" ] the status of the location
292
296
  attribute :status
293
297
 
294
298
  # @!attribute time_zone
@@ -503,8 +507,7 @@ module LWS::Presence
503
507
  attribute :extra_info
504
508
 
505
509
  # @!attribute import_ref
506
- # @return [String, nil] reference for storing the uid of the remote
507
- # database
510
+ # @return [String, nil] reference of the person in the remote database
508
511
  attribute :import_ref
509
512
 
510
513
  # @!attribute kind
@@ -14,17 +14,16 @@ module LWS::Resource
14
14
 
15
15
  # :nocov:
16
16
  unless defined? ENDPOINT
17
- # The API endpoint for the resource app
17
+ # @!method self.endpoint
18
+ # @return [String] the actual API endpoint used to reach the app
19
+
20
+ # The API endpoint environment mapping for the Resource app
18
21
  ENDPOINT = { production: "https://resource.leftclick.cloud/",
19
22
  development: "https://resource-dev.leftclick.cloud/" }
20
23
  end
21
24
  # :nocov:
22
25
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:resource] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
26
+ include LWS::Generic
28
27
 
29
28
  ### Generic classes
30
29
 
@@ -14,17 +14,16 @@ module LWS::Ticket
14
14
 
15
15
  # :nocov:
16
16
  unless defined? ENDPOINT
17
- # The API endpoint for the ticket app
17
+ # @!method self.endpoint
18
+ # @return [String] the actual API endpoint used to reach the app
19
+
20
+ # The API endpoint environment mapping for the Ticket app
18
21
  ENDPOINT = { production: "https://ticket.leftclick.cloud/",
19
22
  development: "https://ticket-dev.leftclick.cloud/" }
20
23
  end
21
24
  # :nocov:
22
25
 
23
- # @!visibility private
24
- def self.api
25
- LWS.setup_api(LWS.config.endpoints[:ticket] ||
26
- ENDPOINT[LWS.config.environment])
27
- end
26
+ include LWS::Generic
28
27
 
29
28
  ### Generic classes
30
29
 
data/lib/lws/config.rb CHANGED
@@ -8,7 +8,6 @@
8
8
  # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
9
  # Netherlands, info@leftclick.eu, +3185-4444-004.
10
10
 
11
-
12
11
  module LWS
13
12
 
14
13
  # = The LWS API configuration class
@@ -20,7 +19,9 @@ module LWS
20
19
  # configured for the library to work properly!
21
20
  class Config < Hashie::Dash
22
21
  # 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]
22
+ VALID_FILE_PROPERTIES =
23
+ [:api_token, :endpoints, :environment, :http_debug, :http_debug_headers,
24
+ :json_debug, :proxy]
24
25
 
25
26
  #@!attribute api_token
26
27
  # @return [String, nil] the API token necessary to gain access
@@ -47,7 +48,7 @@ module LWS
47
48
 
48
49
  #@!attribute http_caching
49
50
  # @return [Boolean] whether HTTP caching is enabled
50
- property :http_caching, default: true
51
+ property :http_caching, default: false
51
52
 
52
53
  #@!attribute http_caching_object
53
54
  # @return [#read, #write, #delete] an object that caches results
@@ -76,13 +77,42 @@ module LWS
76
77
  # (Rails logger, Logger, etc.)
77
78
  property :logger
78
79
 
80
+ #@!attribute proxy
81
+ # When passing a Hash, it should at least contain +:uri+ as key with
82
+ # a String or URI as value and optionally the +:user+ and +:password+
83
+ # keys with appropriate values.
84
+ # @return [Hash, String, URI] the proxy configuration, either as URL or
85
+ # as a Hash
86
+ property :proxy
87
+
79
88
  #@!attribute stubbing
80
89
  # @return [String] the path to a directory with stubbing fixtures
81
90
  # (setting this enables the default stubs)
82
91
  property :stubbing
83
92
 
84
- # Supplements the configuration with settings from a config file.
93
+ # Sets the environment for the config.
94
+ #
95
+ # The provided environment can be a string in short and long format as well
96
+ # as a symbol.
97
+ #
98
+ # @param new_env [Symbol, String] the new environment to use
99
+ # @return [Symbol] the new environment
100
+ # @raise when an invalid environment is provided
101
+ def environment=(new_env)
102
+ real_env =
103
+ case new_env
104
+ when "prod", "production", :prod, :production
105
+ :production
106
+ when "dev", "development", :dev, :development
107
+ :development
108
+ else
109
+ raise "unsupported environment: #{new_env}"
110
+ end
111
+ self[:environment] = real_env
112
+ end
85
113
 
114
+ # Supplements the configuration with settings from a config file.
115
+ #
86
116
  # The configuration file has a section per environment that indicates
87
117
  # per property what to use if it is unset.
88
118
  #
@@ -100,9 +130,10 @@ module LWS
100
130
  # an environment key that selects the default environment (unless
101
131
  # overriden by the +LC_LWS_ENV+ environment variable).
102
132
  #
103
- # @example A elaborate configuration that sets the development environment as default, enables debugging and overrides an endpoint
133
+ # @example A elaborate configuration that sets the proxy and the development environment as default, enables debugging and overrides an endpoint
104
134
  # default:
105
135
  # environment: "development"
136
+ # proxy: "http://proxyserver:8080"
106
137
  #
107
138
  # production:
108
139
  # api_token: "my-prod-api-token"
@@ -123,12 +154,13 @@ module LWS
123
154
  def load_config_file(config_file, force_environment = nil)
124
155
  return false unless File.exist? config_file
125
156
  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] || {}
157
+ default_config = config_data["default"] || {}
158
+
159
+ self.environment = force_environment ||
160
+ ENV["LC_LWS_ENV"] ||
161
+ config_data.dig("default", "environment") ||
162
+ self.environment
163
+ config = default_config.merge(config_data[self.environment.to_s] || {})
132
164
 
133
165
  config.each_pair do |key, value|
134
166
  unless VALID_FILE_PROPERTIES.include? key.to_sym
data/lib/lws/version.rb CHANGED
@@ -13,6 +13,6 @@ module LWS
13
13
 
14
14
  # The LWS library version.
15
15
  # @note The major and minor version parts match the LWS API version!
16
- VERSION = "7.2.1".freeze
16
+ VERSION = "7.3.0".freeze
17
17
 
18
18
  end
data/test/config/full.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  default:
3
3
  environment: development
4
+ proxy: http://user:password@proxyserver:8080
4
5
 
5
6
  development:
6
7
  api_token: "dev-token"
@@ -116,7 +116,7 @@ class TestDigitalSignageChannelTimeSchedule < MiniTest::Test
116
116
  include LWS::DigitalSignage
117
117
 
118
118
  def setup
119
- @channel_time_schedule = Channel::TimeSchedule.all.first
119
+ @channel_time_schedule = Channel::TimeSchedule.find(1)
120
120
  end
121
121
 
122
122
  def test_valid
@@ -137,7 +137,7 @@ class TestDigitalSignageChannelTimeScheduleDay < MiniTest::Test
137
137
  include LWS::DigitalSignage
138
138
 
139
139
  def setup
140
- @channel_time_schedule = Channel::TimeSchedule.all.first
140
+ @channel_time_schedule = Channel::TimeSchedule.find(1)
141
141
  # Time schedule days only exist as child objects of a time schedule
142
142
  @channel_time_schedule_day = @channel_time_schedule.days.first
143
143
  end
@@ -44,6 +44,7 @@ class TestHTTPCaching < MiniTest::Test
44
44
  # Redo the LWS setup with an HTTP caching object
45
45
  LWS.setup do |config|
46
46
  config.api_token = ENV["LC_LWS_TEST_TOKEN"]
47
+ config.http_caching = true
47
48
  config.http_caching_object = @cache_mock
48
49
  if ENV["LC_LWS_TEST_DEBUG"].present?
49
50
  config.http_debug = true
data/test/setup_test.rb CHANGED
@@ -8,7 +8,6 @@
8
8
  # contact LeftClick B.V. at: Schootense Dreef 20A, 5708 HZ Helmond, The
9
9
  # Netherlands, info@leftclick.eu, +3185-4444-004.
10
10
 
11
-
12
11
  require "test_helper"
13
12
 
14
13
  class TestSetup < MiniTest::Test
@@ -24,7 +23,7 @@ class TestSetup < MiniTest::Test
24
23
 
25
24
  def test_cannot_leave_out_api_token
26
25
  assert_raises do
27
- LWS.setup { }
26
+ LWS.setup {}
28
27
  end
29
28
  end
30
29
 
@@ -47,6 +46,26 @@ class TestSetup < MiniTest::Test
47
46
  assert_equal("test-token", LWS.config.api_token)
48
47
  end
49
48
 
49
+ def test_environment_writer
50
+ LWS.config.environment = "prod"
51
+ assert_equal(:production, LWS.config.environment)
52
+ LWS.config.environment = "production"
53
+ assert_equal(:production, LWS.config.environment)
54
+ LWS.config.environment = :production
55
+ assert_equal(:production, LWS.config.environment)
56
+
57
+ LWS.config.environment = "dev"
58
+ assert_equal(:development, LWS.config.environment)
59
+ LWS.config.environment = "development"
60
+ assert_equal(:development, LWS.config.environment)
61
+ LWS.config.environment = :development
62
+ assert_equal(:development, LWS.config.environment)
63
+
64
+ assert_raises do
65
+ LWS.config.environment = "doesnotexist"
66
+ end
67
+ end
68
+
50
69
  def test_http_logging_without_logger
51
70
  reconfigure(logger: nil,
52
71
  http_debug: true,
@@ -112,6 +131,7 @@ class TestSetup < MiniTest::Test
112
131
  assert_equal(true, LWS.config.http_debug)
113
132
  assert_equal(true, LWS.config.http_debug_headers)
114
133
  assert_equal(true, LWS.config.json_debug)
134
+ assert_equal("http://user:password@proxyserver:8080", LWS.config.proxy)
115
135
 
116
136
  with_env("LC_LWS_ENV" => "production") do
117
137
  reconfigure do |config|
@@ -128,4 +148,29 @@ class TestSetup < MiniTest::Test
128
148
  assert_equal(:development, LWS.config.environment)
129
149
  end
130
150
 
151
+ def test_proxy
152
+ proxy_url = "http://user:password@proxyserver:8080"
153
+ reconfigure do |config|
154
+ config.proxy = proxy_url
155
+ end
156
+
157
+ assert_equal(proxy_url, LWS.config.proxy)
158
+ assert_equal("http://user:password@proxyserver:8080", LWS::Auth.api.proxy.uri.to_s)
159
+ assert_equal("user", LWS::Auth.api.proxy.user)
160
+ assert_equal("password", LWS::Auth.api.proxy.password)
161
+
162
+ proxy_options =
163
+ { uri: Addressable::URI.parse("http://proxyserver:8080"),
164
+ user: "user",
165
+ password: "password" }
166
+ reconfigure do |config|
167
+ config.proxy = proxy_options
168
+ end
169
+
170
+ assert_equal(proxy_options, LWS.config.proxy)
171
+ assert_equal("http://proxyserver:8080", LWS::Auth.api.proxy.uri.to_s)
172
+ assert_equal("user", LWS::Auth.api.proxy.user)
173
+ assert_equal("password", LWS::Auth.api.proxy.password)
174
+ end
175
+
131
176
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lws
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.1
4
+ version: 7.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - LeftClick B.V.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-29 00:00:00.000000000 Z
11
+ date: 2021-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday-http-cache
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: 0.10.0
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '1.0'
36
+ version: '2.0'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 0.10.0
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.0'
46
+ version: '2.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: hashie
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -140,14 +140,14 @@ dependencies:
140
140
  requirements:
141
141
  - - "~>"
142
142
  - !ruby/object:Gem::Version
143
- version: '1.16'
143
+ version: '2.1'
144
144
  type: :development
145
145
  prerelease: false
146
146
  version_requirements: !ruby/object:Gem::Requirement
147
147
  requirements:
148
148
  - - "~>"
149
149
  - !ruby/object:Gem::Version
150
- version: '1.16'
150
+ version: '2.1'
151
151
  - !ruby/object:Gem::Dependency
152
152
  name: minitest
153
153
  requirement: !ruby/object:Gem::Requirement