collectiveaccess 0.1.0 → 0.2.0
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 +4 -4
- data/README.rdoc +14 -1
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/collectiveaccess.gemspec +4 -4
- data/lib/collectiveaccess.rb +28 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c1de3393ad65a3d0c4f62fe76950d9ff8f4a688
|
4
|
+
data.tar.gz: 8931df984446dbb7c24061f30b8b9ebf6a5b6320
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e150ea9236089dbb62b7c9e4ea4c468731f7baa224c46e58bd61d6ba690ac3938c8a3b57bdb207764d145e5385f891541e1f6413b6786bf8dea620760debe604
|
7
|
+
data.tar.gz: 30d9a89cf8936efdd266efce87a7f87bfce57943e2990da417e5747fc382ef802f881f38e8d1b3544fee5ab9b609b5555acfe38d67772e49aa09336b5837d199
|
data/README.rdoc
CHANGED
@@ -4,6 +4,9 @@ This gem is a simple plain Ruby wrapper for the {CollectiveAccess}[http://www.co
|
|
4
4
|
Web {Service API}[docs.collectiveaccess.org/wiki/Web_Service_API]. Before you start fiddling with
|
5
5
|
the gem, make sure you're familiar with the API.
|
6
6
|
|
7
|
+
Note that this library requires CollectiveAccess Providence v1.5 or later! It might work with v1.4
|
8
|
+
but we don't test it against the old stable code.
|
9
|
+
|
7
10
|
== Setup
|
8
11
|
|
9
12
|
Through RubyGems:
|
@@ -12,7 +15,7 @@ Through RubyGems:
|
|
12
15
|
|
13
16
|
In a Gemfile:
|
14
17
|
|
15
|
-
gem 'collectiveaccess', '~> 0.
|
18
|
+
gem 'collectiveaccess', '~> 0.2.0'
|
16
19
|
|
17
20
|
== Usage
|
18
21
|
|
@@ -95,6 +98,16 @@ All of them assume that you have required the 'collectiveaccess' gem and also th
|
|
95
98
|
}
|
96
99
|
puts "#{r}"
|
97
100
|
|
101
|
+
=== "Simple" API
|
102
|
+
|
103
|
+
In v1.6 of CollectiveAccess there's a new service interface called
|
104
|
+
{Simple API}[http://docs.collectiveaccess.org/wiki/SimpleAPI]. Gem versions v0.2.x and later support querying
|
105
|
+
this API using the `simple` class method. Below is an example for the endpoint 'testDetail'. Note that you have
|
106
|
+
to define the endpoint first in your CollectiveAccess services configuration for this to work. For more info
|
107
|
+
take a look at the {documentation}[http://docs.collectiveaccess.org/wiki/SimpleAPI]:
|
108
|
+
|
109
|
+
r = CollectiveAccess.simple hostname: 'providence.dev', endpoint: 'testDetail', get_params: { id: 1 }
|
110
|
+
|
98
111
|
== Contributing to collectiveaccess
|
99
112
|
|
100
113
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
data/Rakefile
CHANGED
@@ -16,7 +16,7 @@ Jeweler::Tasks.new do |gem|
|
|
16
16
|
# gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
|
17
17
|
gem.name = 'collectiveaccess'
|
18
18
|
gem.homepage = 'http://github.com/CollectiveAccessProject/collectiveaccess'
|
19
|
-
gem.license = '
|
19
|
+
gem.license = 'GPL3'
|
20
20
|
gem.summary = 'Ruby wrapper for CollectiveAccess Web Service API'
|
21
21
|
gem.description = 'This gem is a simple plain Ruby wrapper for the CollectiveAccess Web Service API. For more info see https://github.com/CollectiveAccessProject/collectiveaccess'
|
22
22
|
gem.email = 'info@collectiveaccess.org'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/collectiveaccess.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: collectiveaccess 0.
|
5
|
+
# stub: collectiveaccess 0.2.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "collectiveaccess"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.2.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["CollectiveAccess", "Stefan"]
|
14
|
-
s.date = "2015-
|
14
|
+
s.date = "2015-08-14"
|
15
15
|
s.description = "This gem is a simple plain Ruby wrapper for the CollectiveAccess Web Service API. For more info see https://github.com/CollectiveAccessProject/collectiveaccess"
|
16
16
|
s.email = "info@collectiveaccess.org"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"test/test_collectiveaccess.rb"
|
32
32
|
]
|
33
33
|
s.homepage = "http://github.com/CollectiveAccessProject/collectiveaccess"
|
34
|
-
s.licenses = ["
|
34
|
+
s.licenses = ["GPL3"]
|
35
35
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.3")
|
36
36
|
s.rubygems_version = "2.4.6"
|
37
37
|
s.summary = "Ruby wrapper for CollectiveAccess Web Service API"
|
data/lib/collectiveaccess.rb
CHANGED
@@ -58,6 +58,24 @@ class CollectiveAccess
|
|
58
58
|
custom_request :delete, request_opts
|
59
59
|
end
|
60
60
|
|
61
|
+
def self.simple(request_opts = {})
|
62
|
+
opts = parse_options request_opts
|
63
|
+
uri = build_simple_uri opts
|
64
|
+
|
65
|
+
resp = HTTParty.public_send :get, uri
|
66
|
+
|
67
|
+
# if 401 (access denied), try to re-authenticate
|
68
|
+
if resp.code == 401
|
69
|
+
delete_stored_auth_token # nuke old token
|
70
|
+
authenticate opts
|
71
|
+
# have to re-build the URI to include the new auth token
|
72
|
+
new_uri = build_simple_uri opts
|
73
|
+
# try again
|
74
|
+
resp = HTTParty.public_send :get, new_uri
|
75
|
+
end
|
76
|
+
resp.parsed_response
|
77
|
+
end
|
78
|
+
|
61
79
|
# Core request method. Tries to send the request with the given parameters. If it encounters a 401
|
62
80
|
# it'll try to re-authenticate with the Web Service API and retries the same request. Returns a
|
63
81
|
# parsed Hash containing the JSON response from the API or false if something went wrong.
|
@@ -89,6 +107,16 @@ class CollectiveAccess
|
|
89
107
|
url
|
90
108
|
end
|
91
109
|
|
110
|
+
def self.build_simple_uri(opts)
|
111
|
+
# URI available params: scheme, userinfo, host, port, registry, path, opaque, query and fragment
|
112
|
+
url = URI::HTTP.build({ :scheme => opts[:protocol],
|
113
|
+
:host => opts[:hostname],
|
114
|
+
:path => opts[:url_root]+opts[:script_name]+'/simple/'+opts[:endpoint],
|
115
|
+
:query => URI.encode_www_form(opts[:get_params].merge(authToken: stored_auth_token)) })
|
116
|
+
url.path.gsub! %r{/+}, '/'
|
117
|
+
url
|
118
|
+
end
|
119
|
+
|
92
120
|
def self.pstore
|
93
121
|
PStore.new(Dir.tmpdir + File::PATH_SEPARATOR + 'collectiveaccess_gem_token.pstore')
|
94
122
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: collectiveaccess
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CollectiveAccess
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-08-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -116,7 +116,7 @@ files:
|
|
116
116
|
- test/test_collectiveaccess.rb
|
117
117
|
homepage: http://github.com/CollectiveAccessProject/collectiveaccess
|
118
118
|
licenses:
|
119
|
-
-
|
119
|
+
- GPL3
|
120
120
|
metadata: {}
|
121
121
|
post_install_message:
|
122
122
|
rdoc_options: []
|