gds-api-adapters 0.0.42 → 0.0.43

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.
@@ -5,19 +5,21 @@ require 'lrucache'
5
5
 
6
6
  module GdsApi
7
7
  class JsonClient
8
- def self.cache
9
- @cache ||= LRUCache.new(max_size: 10)
8
+
9
+ def self.cache(size=DEFAULT_CACHE_SIZE)
10
+ @cache ||= LRUCache.new(max_size: size)
10
11
  end
11
12
 
12
13
  def self.cache=(c)
13
14
  @cache = c
14
15
  end
15
16
 
16
- attr_accessor :logger, :options
17
+ attr_accessor :logger, :options, :cache
17
18
 
18
19
  def initialize(options = {})
19
20
  @logger = options[:logger] || GdsApi::Base.logger
20
- @cache = JsonClient.cache
21
+ cache_size = options[:cache_size] || DEFAULT_CACHE_SIZE
22
+ @cache = JsonClient.cache(cache_size)
21
23
  @options = options
22
24
  end
23
25
 
@@ -27,6 +29,7 @@ module GdsApi
27
29
  'User-Agent' => "GDS Api Client v. #{GdsApi::VERSION}"
28
30
  }
29
31
  DEFAULT_TIMEOUT_IN_SECONDS = 2
32
+ DEFAULT_CACHE_SIZE = 10
30
33
 
31
34
  def get_raw(url)
32
35
  do_raw_request(Net::HTTP::Get, url)
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '0.0.42'
2
+ VERSION = '0.0.43'
3
3
  end
@@ -65,4 +65,19 @@ class GdsApiBaseTest < MiniTest::Unit::TestCase
65
65
  assert_equal "endpoint", api.options[:endpoint_url]
66
66
  assert_equal "bar", api.options[:foo]
67
67
  end
68
+
69
+ def test_setting_cache_size_from_options
70
+ GdsApi::JsonClient.cache = false
71
+ api = ConcreteApi.new("test", {endpoint_url: "endpoint", cache_size: 2})
72
+ assert_equal 2, api.client.cache.max_size
73
+ end
74
+
75
+ def test_setting_cache_size_from_default_options
76
+ GdsApi::JsonClient.cache = false
77
+ GdsApi::Base.default_options = {cache_size: 4}
78
+ api = ConcreteApi.new("test", {endpoint_url: "endpoint"})
79
+ assert_equal 4, api.client.cache.max_size
80
+ end
81
+
82
+
68
83
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: gds-api-adapters
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.42
5
+ version: 0.0.43
6
6
  platform: ruby
7
7
  authors:
8
8
  - James Stewart
@@ -10,10 +10,11 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-01-30 00:00:00 Z
13
+ date: 2012-02-09 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: plek
17
+ prerelease: false
17
18
  requirement: &id001 !ruby/object:Gem::Requirement
18
19
  none: false
19
20
  requirements:
@@ -21,10 +22,10 @@ dependencies:
21
22
  - !ruby/object:Gem::Version
22
23
  version: "0"
23
24
  type: :runtime
24
- prerelease: false
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: null_logger
28
+ prerelease: false
28
29
  requirement: &id002 !ruby/object:Gem::Requirement
29
30
  none: false
30
31
  requirements:
@@ -32,10 +33,10 @@ dependencies:
32
33
  - !ruby/object:Gem::Version
33
34
  version: "0"
34
35
  type: :runtime
35
- prerelease: false
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: lrucache
39
+ prerelease: false
39
40
  requirement: &id003 !ruby/object:Gem::Requirement
40
41
  none: false
41
42
  requirements:
@@ -43,10 +44,10 @@ dependencies:
43
44
  - !ruby/object:Gem::Version
44
45
  version: 0.1.1
45
46
  type: :runtime
46
- prerelease: false
47
47
  version_requirements: *id003
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rake
50
+ prerelease: false
50
51
  requirement: &id004 !ruby/object:Gem::Requirement
51
52
  none: false
52
53
  requirements:
@@ -54,10 +55,10 @@ dependencies:
54
55
  - !ruby/object:Gem::Version
55
56
  version: 0.9.2.2
56
57
  type: :development
57
- prerelease: false
58
58
  version_requirements: *id004
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: webmock
61
+ prerelease: false
61
62
  requirement: &id005 !ruby/object:Gem::Requirement
62
63
  none: false
63
64
  requirements:
@@ -65,10 +66,10 @@ dependencies:
65
66
  - !ruby/object:Gem::Version
66
67
  version: "1.7"
67
68
  type: :development
68
- prerelease: false
69
69
  version_requirements: *id005
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: mocha
72
+ prerelease: false
72
73
  requirement: &id006 !ruby/object:Gem::Requirement
73
74
  none: false
74
75
  requirements:
@@ -76,10 +77,10 @@ dependencies:
76
77
  - !ruby/object:Gem::Version
77
78
  version: 0.10.0
78
79
  type: :development
79
- prerelease: false
80
80
  version_requirements: *id006
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: minitest
83
+ prerelease: false
83
84
  requirement: &id007 !ruby/object:Gem::Requirement
84
85
  none: false
85
86
  requirements:
@@ -87,10 +88,10 @@ dependencies:
87
88
  - !ruby/object:Gem::Version
