lws 0.1.3 → 0.1.4
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.
- data/README.rdoc +2 -1
- data/lib/lws/version.rb +1 -1
- data/lib/lws.rb +8 -3
- data/test/test_caching.rb +1 -3
- data/test/test_proc_token.rb +35 -0
- metadata +17 -15
data/README.rdoc
CHANGED
@@ -42,7 +42,7 @@ ORM's:
|
|
42
42
|
The following example uses a much more elaborate setup:
|
43
43
|
|
44
44
|
LWS.setup do |config|
|
45
|
-
config.api_token = "
|
45
|
+
config.api_token = proc { "token" + Time.now.to_s }
|
46
46
|
config.caching_object = MyRedisCache.new
|
47
47
|
config.environment = :development
|
48
48
|
config.endponts = { maps: "https://maps.leftclick.eu" }
|
@@ -54,6 +54,7 @@ In this setup, a caching object is used that follows the
|
|
54
54
|
+FaradayMiddleWare::Caching+ API. It uses all development API endpoints,
|
55
55
|
except for maps, which is overriden to use the production endpoint. Also
|
56
56
|
HTTP request and JSON data debug logging is enabled.
|
57
|
+
Also tokens are dynamically determined at runtime by the given proc block.
|
57
58
|
|
58
59
|
The +LC_LWS_ENV+ is supported to override the LWS environment.
|
59
60
|
Allowed values are "production" (default) and "development".
|
data/lib/lws/version.rb
CHANGED
data/lib/lws.rb
CHANGED
@@ -59,7 +59,11 @@ module LWS
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def call(env)
|
62
|
-
env[:request_headers]["X-Token"] = @token
|
62
|
+
env[:request_headers]["X-Token"] = if @token.is_a? Proc
|
63
|
+
@token.call
|
64
|
+
else
|
65
|
+
@token
|
66
|
+
end.to_s
|
63
67
|
env[:request_headers]["Accept"] = "application/json"
|
64
68
|
@app.call(env)
|
65
69
|
end
|
@@ -72,7 +76,8 @@ module LWS
|
|
72
76
|
# = The API configuration class
|
73
77
|
class Config < Hashie::Dash
|
74
78
|
#@!attribute api_token
|
75
|
-
# @return [String] the API token necessary to gain access
|
79
|
+
# @return [String, Proc] the API token necessary to gain access or
|
80
|
+
# a proc block that returns it
|
76
81
|
property :api_token
|
77
82
|
|
78
83
|
#@!attribute caching_object
|
@@ -84,7 +89,7 @@ module LWS
|
|
84
89
|
# overrides
|
85
90
|
property :endpoints, default: {}
|
86
91
|
|
87
|
-
#@!
|
92
|
+
#@!attribute environment
|
88
93
|
# @return [Symbol] the (default) API environment
|
89
94
|
property :environment, default: :production
|
90
95
|
|
data/test/test_caching.rb
CHANGED
@@ -31,9 +31,7 @@ class TestCaching < MiniTest::Unit::TestCase
|
|
31
31
|
config.http_debug = true
|
32
32
|
config.json_debug = true
|
33
33
|
end
|
34
|
-
config.
|
35
|
-
maps: "https://maps-dev.leftclick.eu",
|
36
|
-
presence: "https://presence-dev.leftclick.eu" }
|
34
|
+
config.environment = :development
|
37
35
|
end
|
38
36
|
end
|
39
37
|
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class TestProcToken < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def test_working_proc_token
|
6
|
+
# Redo the LWS setup with a proc block as token
|
7
|
+
LWS.setup do |config|
|
8
|
+
config.api_token = proc { ENV["LC_LWS_TEST_TOKEN"] }
|
9
|
+
if ENV["LC_LWS_TEST_DEBUG"].present?
|
10
|
+
config.http_debug = true
|
11
|
+
config.json_debug = true
|
12
|
+
end
|
13
|
+
config.environment = :development
|
14
|
+
end
|
15
|
+
|
16
|
+
task = LWS::Auth::Task.all.first
|
17
|
+
refute_nil(task)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_failing_proc
|
21
|
+
# Redo the LWS setup with a proc block as token
|
22
|
+
LWS.setup do |config|
|
23
|
+
config.api_token = proc { nil }
|
24
|
+
if ENV["LC_LWS_TEST_DEBUG"].present?
|
25
|
+
config.http_debug = true
|
26
|
+
config.json_debug = true
|
27
|
+
end
|
28
|
+
config.environment = :development
|
29
|
+
end
|
30
|
+
|
31
|
+
task = LWS::Auth::Task.all.first
|
32
|
+
assert_nil(task)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2016-03-09 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday_middleware
|
16
|
-
requirement: &
|
16
|
+
requirement: &6510360 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: '1.0'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *6510360
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: hashie
|
30
|
-
requirement: &
|
30
|
+
requirement: &6509420 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -35,10 +35,10 @@ dependencies:
|
|
35
35
|
version: '0'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *6509420
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: her
|
41
|
-
requirement: &
|
41
|
+
requirement: &6508740 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
44
|
- - ~>
|
@@ -46,10 +46,10 @@ dependencies:
|
|
46
46
|
version: 0.8.1
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
|
-
version_requirements: *
|
49
|
+
version_requirements: *6508740
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: hashie
|
52
|
-
requirement: &
|
52
|
+
requirement: &6508140 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ! '>='
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: '0'
|
58
58
|
type: :development
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *6508140
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: her
|
63
|
-
requirement: &
|
63
|
+
requirement: &6507420 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
@@ -68,10 +68,10 @@ dependencies:
|
|
68
68
|
version: 0.8.1
|
69
69
|
type: :development
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
71
|
+
version_requirements: *6507420
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: minitest
|
74
|
-
requirement: &
|
74
|
+
requirement: &6506840 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
76
76
|
requirements:
|
77
77
|
- - ! '>='
|
@@ -79,10 +79,10 @@ dependencies:
|
|
79
79
|
version: '0'
|
80
80
|
type: :development
|
81
81
|
prerelease: false
|
82
|
-
version_requirements: *
|
82
|
+
version_requirements: *6506840
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
|
-
requirement: &
|
85
|
+
requirement: &6522620 !ruby/object:Gem::Requirement
|
86
86
|
none: false
|
87
87
|
requirements:
|
88
88
|
- - ~>
|
@@ -90,7 +90,7 @@ dependencies:
|
|
90
90
|
version: 0.9.2
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
|
-
version_requirements: *
|
93
|
+
version_requirements: *6522620
|
94
94
|
description: ! "This library for Ruby provides access to the LeftClick\n web services/applications
|
95
95
|
using a model-based structure that abstracts from API calls\n using the available
|
96
96
|
REST interfaces."
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- test/test_helper.rb
|
120
120
|
- test/test_maps.rb
|
121
121
|
- test/test_presence.rb
|
122
|
+
- test/test_proc_token.rb
|
122
123
|
homepage: https://leftclick.eu/
|
123
124
|
licenses: []
|
124
125
|
post_install_message:
|
@@ -150,4 +151,5 @@ test_files:
|
|
150
151
|
- test/test_helper.rb
|
151
152
|
- test/test_maps.rb
|
152
153
|
- test/test_presence.rb
|
154
|
+
- test/test_proc_token.rb
|
153
155
|
has_rdoc:
|