attune 1.0.6 → 1.0.7

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: f989d86ece4bbcff8762dbfc11c3879e7b057913
4
- data.tar.gz: ef029ed4b38d4d0ed4a8dc072646bcf37e474a1e
3
+ metadata.gz: 55fd8fc4869a5683e96320760ec40769e6ad8eae
4
+ data.tar.gz: 3670d480e007e4c3359f60aca54ccc358bfc5ebc
5
5
  SHA512:
6
- metadata.gz: 6f00289644fedfcb042e5cc19a2001d60707f22c2ea0548e4a38a00133ca0f756a865b2b1105c18078618398bbca32ca48f374d1a83a34c391d9f829e41e5672
7
- data.tar.gz: fbda6bd0e3aa269e23bdbcda5419f6c9292f96d418da688bec8155d8e0d9013f0586097443402bbb37896b9dfb294ea65d65eefcb3ac81f93aae2e9f1adfdaae
6
+ metadata.gz: 9f3791fa61216413b48d19ff413976fe20ae0d3268d139c36ea753922e990d7912dab40aaab568996a0d0f6e9ec224ca04d69212b4b09f84945e34f292a15dd8
7
+ data.tar.gz: 76be0940a93b17b72dd30267214c63116c94d6b8a8173b79a7663a08987fe2f8842210f598b14e8613c6f3846dfb9b9647b4f850d3398ed7e6135c83b99c1655
@@ -1,6 +1,7 @@
1
1
  require 'attune/param_flattener'
2
2
  require "attune/call_dropping"
3
3
  require "attune/json_logger"
4
+ require "attune/gzip_request"
4
5
  require "attune/net_http_persistent"
5
6
 
6
7
  module Attune
@@ -28,6 +29,9 @@ module Attune
28
29
  # Log all requests
29
30
  builder.use Attune::JsonLogger
30
31
 
32
+ # Gzip requests, Faraday handles responses automatically
33
+ builder.use Attune::GzipRequest
34
+
31
35
  # Raise exceptions for HTTP 4xx/5xx
32
36
  builder.response :raise_error
33
37
 
@@ -0,0 +1,27 @@
1
+ module Attune
2
+ class GzipRequest < Faraday::Middleware
3
+ CONTENT_TYPE = 'Content-Type'.freeze
4
+ CONTENT_ENCODING = 'Content-Encoding'.freeze
5
+ MIME_TYPE = 'application/json'.freeze
6
+ ENCODING_TYPE = 'gzip'.freeze
7
+
8
+ def call(env)
9
+ if has_body?(env) && is_json?(env)
10
+ wio = StringIO.new("w")
11
+ w_gz = Zlib::GzipWriter.new(wio)
12
+ w_gz.write env[:body]
13
+ w_gz.close
14
+ env[:body] = wio.string
15
+ env[:request_headers][CONTENT_ENCODING] = ENCODING_TYPE
16
+ end
17
+ @app.call env
18
+ end
19
+ def is_json?(env)
20
+ env[:request_headers][CONTENT_TYPE] == MIME_TYPE
21
+ end
22
+ def has_body?(env)
23
+ body = env[:body] and !(body.respond_to?(:to_str) and body.empty?)
24
+ end
25
+ end
26
+ end
27
+
@@ -2,7 +2,7 @@ module Attune
2
2
  module Model
3
3
  # Result of creating an anonymous user.
4
4
  #
5
- # @attr [String] id
5
+ # @attr [String] id Id of the anonymous user.
6
6
  class AnonymousResult
7
7
  attr_accessor :id
8
8
 
@@ -1,8 +1,8 @@
1
1
  module Attune
2
2
  module Model
3
- # Wrapper for requesting multiple rankings in a single call.
3
+ # Array of the parameters specified for a ranking request
4
4
  #
5
- # @attr [Array<Attune::Model::RankingParams>] requests
5
+ # @attr [Array<Attune::Model::RankingParams>] requests
6
6
  class BatchRankingRequest
7
7
  attr_accessor :requests
