lws 0.1.1 → 0.1.2
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/lib/lws/auth.rb +1 -1
- data/lib/lws/maps.rb +1 -1
- data/lib/lws/presence.rb +1 -1
- data/lib/lws/version.rb +7 -0
- data/lib/lws.rb +10 -4
- data/lws.gemspec +1 -2
- data/test/test_caching.rb +50 -0
- metadata +17 -14
data/lib/lws/auth.rb
CHANGED
data/lib/lws/maps.rb
CHANGED
data/lib/lws/presence.rb
CHANGED
data/lib/lws/version.rb
ADDED
data/lib/lws.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
+
require "faraday_middleware"
|
1
2
|
require "hashie"
|
2
3
|
require "her"
|
3
4
|
require "pp"
|
4
5
|
|
6
|
+
require "lws/version"
|
7
|
+
|
5
8
|
# = Main LeftClick web services module
|
6
9
|
#
|
7
10
|
# This module is the main namespace for the web service/application
|
@@ -14,10 +17,6 @@ module LWS
|
|
14
17
|
# {.setup}.
|
15
18
|
SUPPORTED_APPS = [:generic, :auth, :maps, :presence]
|
16
19
|
|
17
|
-
# The LWS library version.
|
18
|
-
# @note This is not the API version!
|
19
|
-
VERSION = '0.1.1'
|
20
|
-
|
21
20
|
# @!visibility private
|
22
21
|
class HTTPLogger < Faraday::Response::Middleware
|
23
22
|
|
@@ -76,6 +75,10 @@ module LWS
|
|
76
75
|
# @return [String] the API token necessary to gain access
|
77
76
|
property :api_token
|
78
77
|
|
78
|
+
#@!attribute caching_object
|
79
|
+
# @return [#read, #write] an object that can cache request results
|
80
|
+
property :caching_object, default: nil
|
81
|
+
|
79
82
|
#@!attribute endpoints
|
80
83
|
# @return [Hash{Symbol=>String}] a mapping of application endpoint
|
81
84
|
# overrides
|
@@ -120,6 +123,9 @@ module LWS
|
|
120
123
|
api = Her::API.new
|
121
124
|
api.setup(url: api_url) do |c|
|
122
125
|
# Request
|
126
|
+
if config.caching_object
|
127
|
+
c.use FaradayMiddleware::Caching, config.caching_object
|
128
|
+
end
|
123
129
|
c.use RequestHeaders, config.api_token
|
124
130
|
c.use Faraday::Request::UrlEncoded
|
125
131
|
|
data/lws.gemspec
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class TestCaching < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
# Class used to check if data is read/written to the cache
|
6
|
+
class CacheTest
|
7
|
+
|
8
|
+
attr_reader :last_read_key
|
9
|
+
attr_reader :last_written_key, :last_written_value
|
10
|
+
|
11
|
+
def read(key)
|
12
|
+
@last_read_key = key
|
13
|
+
nil
|
14
|
+
end
|
15
|
+
|
16
|
+
def write(key, value)
|
17
|
+
@last_written_key, @last_written_value = key, value
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def setup
|
24
|
+
@cache_mock = CacheTest.new
|
25
|
+
|
26
|
+
# Redo the LWS setup with cache
|
27
|
+
LWS.setup do |config|
|
28
|
+
config.api_token = ENV["LC_LWS_TEST_TOKEN"]
|
29
|
+
config.caching_object = @cache_mock
|
30
|
+
if ENV["LC_LWS_TEST_DEBUG"].present?
|
31
|
+
config.http_debug = true
|
32
|
+
config.json_debug = true
|
33
|
+
end
|
34
|
+
config.endpoints = { auth: "https://auth-dev.leftclick.eu",
|
35
|
+
maps: "https://maps-dev.leftclick.eu",
|
36
|
+
presence: "https://presence-dev.leftclick.eu" }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_working_cache
|
41
|
+
assert_nil(@cache_mock.last_read_key)
|
42
|
+
assert_nil(@cache_mock.last_written_key)
|
43
|
+
assert_nil(@cache_mock.last_written_value)
|
44
|
+
config = LWS::Auth::Configuration.all.first
|
45
|
+
assert_equal(@cache_mock.last_read_key, "/configurations")
|
46
|
+
assert_equal(@cache_mock.last_written_key, "/configurations")
|
47
|
+
refute_nil(@cache_mock.last_written_value)
|
48
|
+
end
|
49
|
+
|
50
|
+
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.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-02-
|
12
|
+
date: 2016-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|
16
|
-
requirement: &
|
16
|
+
requirement: &14782680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14782680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: her
|
27
|
-
requirement: &
|
27
|
+
requirement: &14782120 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.8.1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14782120
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: hashie
|
38
|
-
requirement: &
|
38
|
+
requirement: &14781540 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14781540
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: her
|
49
|
-
requirement: &
|
49
|
+
requirement: &14780780 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.8.1
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14780780
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest
|
60
|
-
requirement: &
|
60
|
+
requirement: &14780180 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *14780180
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
|
-
requirement: &
|
71
|
+
requirement: &14779500 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: 0.9.2
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *14779500
|
80
80
|
description: ! "This library for Ruby provides access to the LeftClick\n web services/applications
|
81
81
|
using a model-based structure that abstracts from API calls\n using the available
|
82
82
|
REST interfaces."
|
@@ -96,8 +96,10 @@ files:
|
|
96
96
|
- lib/lws/generic.rb
|
97
97
|
- lib/lws/maps.rb
|
98
98
|
- lib/lws/presence.rb
|
99
|
+
- lib/lws/version.rb
|
99
100
|
- lws.gemspec
|
100
101
|
- test/test_auth.rb
|
102
|
+
- test/test_caching.rb
|
101
103
|
- test/test_generic.rb
|
102
104
|
- test/test_helper.rb
|
103
105
|
- test/test_maps.rb
|
@@ -128,6 +130,7 @@ specification_version: 3
|
|
128
130
|
summary: LeftClick web services library for Ruby
|
129
131
|
test_files:
|
130
132
|
- test/test_auth.rb
|
133
|
+
- test/test_caching.rb
|
131
134
|
- test/test_generic.rb
|
132
135
|
- test/test_helper.rb
|
133
136
|
- test/test_maps.rb
|