lws 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/lws/auth.rb CHANGED
@@ -6,7 +6,7 @@ module LWS::Auth
6
6
 
7
7
  # @!visibility private
8
8
  def self.api
9
- @@api ||= LWS.setup_api(LWS.config.endpoints[:auth] || ENDPOINT)
9
+ LWS.setup_api(LWS.config.endpoints[:auth] || ENDPOINT)
10
10
  end
11
11
 
12
12
  ### Generic classes
data/lib/lws/maps.rb CHANGED
@@ -6,7 +6,7 @@ module LWS::Maps
6
6
 
7
7
  #@!visibility private
8
8
  def self.api
9
- @@api ||= LWS.setup_api(LWS.config.endpoints[:maps] || ENDPOINT)
9
+ LWS.setup_api(LWS.config.endpoints[:maps] || ENDPOINT)
10
10
  end
11
11
 
12
12
  ### Generic classes
data/lib/lws/presence.rb CHANGED
@@ -6,7 +6,7 @@ module LWS::Presence
6
6
 
7
7
  #@!visibility private
8
8
  def self.api
9
- @@api ||= LWS.setup_api(LWS.config.endpoints[:presence] || ENDPOINT)
9
+ LWS.setup_api(LWS.config.endpoints[:presence] || ENDPOINT)
10
10
  end
11
11
 
12
12
  ### Generic classes
@@ -0,0 +1,7 @@
1
+ module LWS
2
+
3
+ # The LWS library version.
4
+ # @note This is not the API version!
5
+ VERSION = '0.1.2'
6
+
7
+ end
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
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
- $:.push File.expand_path("lib", __FILE__)
3
- require "lws"
2
+ require File.expand_path("../lib/lws/version", __FILE__)
4
3
 
5
4
  Gem::Specification.new do |s|
6
5
  s.name = "lws"
@@ -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.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-15 00:00:00.000000000 Z
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: &15275000 !ruby/object:Gem::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: *15275000
24
+ version_requirements: *14782680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: her
27
- requirement: &15274240 !ruby/object:Gem::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: *15274240
35
+ version_requirements: *14782120
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: hashie
38
- requirement: &15273720 !ruby/object:Gem::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: *15273720
46
+ version_requirements: *14781540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: her
49
- requirement: &15273060 !ruby/object:Gem::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: *15273060
57
+ version_requirements: *14780780
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitest
60
- requirement: &15272520 !ruby/object:Gem::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: *15272520
68
+ version_requirements: *14780180
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
- requirement: &15271840 !ruby/object:Gem::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: *15271840
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