lws 7.2.3 → 7.2.4

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: 215d80612cb5ad547181deadb4a61244b8a108c3e1b6a24e52b288c9dcddc507
4
+ data.tar.gz: '0892759a406c54e49087e7e84ac6a0b433144c936ca8b74e8e3ab0d23a652933'
5
5
  SHA512:
6
- metadata.gz: 6ec11d0269f6c9565832321d27548ff22565f7afc5361317be9862eb286c9681ee2268b70145dffa8f51ec35d71765087a67347ea216c85d4e590146d1bfdedb
7
- data.tar.gz: 0c1ab92859fe42a6a6fd3f7be9cdb7d3edb0efd338890de8517bc4cc537552f1c5f8de1b0d53616e3098a2b89db94b7ecf7258a83fae6804c1d47e9c1e9aa6f1
6
+ metadata.gz: 76bb918ff504f80e6d7e65bce4eaa8a229cdbc9b6b52bced17aa600f87d1b5e1b5ab32adac0e28de00c0b0f1fa49d326962ceaeb80087aac8e5f82914915777e
7
+ data.tar.gz: e63b88135279e691f345911a249d46a56d20c90534f6759ba64a3830f7c7b3074b0a67bc1206f972637a8a3c3a12b69e221e82cb6464f6b42f16662168de8f99
@@ -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.rb CHANGED
@@ -81,7 +81,7 @@ module LWS
81
81
 
82
82
  # Override the environment if needed
83
83
  if ENV["LC_LWS_ENV"].present?
84
- @@config.environment = ENV["LC_LWS_ENV"].to_sym
84
+ @@config.environment = ENV["LC_LWS_ENV"]
85
85
  end
86
86
 
87
87
  # Override the API token if needed (and no custom API token middleware
@@ -203,11 +203,13 @@ module LWS::Generic
203
203
  def self.use_api(api)
204
204
  config = LWS.config
205
205
 
206
- # A connection to Active Storage (with JSON request/response, but without
207
- # token authentication and caching).
206
+ # An API connection to Active Storage (with JSON request/response, but
207
+ # without caching).
208
208
  @as_connection = Faraday.new(url: api.url_prefix) do |c|
209
209
  # Request
210
210
  c.request :json
211
+ c.use LWS::Middleware::RequestHeaders, config.api_token
212
+ c.use config.api_token_middleware if config.api_token_middleware.present?
211
213
 
212
214
  # Response
213
215
  c.use LWS::JSONLogger, config.logger if config.json_debug
@@ -81,8 +81,29 @@ module LWS
81
81
  # (setting this enables the default stubs)
82
82
  property :stubbing
83
83
 
84
- # Supplements the configuration with settings from a config file.
84
+ # Sets the environment for the config.
85
+ #
86
+ # The provided environment can be a string in short and long format as well
87
+ # as a symbol.
88
+ #
89
+ # @param new_env [Symbol, String] the new environment to use
90
+ # @return [Symbol] the new environment
91
+ # @raise when an invalid environment is provided
92
+ def environment=(new_env)
93
+ real_env =
94
+ case new_env
95
+ when "prod", "production", :prod, :production
96
+ :production
97
+ when "dev", "development", :dev, :development
98
+ :development
99
+ else
100
+ raise "unsupported environment: #{new_env}"
101
+ end
102
+ self[:environment] = real_env
103
+ end
85
104
 
105
+ # Supplements the configuration with settings from a config file.
106
+ #
86
107
  # The configuration file has a section per environment that indicates
87
108
  # per property what to use if it is unset.
88
109
  #
@@ -123,12 +144,11 @@ module LWS
123
144
  def load_config_file(config_file, force_environment = nil)
124
145
  return false unless File.exist? config_file
125
146
  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] || {}
147
+ self.environment = force_environment ||
148
+ ENV["LC_LWS_ENV"] ||
149
+ config_data.dig("default", "environment") ||
150
+ self.environment
151
+ config = config_data[self.environment.to_s] || {}
132
152
 
133
153
  config.each_pair do |key, value|
134
154
  unless VALID_FILE_PROPERTIES.include? key.to_sym
@@ -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.3".freeze
16
+ VERSION = "7.2.4".freeze
17
17
 
18
18
  end
@@ -47,6 +47,26 @@ class TestSetup < MiniTest::Test
47
47
  assert_equal("test-token", LWS.config.api_token)
48
48
  end
49
49
 
50
+ def test_environment_writer
51
+ LWS.config.environment = "prod"
52
+ assert_equal(:production, LWS.config.environment)
53
+ LWS.config.environment = "production"
54
+ assert_equal(:production, LWS.config.environment)
55
+ LWS.config.environment = :production
56
+ assert_equal(:production, LWS.config.environment)
57
+
58
+ LWS.config.environment = "dev"
59
+ assert_equal(:development, LWS.config.environment)
60
+ LWS.config.environment = "development"
61
+ assert_equal(:development, LWS.config.environment)
62
+ LWS.config.environment = :development
63
+ assert_equal(:development, LWS.config.environment)
64
+
65
+ assert_raises do
66
+ LWS.config.environment = "doesnotexist"
67
+ end
68
+ end
69
+
50
70
  def test_http_logging_without_logger
51
71
  reconfigure(logger: nil,
52
72
  http_debug: true,
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.3
4
+ version: 7.2.4
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-12-02 00:00:00.000000000 Z
11
+ date: 2021-01-11 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