arbor 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/lib/arbor/api.rb +3 -3
- data/lib/arbor/model/abstract.rb +2 -1
- data/lib/arbor/model/no_op_serialiser.rb +1 -1
- data/lib/arbor/model/serialiser.rb +2 -2
- data/lib/arbor/version.rb +1 -1
- data/lib/arbor.rb +1 -1
- metadata +14 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b40b7e043331526b3f456b3152614a69a44dda7d
|
4
|
+
data.tar.gz: f419b0cde4c1b386f6e44aa31aabf4181d908cde
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4bddb63a2ebdcf5bef0dfd76f210d8d41ce36454018cfc375c9d8893598ae430d17a498e3ad523d5585833264f5925349469c9f61f0772a678eecee007a5b47
|
7
|
+
data.tar.gz: b27e93494734cd5582eba13330782acf49e8902e70a10919247c13660817aab7bce2e8aa2c34ee18b60cb945f2a8ca95890cdf4e37ac2917d400deb96307d0b2
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Ruby Interface for Arbor API
|
2
2
|
|
3
|
-
|
3
|
+
A Ruby interface to [Arbor Education API](http://www.arbor-education.com/en/developers-stakeholder).
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -27,12 +27,13 @@ end
|
|
27
27
|
# use `retrieve` to get a single resource
|
28
28
|
student = client.retrieve(:student, 1)
|
29
29
|
|
30
|
-
#
|
31
|
-
#
|
30
|
+
# the default serializer is a class factory that creates a class for each
|
31
|
+
# resource type, and returns instances of those dynamic classes. you can
|
32
|
+
# also register your own serialisers:
|
32
33
|
Arbor.serialisers.register(:students, MyStudentSerialiser)
|
33
34
|
|
34
35
|
# and/or modify the default serialiser. serialiser classes must respond to
|
35
|
-
# `
|
36
|
+
# `load` and return a single resource
|
36
37
|
Arbor.serialisers.default_serialiser = MyDefaultSerialiser
|
37
38
|
```
|
38
39
|
|
data/lib/arbor/api.rb
CHANGED
@@ -13,15 +13,15 @@ module Arbor
|
|
13
13
|
resource = parse_resource_name(type)
|
14
14
|
query_string = query.build_query_string if query
|
15
15
|
|
16
|
-
data = get("/rest-v2/#{resource.dasherize}?#{query_string}")
|
16
|
+
data = get("/rest-v2/#{resource.dasherize.tr('/', '_')}?#{query_string}")
|
17
17
|
|
18
18
|
unmarshall_data(data, resource)
|
19
19
|
end
|
20
20
|
|
21
21
|
private
|
22
22
|
def unmarshall_data(data, resource)
|
23
|
-
singular_resource = resource.singularize.camelize(:lower)
|
24
|
-
plural_resource = resource.camelize(:lower)
|
23
|
+
singular_resource = resource.singularize.camelize(:lower).gsub('::', '_')
|
24
|
+
plural_resource = resource.camelize(:lower).gsub('::', '_')
|
25
25
|
|
26
26
|
if (res = data[singular_resource])
|
27
27
|
Model::Serialiser.parse_resource(res).tap { |obj|
|
data/lib/arbor/model/abstract.rb
CHANGED
@@ -24,7 +24,8 @@ module Arbor
|
|
24
24
|
|
25
25
|
data = api_client.get(href)
|
26
26
|
|
27
|
-
|
27
|
+
entity_type_lower = entity_type.tr('_', '-').camelize(:lower).tr('-', '_')
|
28
|
+
parsed_attributes = Serialiser.parse_attributes(data[entity_type_lower])
|
28
29
|
load_attributes(parsed_attributes)
|
29
30
|
attach_client(self.api_client)
|
30
31
|
|
@@ -4,7 +4,7 @@ module Arbor
|
|
4
4
|
module Model
|
5
5
|
class Serialiser
|
6
6
|
class << self
|
7
|
-
def
|
7
|
+
def load(data)
|
8
8
|
attributes = parse_attributes(data)
|
9
9
|
|
10
10
|
resource = data["entityType"].underscore.to_sym
|
@@ -29,7 +29,7 @@ module Arbor
|
|
29
29
|
|
30
30
|
def parse_resource(r)
|
31
31
|
nested_type = r["entityType"]
|
32
|
-
nested_type ? Arbor.serialisers[nested_type].
|
32
|
+
nested_type ? Arbor.serialisers[nested_type].load(r) : r
|
33
33
|
end
|
34
34
|
|
35
35
|
def transform_keys(hash)
|
data/lib/arbor/version.rb
CHANGED
data/lib/arbor.rb
CHANGED
@@ -145,5 +145,5 @@ module Arbor
|
|
145
145
|
:triggers, :unenrolment_reasons, :universities, :university_staffs,
|
146
146
|
:usage_log_entries, :users, :user_defined_fields, :user_defined_records,
|
147
147
|
:user_notifications, :user_roles, :user_role_assignments, :vision_tests,
|
148
|
-
:widgets, :widget_types, :workitems, :workitem_assignments]
|
148
|
+
:widgets, :widget_types, :workitems, :workitem_assignments, :"uk_dfe/upn_assignments"]
|
149
149
|
end
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arbor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Campbell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: httpi
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.0.5
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.0.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Interface for the Arbor Education REST API.
|
@@ -73,7 +73,7 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- .gitignore
|
76
|
+
- ".gitignore"
|
77
77
|
- Gemfile
|
78
78
|
- Gemfile.lock
|
79
79
|
- MIT-LICENSE
|
@@ -104,19 +104,18 @@ require_paths:
|
|
104
104
|
- lib
|
105
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- -
|
112
|
+
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project:
|
117
|
-
rubygems_version: 2.
|
117
|
+
rubygems_version: 2.4.6
|
118
118
|
signing_key:
|
119
119
|
specification_version: 4
|
120
120
|
summary: Interface for the Arbor Education REST API.
|
121
121
|
test_files: []
|
122
|
-
has_rdoc:
|