gds-api-adapters 0.0.42 → 0.0.43

Sign up to get free protection for your applications and to get access to all the features.
@@ -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