arbor 0.0.5 → 0.0.6
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.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:
|