8
8
 
@@ -1,8 +1,8 @@
1
1
  module Attune
2
2
  module Model
3
- # Wrapper of multiple ranking results.
3
+ # Array of ranking results.
4
4
  #
5
- # @attr [Array<Attune::Model::RankedEntities>] results
5
+ # @attr [Array<Attune::Model::RankedEntities>] results Array of rankings in order of the parameters provided as input.
6
6
  class BatchRankingResult
7
7
  attr_accessor :results
8
8
 
@@ -2,15 +2,15 @@ module Attune
2
2
  module Model
3
3
  #
4
4
  #
5
- # @attr [String] id
6
- # @attr [Array<String>] ids
7
- # @attr [Boolean] disabled
8
- # @attr [Array<String>] scope
9
- # @attr [String] consumer
10
- # @attr [String] entity_type
11
- # @attr [String] start_date
12
- # @attr [String] end_date
13
- # @attr [String] created_at
5
+ # @attr [String] id
6
+ # @attr [Array<String>] ids
7
+ # @attr [String] consumer
8
+ # @attr [String] entity_type
9
+ # @attr [String] start_date
10
+ # @attr [String] end_date
11
+ # @attr [String] created_at
12
+ # @attr [Boolean] disabled
13
+ # @attr [Array<String>] scope
14
14
  class Blacklist
15
15
  attr_accessor :id
16
16
 
@@ -18,12 +18,6 @@ module Attune
18
18
  attr_accessor :ids
19
19
 
20
20
 
21
- attr_accessor :disabled
22
-
23
-
24
- attr_accessor :scope
25
-
26
-
27
21
  attr_accessor :consumer
28
22
 
29
23
 
@@ -39,6 +33,12 @@ module Attune
39
33
  attr_accessor :created_at
40
34
 
41
35
 
36
+ attr_accessor :disabled
37
+
38
+
39
+ attr_accessor :scope
40
+
41
+
42
42
  def initialize(attributes = {})
43
43
  return if attributes.empty?
44
44
  # Workaround since JSON.parse has accessors as strings rather than symbols
@@ -47,13 +47,6 @@ module Attune
47
47
  if value.is_a?(Array)
48
48
  @ids = value
49
49
 
50
- end
51
- # Workaround since JSON.parse has accessors as strings rather than symbols
52
- @disabled = attributes["disabled"] || attributes[:"disabled"]
53
- value = attributes["scope"] || attributes[:"scope"]
54
- if value.is_a?(Array)
55
- @scope = value
56
-
57
50
  end
58
51
  # Workaround since JSON.parse has accessors as strings rather than symbols
59
52
  @consumer = attributes["consumer"] || attributes[:"consumer"]
@@ -65,6 +58,13 @@ module Attune
65
58
  @end_date = attributes["endDate"] || attributes[:"end_date"]
66
59
  # Workaround since JSON.parse has accessors as strings rather than symbols
67
60
  @created_at = attributes["createdAt"] || attributes[:"created_at"]
61
+ # Workaround since JSON.parse has accessors as strings rather than symbols
62
+ @disabled = attributes["disabled"] || attributes[:"disabled"]
63
+ value = attributes["scope"] || attributes[:"scope"]
64
+ if value.is_a?(Array)
65
+ @scope = value
66
+
67
+ end
68
68
 
69
69
 
70
70
  end
@@ -85,13 +85,13 @@ module Attune
85
85
  ATTRIBUTE_MAP = {
86
86
  :id => :id,
87
87
  :ids => :ids,
88
- :disabled => :disabled,
89
- :scope => :scope,
90
88
  :consumer => :consumer,
91
89
  :entity_type => :entityType,
92
90
  :start_date => :startDate,
93
91
  :end_date => :endDate,
94
- :created_at => :createdAt
92
+ :created_at => :createdAt,
93
+ :disabled => :disabled,
94
+ :scope => :scope
95
95
 
96
96
  }
97
97
  end
@@ -2,7 +2,7 @@ module Attune
2
2
  module Model
3
3
  #
