lws 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -2,6 +2,6 @@ module LWS
2
2
 
3
3
  # The LWS library version.
4
4
  # @note This is not the API version!
5
- VERSION = '0.1.3'
5
+ VERSION = '0.1.4'
6
6
 
7
7
  end
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
- #@!attribte environment
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.endpoints = { auth: "https://auth-dev.leftclick.eu",
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.3
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: &10903360 !ruby/object:Gem::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: *10903360
27
+ version_requirements: *6510360
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: hashie
30
- requirement: &10902460 !ruby/object:Gem::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: *10902460
38
+ version_requirements: *6509420
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: her
41
- requirement: &10901740 !ruby/object:Gem::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: *10901740
49
+ version_requirements: *6508740
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: hashie
52
- requirement: &10901140 !ruby/object:Gem::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: *10901140
60
+ version_requirements: *6508140
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: her
63
- requirement: &10900440 !ruby/object:Gem::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: *10900440
71
+ version_requirements: *6507420
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: minitest
74
- requirement: &10899860 !ruby/object:Gem::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: *10899860
82
+ version_requirements: *6506840
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
- requirement: &10915620 !ruby/object:Gem::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: *10915620
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: