lws 6.1.0.beta2 → 6.1.0.beta3

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
  SHA1:
3
- metadata.gz: 7a09ba1c573d34f7640da8aad3df199382741d49
4
- data.tar.gz: 3bc4b060e98e70810ab6f8d503e15e61e0d85cf7
3
+ metadata.gz: 7ce4acf9c7e03325ea30484df6033d9629e5b529
4
+ data.tar.gz: f389cb4a66d55a2ac983009e14b8ae78e8f5429e
5
5
  SHA512:
6
- metadata.gz: 4e91fef268389561a3414fecaaaf914f38f85b84dbe41ad46bd8c2a9da54ad1eb40f158be4b39929f6c083045c729d47828669485cedebf0fe15407bdad48487
7
- data.tar.gz: e1ae441078003a07e879e2df01d50a921f1708530dda407100e6a1bc92607854f321ed87d8e705495a507b7d38e0882c8b15f84eed5909d7ec6435b0ccd66ea8
6
+ metadata.gz: cda7314094b11b9f564c360ab04f358f5fad616004d81159caabdf072421d472053240523068d4c1c8692be1d108121807d343197d61acec0fdfc25bea9f7bfb
7
+ data.tar.gz: fda0ae24f5cd2383bcddda99555321a68d118e6bee0cc19694ee96ec6dafe28175f6032299e9e3b1680c7f28b2c2dd1c4d528c868df57327deddf7ff268212da
data/README.rdoc CHANGED
@@ -23,9 +23,9 @@ would create a new +config/initializers/lws.rb+ file with these lines:
23
23
  config.api_token = "…" # Get it from someplace
24
24
  end
25
25
 