4
4
  #
5
- # @attr [Array<Attune::Model::Blacklist>] blacklists
5
+ # @attr [Array<Attune::Model::Blacklist>] blacklists
6
6
  class BlacklistGetResponse
7
7
  attr_accessor :blacklists
8
8
 
@@ -2,42 +2,33 @@ module Attune
2
2
  module Model
3
3
  #
4
4
  #
5
- # @attr [Array<String>] scope
6
- # @attr [String] active_from
7
- # @attr [String] active_to
8
- # @attr [String] entity_type
9
- # @attr [Array<String>] ids
10
- # @attr [Boolean] disabled
5
+ # @attr [String] entity_type
6
+ # @attr [Array<String>] ids
7
+ # @attr [Boolean] disabled
8
+ # @attr [Array<String>] scope
9
+ # @attr [String] active_from
10
+ # @attr [String] active_to
11
11
  class BlacklistParams
12
- attr_accessor :scope
12
+ attr_accessor :entity_type
13
13
 
14
14
 
15
- attr_accessor :active_from
15
+ attr_accessor :ids
16
16
 
17
17
 
18
- attr_accessor :active_to
18
+ attr_accessor :disabled
19
19
 
20
20
 
21
- attr_accessor :entity_type
21
+ attr_accessor :scope
22
22
 
23
23
 
24
- attr_accessor :ids
24
+ attr_accessor :active_from
25
25
 
26
26
 
27
- attr_accessor :disabled
27
+ attr_accessor :active_to
28
28
 
29
29
 
30
30
  def initialize(attributes = {})
31
31
  return if attributes.empty?
32
- value = attributes["scope"] || attributes[:"scope"]
33
- if value.is_a?(Array)
34
- @scope = value
35
-
36
- end
37
- # Workaround since JSON.parse has accessors as strings rather than symbols
38
- @active_from = attributes["activeFrom"] || attributes[:"active_from"]
39
- # Workaround since JSON.parse has accessors as strings rather than symbols
40
- @active_to = attributes["activeTo"] || attributes[:"active_to"]
41
32
  # Workaround since JSON.parse has accessors as strings rather than symbols
42
33
  @entity_type = attributes["entityType"] || attributes[:"entity_type"]
43
34
  value = attributes["ids"] || attributes[:"ids"]
@@ -47,6 +38,15 @@ module Attune
47
38
  end
48
39
  # Workaround since JSON.parse has accessors as strings rather than symbols
49
40
  @disabled = attributes["disabled"] || attributes[:"disabled"]
41
+ value = attributes["scope"] || attributes[:"scope"]
42
+ if value.is_a?(Array)
43
+ @scope = value
44
+
45
+ end
46
+ # Workaround since JSON.parse has accessors as strings rather than symbols
47
+ @active_from = attributes["activeFrom"] || attributes[:"active_from"]
48
+ # Workaround since JSON.parse has accessors as strings rather than symbols
49
+ @active_to = attributes["activeTo"] || attributes[:"active_to"]
50
50
 
51
51
 
52
52
  end
@@ -65,12 +65,12 @@ module Attune
65
65
  private
66
66
  # :internal => :external
67
67
  ATTRIBUTE_MAP = {
68
- :scope => :scope,
69
- :active_from => :activeFrom,
70
- :active_to => :activeTo,
71
68
  :entity_type => :entityType,
72
69
  :ids => :ids,
73
- :disabled => :disabled
70
+ :disabled => :disabled,
71
+ :scope => :scope,
72
+ :active_from => :activeFrom,
73
+ :active_to => :activeTo
74
74
 
75
75
  }
76
76
  end
@@ -2,7 +2,7 @@ module Attune
2
2
  module Model
3
3
  #
4
4
  #
5
- # @attr [String] result
5
+ # @attr [String] result
6
6
  class BlacklistSaveResponse
7
7
  attr_accessor :result
8
8
 
@@ -2,7 +2,7 @@ module Attune
2
2
  module Model
3
3
  # Customer associated with an anonymous user