88
89
  version: 2.10.0
89
90
  type: :development
90
- prerelease: false
91
91
  version_requirements: *id007
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: rack
94
+ prerelease: false
94
95
  requirement: &id008 !ruby/object:Gem::Requirement
95
96
  none: false
96
97
  requirements:
@@ -98,10 +99,10 @@ dependencies:
98
99
  - !ruby/object:Gem::Version
99
100
  version: "0"
100
101
  type: :development
101
- prerelease: false
102
102
  version_requirements: *id008
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: simplecov
105
+ prerelease: false
105
106
  requirement: &id009 !ruby/object:Gem::Requirement
106
107
  none: false
107
108
  requirements:
@@ -109,10 +110,10 @@ dependencies:
109
110
  - !ruby/object:Gem::Version
110
111
  version: 0.5.4
111
112
  type: :development
112
- prerelease: false
113
113
  version_requirements: *id009
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: simplecov-rcov
116
+ prerelease: false
116
117
  requirement: &id010 !ruby/object:Gem::Requirement
117
118
  none: false
118
119
  requirements:
@@ -120,7 +121,6 @@ dependencies:
120
121
  - !ruby/object:Gem::Version
121
122
  version: "0"
122
123
  type: :development
123
- prerelease: false
124
124
  version_requirements: *id010
125
125
  description: A set of adapters providing easy access to the GDS gov.uk APIs
126
126
  email:
@@ -132,35 +132,35 @@ extensions: []
132
132
  extra_rdoc_files: []
133
133
 
134
134
  files:
135
- - lib/gds_api/base.rb
136
135
  - lib/gds_api/contactotron.rb
137
- - lib/gds_api/core-ext/openstruct.rb
136
+ - lib/gds_api/version.rb
137
+ - lib/gds_api/panopticon.rb
138
138
  - lib/gds_api/exceptions.rb
139
- - lib/gds_api/helpers.rb
140
- - lib/gds_api/imminence.rb
141
- - lib/gds_api/json_client.rb
142
- - lib/gds_api/needotron.rb
143
- - lib/gds_api/oauth2_client.rb
144
139
  - lib/gds_api/panopticon/registerer.rb
145
- - lib/gds_api/panopticon.rb
146
- - lib/gds_api/part_methods.rb
147
- - lib/gds_api/publisher.rb
148
- - lib/gds_api/response.rb
149
140
  - lib/gds_api/test_helpers/contactotron.rb
150
- - lib/gds_api/test_helpers/imminence.rb
151
- - lib/gds_api/test_helpers/json_client_helper.rb
152
141
  - lib/gds_api/test_helpers/panopticon.rb
153
142
  - lib/gds_api/test_helpers/publisher.rb
143
+ - lib/gds_api/test_helpers/imminence.rb
144
+ - lib/gds_api/test_helpers/json_client_helper.rb
154
145
  - lib/gds_api/typhoeus_client.rb
155
- - lib/gds_api/version.rb
146
+ - lib/gds_api/response.rb
147
+ - lib/gds_api/json_client.rb
148
+ - lib/gds_api/publisher.rb
149
+ - lib/gds_api/base.rb
150
+ - lib/gds_api/imminence.rb
151
+ - lib/gds_api/oauth2_client.rb
152
+ - lib/gds_api/core-ext/openstruct.rb
153
+ - lib/gds_api/part_methods.rb
154
+ - lib/gds_api/helpers.rb
155
+ - lib/gds_api/needotron.rb
156
156
  - README.md
157
157
  - Rakefile
158
- - test/contactotron_api_test.rb
159
158
  - test/gds_api_base_test.rb
160
- - test/json_client_test.rb
161
159
  - test/panopticon_api_test.rb
162
- - test/publisher_api_test.rb
160
+ - test/contactotron_api_test.rb
163
161
  - test/test_helper.rb
162
+ - test/publisher_api_test.rb
163
+ - test/json_client_test.rb
164
164
  homepage: http://github.com/alphagov/gds-api-adapters
165
165
  licenses: []
166
166
 
@@ -174,30 +174,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
174
  requirements:
175
175
  - - ">="
176
176
  - !ruby/object:Gem::Version
177
- hash: 940462170843670145
178
- segments:
179
- - 0
180
177
  version: "0"
181
178
  required_rubygems_version: !ruby/object:Gem::Requirement
182
179
  none: false
183
180
  requirements:
184
181
  - - ">="
185
182
  - !ruby/object:Gem::Version
186
- hash: 940462170843670145
187
- segments:
188
- - 0
189
183
  version: "0"
190
184
  requirements: []
191
185
 
192
186
  rubyforge_project:
193
- rubygems_version: 1.8.13
187
+ rubygems_version: 1.8.12
194
188
  signing_key:
195
189
  specification_version: 3
196
190
  summary: Adapters to work with GDS APIs
197
191
  test_files:
198
- - test/contactotron_api_test.rb
199
192
  - test/gds_api_base_test.rb
200
- - test/json_client_test.rb
201
193
  - test/panopticon_api_test.rb
202
- - test/publisher_api_test.rb
194
+ - test/contactotron_api_test.rb
203
195
  - test/test_helper.rb
196
+ - test/publisher_api_test.rb
197
+ - test/json_client_test.rb