26
- After that, due to the fact that LWS is based on Her, you can access the
27
- objects in the LeftClick Web Services similary to many ActiveRecord-like
28
- ORM's:
26
+ After that, due to the fact that LWS is based on
27
+ [Spyke](https://github.com/balvig/spyke), you can access the objects in the
28
+ LeftClick Web Services similary to many ActiveRecord-like ORM's:
29
29
 
30
30
  map = Maps::Map.all.first
31
31
  markers = map.markers
@@ -72,4 +72,4 @@ runtime determined API token as value, for example:
72
72
  The +LC_LWS_ENV+ environment variable is supported to override the LWS
73
73
  environment. Allowed values are "production" (default) and "development".
74
74
  The +LC_LWS_API_TOKEN+ is supported to set the LWS API token default.
75
- This only works if not a custom API token middleware is used.
75
+ This only works if a custom API token middleware is not used.
data/lib/lws.rb CHANGED
@@ -16,6 +16,7 @@ require "spyke"
16
16
  require "pp"
17
17
  require "webmock"
18
18
 
19
+ require "lws/middleware"
19
20
  require "lws/stubbing"
20
21
  require "lws/version"
21
22
 
@@ -29,97 +30,13 @@ WebMock.disable!
29
30
  # libraries.
30
31
  module LWS
31
32
 
33
+ include Middleware
34
+
32
35
  # The list of supported apps (web service libraries) loaded by
33
36
  # {.setup}.
34
37
  SUPPORTED_APPS = [:generic, :auth, :corporate_website, :digital_signage,
35
38
  :maps, :presence, :ticket]
36
39
 
37
- # @private
38
- # @!visibility private
39
- class JSONParser < Faraday::Response::Middleware
40
- def parse(body)
41
- data = MultiJson.load(body, symbolize_keys: true)
42
- metadata = data.delete(:metadata)
43
- errors = data.delete(:errors)
44
-
45
- # If there are errors, discard the data.
46
- data = nil if errors.present?
47
-
48
- { data: data,
49
- metadata: metadata,
50
- errors: errors }
51
- end
52
- end
53
-
54
- # @private
55
- # @!visibility private
56
- class HTTPLogger < Faraday::Response::Middleware
57
-
58
- def initialize(app, logger, show_headers)
59
- raise "cannot log HTTP requests without a logger" if logger.nil?
60
- @logger = logger
61
- @show_headers = show_headers
62
- super(app)
63
- end
64
-
65
- def call(env)
66
- @logger.debug ">>> #{env[:method].upcase} #{env[:url].to_s}"
67
- if @show_headers
68
- env[:request_headers].each do |hdr, val|
69
- @logger.debug " #{hdr}: #{val}"
70
- end
71
- end
72
- @logger.debug ">>> #{env[:body] || "nil"}"
73
- super
74
- end
75
-
76
- def on_complete(env)
77
- super
78
- @logger.debug "<<< HTTP #{env[:status].to_s}"
79
- if @show_headers
80
- env[:response_headers].each do |hdr, val|
81
- @logger.debug " #{hdr}: #{val}"
82
- end
83
- end
84
- @logger.debug "<<< #{env[:body] || "nil"}"
85
- end
86
-
87
- end
88
-
89
- # @private
90
- # @!visibility private
91
- class JSONLogger < Faraday::Response::Middleware
92
-
93
- def initialize(app, logger)
94
- raise "cannot log JSON data without a logger" if logger.nil?
95
- @logger = logger
96
- super(app)
97
- end
98
-
99
- def on_complete(env)
100
- dump = JSON.pretty_generate(env[:body])
101
- dump.split("\n").each { |line| @logger.debug "||| #{line}" }
102
- end
103
-
104
- end
105
-
106
- # @private
107
- # @!visibility private
108
- class RequestHeaders < Faraday::Middleware
109
-
110
- def initialize(app, token)
111
- super(app)
112
- @token = token
113
- end
114
-
115
- def call(env)
116
- env[:request_headers]["X-Token"] = @token if @token
117
- env[:request_headers]["Accept"] = "application/json"
118
- @app.call(env)
119
- end
120
-
121
- end
122
-
123
40
  # @return [Config] the API configuration for the web services
124
41
  mattr_reader :config
125
42
 
@@ -267,7 +184,7 @@ module LWS
267
184
  @app_modules = {}
268
185
  app_module_path = File.dirname(__FILE__)
269
186
  SUPPORTED_APPS.each do |app_name|
270
- load "#{app_module_path}/lws/#{app_name}.rb"
187
+ load "#{app_module_path}/lws/apps/#{app_name}.rb"
271
188
  @app_modules[app_name] = LWS.const_get(app_name.to_s.camelize)
272
189
  end
273
190
  end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,15 @@
1
+ #
2
+ # Copyright © 2016 LeftClick B.V.
3
+ #
4
+ # This software is property of LeftClick B.V. and cannot be redistributed
5
+ # and/or modified without permission. The software or any of its parts
6
+ # cannot be used for any other purposes than the LeftClick services and
7
+ # only during a valid license subscription. For more information, please
8
+ # contact LeftClick B.V. at: Geldropseweg 8B, 5731 SG Mierlo, The
9
+ # Netherlands, info@leftclick.eu, +31492-782120.
10
+
11
+
12
+ require "lws/middleware/http_logger"
13
+ require "lws/middleware/json_logger"
14
+ require "lws/middleware/json_parser"
15
+ require "lws/middleware/request_headers"
@@ -0,0 +1,53 @@
1
+ #
2
+ # Copyright © 2016 LeftClick B.V.
3
+ #
4
+ # This software is property of LeftClick B.V. and cannot be redistributed
5
+ # and/or modified without permission. The software or any of its parts
6
+ # cannot be used for any other purposes than the LeftClick services and
7
+ # only during a valid license subscription. For more information, please
8
+ # contact LeftClick B.V. at: Geldropseweg 8B, 5731 SG Mierlo, The
9
+ # Netherlands, info@leftclick.eu, +31492-782120.
10
+
11
+
12
+ module LWS
13
+
14
+ module Middleware
15
+
16
+ # @private
17
+ # @!visibility private
18
+ class HTTPLogger < Faraday::Response::Middleware
19
+
20
+ def initialize(app, logger, show_headers)
21
+ raise "cannot log HTTP requests without a logger" if logger.nil?
22
+ @logger = logger
23
+ @show_headers = show_headers
24
+ super(app)
25
+ end
26
+
27
+ def call(env)
28
+ @logger.debug ">>> #{env[:method].upcase} #{env[:url].to_s}"
29
+ if @show_headers
30
+ env[:request_headers].each do |hdr, val|
31
+ @logger.debug " #{hdr}: #{val}"
32
+ end
33
+ end
34
+ @logger.debug ">>> #{env[:body] || "nil"}"
35
+ super
36
+ end
37
+
38
+ def on_complete(env)
39
+ super
40
+ @logger.debug "<<< HTTP #{env[:status].to_s}"
41
+ if @show_headers
42
+ env[:response_headers].each do |hdr, val|
43
+ @logger.debug " #{hdr}: #{val}"
44
+ end
45
+ end
46
+ @logger.debug "<<< #{env[:body] || "nil"}"
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+
53
+ end
@@ -0,0 +1,36 @@
1
+ #
2
+ # Copyright © 2016 LeftClick B.V.
3
+ #
4
+ # This software is property of LeftClick B.V. and cannot be redistributed
5
+ # and/or modified without permission. The software or any of its parts
6
+ # cannot be used for any other purposes than the LeftClick services and
7
+ # only during a valid license subscription. For more information, please
8
+ # contact LeftClick B.V. at: Geldropseweg 8B, 5731 SG Mierlo, The
9
+ # Netherlands, info@leftclick.eu, +31492-782120.
10
+
11
+
12
+ module LWS
13
+
14
+ module Middleware
15
+
16
+ # @private
17
+ # @!visibility private
18
+ class JSONLogger < Faraday::Response::Middleware
19
+
20
+ def initialize(app, logger)
21
+ raise "cannot log JSON data without a logger" if logger.nil?
22
+ @logger = logger
23
+ super(app)
24
+ end
25
+
26
+ def on_complete(env)
27
+ return if env[:body].blank?
28
+ dump = JSON.pretty_generate(env[:body])
29
+ dump.split("\n").each { |line| @logger.debug "||| #{line}" }
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -0,0 +1,46 @@
1
+ #
2
+ # Copyright © 2016 LeftClick B.V.
3
+ #
4
+ # This software is property of LeftClick B.V. and cannot be redistributed
5
+ # and/or modified without permission. The software or any of its parts
6
+ # cannot be used for any other purposes than the LeftClick services and
7
+ # only during a valid license subscription. For more information, please
8
+ # contact LeftClick B.V. at: Geldropseweg 8B, 5731 SG Mierlo, The
9
+ # Netherlands, info@leftclick.eu, +31492-782120.
10
+
11
+
12
+ module LWS
13
+
14
+ module Middleware
15
+
16
+ # @private
17
+ # @!visibility private
18
+ class JSONParser < Faraday::Response::Middleware
19
+
20
+ def parse(body)
21
+ data = MultiJson.load(body, symbolize_keys: true)
22
+ metadata = data.delete(:metadata)
23
+ errors = data.delete(:errors)
24
+
25
+ # If there are errors, discard the data.
26
+ data = nil if errors.present?
27
+
28
+ { data: data,
29
+ metadata: metadata,
30
+ errors: errors }
31
+ end
32
+
33
+ def on_complete(env)
34
+ env[:body] = case env[:status]
35
+ when 204, 304
36
+ parse('{}')
37
+ else
38
+ parse(env[:body])
39
+ end
40
+ end
41
+
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # Copyright © 2016 LeftClick B.V.
3
+ #
4
+ # This software is property of LeftClick B.V. and cannot be redistributed
5
+ # and/or modified without permission. The software or any of its parts
6
+ # cannot be used for any other purposes than the LeftClick services and
7
+ # only during a valid license subscription. For more information, please
8
+ # contact LeftClick B.V. at: Geldropseweg 8B, 5731 SG Mierlo, The
9
+ # Netherlands, info@leftclick.eu, +31492-782120.
10
+
11
+
12
+ module LWS
13
+
14
+ module Middleware
15
+
16
+ # @private
17
+ # @!visibility private
18
+ class RequestHeaders < Faraday::Middleware
19
+
20
+ def initialize(app, token)
21
+ super(app)
22
+ @token = token
23
+ end
24
+
25
+ def call(env)
26
+ env[:request_headers]["X-Token"] = @token if @token
27
+ env[:request_headers]["Accept"] = "application/json"
28
+ @app.call(env)
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
data/lib/lws/version.rb CHANGED
@@ -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 = '6.1.0.beta2'
16
+ VERSION = '6.1.0.beta3'
17
17
 
18
18
  end
data/test/auth_test.rb CHANGED
@@ -156,7 +156,7 @@ class TestAuthToken < MiniTest::Test
156
156
  end
157
157
 
158
158
  def test_valid_associations
159
- refute_nil(@token.account)
159
+ assert_instance_of(Account, @token.account)
160
160
  if @token.user.present?
161
161
  assert_instance_of(User, @token.user)
162
162
  assert_equal(@token.user.account.id, @token.account.id)
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: 6.1.0.beta2
4
+ version: 6.1.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - LeftClick B.V.
@@ -236,14 +236,19 @@ files:
236
236
  - bin/lwsconsole
237
237
  - copyright.txt
238
238
  - lib/lws.rb
239
- - lib/lws/auth.rb
240
- - lib/lws/corporate_website.rb
241
- - lib/lws/digital_signage.rb
242
- - lib/lws/generic.rb
243
- - lib/lws/maps.rb
244
- - lib/lws/presence.rb
239
+ - lib/lws/apps/auth.rb
240
+ - lib/lws/apps/corporate_website.rb
241
+ - lib/lws/apps/digital_signage.rb
242
+ - lib/lws/apps/generic.rb
243
+ - lib/lws/apps/maps.rb
244
+ - lib/lws/apps/presence.rb
245
+ - lib/lws/apps/ticket.rb
246
+ - lib/lws/middleware.rb
247
+ - lib/lws/middleware/http_logger.rb
248
+ - lib/lws/middleware/json_logger.rb
249
+ - lib/lws/middleware/json_parser.rb
250
+ - lib/lws/middleware/request_headers.rb
245
251
  - lib/lws/stubbing.rb
246
- - lib/lws/ticket.rb
247
252
  - lib/lws/version.rb
248
253
  - lws.gemspec
249
254
  - test/api_token_middleware_test.rb