4
4
  #
5
- # @attr [String] customer
5
+ # @attr [String] customer
6
6
  class Customer
7
7
  attr_accessor :customer
8
8
 
@@ -2,30 +2,30 @@ module Attune
2
2
  module Model
3
3
  # List of ids in ranked order. If an error occurs, returns message and status code.
4
4
  #
5
- # @attr [String] message
6
- # @attr [Integer] status
7
- # @attr [Array<String>] ranking
5
+ # @attr [String] message Error message if ranking failed
6
+ # @attr [Array<String>] ranking List of ids in ranked order
7
+ # @attr [Integer] status HTTP status code if ranking failed
8
8
  class RankedEntities
9
9
  attr_accessor :message
10
10
 
11
11
 
12
- attr_accessor :status
12
+ attr_accessor :ranking
13
13
 
14
14
 
15
- attr_accessor :ranking
15
+ attr_accessor :status
16
16
 
17
17
 
18
18
  def initialize(attributes = {})
19
19
  return if attributes.empty?
20
20
  # Workaround since JSON.parse has accessors as strings rather than symbols
21
21
  @message = attributes["message"] || attributes[:"message"]
22
- # Workaround since JSON.parse has accessors as strings rather than symbols
23
- @status = attributes["status"] || attributes[:"status"]
24
22
  value = attributes["ranking"] || attributes[:"ranking"]
25
23
  if value.is_a?(Array)
26
24
  @ranking = value
27
25
 
28
26
  end
27
+ # Workaround since JSON.parse has accessors as strings rather than symbols
28
+ @status = attributes["status"] || attributes[:"status"]
29
29
 
30
30
 
31
31
  end
@@ -45,8 +45,8 @@ module Attune
45
45
  # :internal => :external
46
46
  ATTRIBUTE_MAP = {
47
47
  :message => :message,
48
- :status => :status,
49
- :ranking => :ranking
48
+ :ranking => :ranking,
49
+ :status => :status
50
50
 
51
51
  }
52
52
  end
@@ -2,34 +2,34 @@ module Attune
2
2
  module Model
3
3
  # Inputs for ranking a set of ids for a particular user.
4
4
  #
5
- # @attr [Array<Attune::Model::ScopeEntry>] scope
6
- # @attr [String] anonymous
7
- # @attr [String] customer
8
- # @attr [String] user_agent
9
- # @attr [String] entity_type
10
- # @attr [Array<String>] ids
11
- # @attr [String] ip
12
- # @attr [String] view
5
+ # @attr [String] entity_type
6
+ # @attr [Array<String>] ids
7
+ # @attr [Array<Attune::Model::ScopeEntry>] scope
8
+ # @attr [String] user_agent
9
+ # @attr [String] anonymous
10
+ # @attr [String] ip
11
+ # @attr [String] customer
12
+ # @attr [String] view
13
13
  class RankingParams
14
- attr_accessor :scope
14
+ attr_accessor :entity_type
15
15
 
16
16
 
17
- attr_accessor :anonymous
17
+ attr_accessor :ids
18
18
 
19
19
 
20
- attr_accessor :customer
20
+ attr_accessor :scope
21
21
 
22
22
 
23
23
  attr_accessor :user_agent
24
24
 
25
25
 
26
- attr_accessor :entity_type
26
+ attr_accessor :anonymous
27
27
 
28
28
 
29
- attr_accessor :ids
29
+ attr_accessor :ip
30
30
 
31
31
 
32
- attr_accessor :ip
32
+ attr_accessor :customer
33
33
 
34
34
 
35
35
  attr_accessor :view
@@ -37,27 +37,27 @@ module Attune
37
37
 
38
38
  def initialize(attributes = {})
39
39
  return if attributes.empty?
40
+ # Workaround since JSON.parse has accessors as strings rather than symbols
41
+ @entity_type = attributes["entityType"] || attributes[:"entity_type"]
42
+ value = attributes["ids"] || attributes[:"ids"]
43
+ if value.is_a?(Array)
44
+ @ids = value
45
+
46
+ end
40
47
  value = attributes["scope"] || attributes[:"scope"]
