attune 1.0.6 → 1.0.7

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.
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