41
48
  if value.is_a?(Array)
42
49
  @scope = value.map{ |v| ScopeEntry.new(v) }
43
50
 
44
51
  end
45
52
  # Workaround since JSON.parse has accessors as strings rather than symbols
46
- @anonymous = attributes["anonymous"] || attributes[:"anonymous"]
47
- # Workaround since JSON.parse has accessors as strings rather than symbols
48
- @customer = attributes["customer"] || attributes[:"customer"]
49
- # Workaround since JSON.parse has accessors as strings rather than symbols
50
53
  @user_agent = attributes["userAgent"] || attributes[:"user_agent"]
51
54
  # Workaround since JSON.parse has accessors as strings rather than symbols
52
- @entity_type = attributes["entityType"] || attributes[:"entity_type"]
53
- value = attributes["ids"] || attributes[:"ids"]
54
- if value.is_a?(Array)
55
- @ids = value
56
-
57
- end
55
+ @anonymous = attributes["anonymous"] || attributes[:"anonymous"]
58
56
  # Workaround since JSON.parse has accessors as strings rather than symbols
59
57
  @ip = attributes["ip"] || attributes[:"ip"]
60
58
  # Workaround since JSON.parse has accessors as strings rather than symbols
59
+ @customer = attributes["customer"] || attributes[:"customer"]
60
+ # Workaround since JSON.parse has accessors as strings rather than symbols
61
61
  @view = attributes["view"] || attributes[:"view"]
62
62
 
63
63
 
@@ -77,13 +77,13 @@ module Attune
77
77
  private
78
78
  # :internal => :external
79
79
  ATTRIBUTE_MAP = {
80
- :scope => :scope,
81
- :anonymous => :anonymous,
82
- :customer => :customer,
83
- :user_agent => :userAgent,
84
80
  :entity_type => :entityType,
85
81
  :ids => :ids,
82
+ :scope => :scope,
83
+ :user_agent => :userAgent,
84
+ :anonymous => :anonymous,
86
85
  :ip => :ip,
86
+ :customer => :customer,
87
87
  :view => :view
88
88
 
89
89
  }
@@ -1,9 +1,9 @@
1
1
  module Attune
2
2
  module Model
3
- # Name value pairs indicating the context where a ranking will be displayed.
3
+ # Name/value pairs that provide additional context to the request
4
4
  #
5
- # @attr [String] name
6
- # @attr [String] value
5
+ # @attr [String] name
6
+ # @attr [String] value
7
7
  class ScopeEntry
8
8
  attr_accessor :name
9
9
 
@@ -1,4 +1,4 @@
1
1
  module Attune
2
- VERSION = "1.0.6"
2
+ VERSION = "1.0.7"
3
3
  end
4
4
 
data/spec/remote_spec.rb CHANGED
@@ -11,7 +11,7 @@ describe "remote requests" do
11
11
  pending "REMOTE_ENDPOINT required for remote spec" unless endpoint
12
12
  pending "AUTH_TOKEN required for remote spec" unless auth_token
13
13
  end
14
- let!(:client){ Attune::Client.new(endpoint: endpoint, auth_token: auth_token, timeout: 2) }
14
+ let!(:client){ Attune::Client.new(endpoint: endpoint, auth_token: auth_token) }
15
15
 
16
16
  it "can request an auth_token given a client id and secret" do
17
17
  pending "CLIENT_ID required for get_auth_token spec" unless client_id
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attune
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Hawthorn
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-08 00:00:00.000000000 Z
12
+ date: 2014-07-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -147,6 +147,7 @@ files:
147
147
  - lib/attune/client.rb
148
148
  - lib/attune/configurable.rb
149
149
  - lib/attune/default.rb
150
+ - lib/attune/gzip_request.rb
150
151
  - lib/attune/json_logger.rb
151
152
  - lib/attune/mocks.rb
152
153
  - lib/attune/models/anonymous_result.rb