springcm-sdk 0.3.4 → 0.3.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ad5c7b8f5ee94f60381f7a7c1584dade0d0e3a060f7a2914063e0d5c044db61
4
- data.tar.gz: b314ab30a1191edf5df3ff00d629cb45184d01e10e12819b425c8a65c87b78a4
3
+ metadata.gz: 3e3841da2b35c8107f04251234a0850ab33fe344099fb586d1f7ffe19a8fc0fb
4
+ data.tar.gz: f145bc61a250cb7ee978f3dfed0ec20f9961f60e329579b31ba8a7b359325265
5
5
  SHA512:
6
- metadata.gz: 05db834bd55f338e04f3d8b6275d87aa41727823300f339771934fe190eda689ff1b6e4fc120f9d9b7e00d6a7b4b8cc2961189af1ebde8bf1675d51d91658fde
7
- data.tar.gz: 2d35b5c934bb4fe530e1f7e7d0ffd5f0424e1f1b8f63da0ae17c757d7d57003acc6c2e69398b42f00606b06489aa8425d8fd07501727381dc7ad346879c3f155
6
+ metadata.gz: 8d6f2862635fdb5258bfb5b5814c12772e55414e82ab2c9a218e5b6b0b59331627e6276290cfc55929f31d7002fcc01650cdf38d4a9d3581639e405b6fe19a15
7
+ data.tar.gz: 5d8fc9460e4d2e7c5c526e81a618846a74f0d54565688a46b08b373977ff09df50bb0417a3db379a5e5b8af49fd70cfc292057a06ac0c1cd285b686ed0850e90
data/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ All notable changes to springcm-sdk will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.3.5] - 2019-12-23
8
+ ### Added
9
+ * Document#history
10
+ * History items
11
+
7
12
  ## [0.3.4] - 2019-12-11
8
13
  ### Added
9
14
  * Folder#delete
@@ -69,7 +74,7 @@ All notable changes to springcm-sdk will be documented in this file.
69
74
  ### Added
70
75
  * Initial release to reserve gem name
71
76
 
72
- [Unreleased]: https://github.com/paulholden2/springcm-sdk/compare/0.3.4...HEAD
77
+ [Unreleased]: https://github.com/paulholden2/springcm-sdk/compare/0.3.5...HEAD
73
78
  [0.1.0]: https://github.com/paulholden2/springcm-sdk/releases/tag/0.1.0
74
79
  [0.1.1]: https://github.com/paulholden2/springcm-sdk/releases/tag/0.1.1
75
80
  [0.1.2]: https://github.com/paulholden2/springcm-sdk/releases/tag/0.1.2
@@ -79,3 +84,4 @@ All notable changes to springcm-sdk will be documented in this file.
79
84
  [0.3.2]: https://github.com/paulholden2/springcm-sdk/releases/tag/0.3.2
80
85
  [0.3.3]: https://github.com/paulholden2/springcm-sdk/releases/tag/0.3.3
81
86
  [0.3.4]: https://github.com/paulholden2/springcm-sdk/releases/tag/0.3.4
87
+ [0.3.5]: https://github.com/paulholden2/springcm-sdk/releases/tag/0.3.5
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SpringCM SDK
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/springcm-sdk.svg)](https://badge.fury.io/rb/springcm-sdk) [![Build Status](https://travis-ci.org/paulholden2/springcm-sdk.svg?branch=master)](https://travis-ci.org/paulholden2/springcm-sdk) [![Maintainability](https://api.codeclimate.com/v1/badges/06e1dd90fde417de15da/maintainability)](https://codeclimate.com/github/paulholden2/springcm-sdk/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/06e1dd90fde417de15da/test_coverage)](https://codeclimate.com/github/paulholden2/springcm-sdk/test_coverage)
3
+ [![Gem Version](https://badge.fury.io/rb/springcm-sdk.svg)](https://badge.fury.io/rb/springcm-sdk) [![Depfu](https://badges.depfu.com/badges/d19cc9a4361b84a276e21997c49e640e/overview.svg)](https://depfu.com/github/paulholden2/springcm-sdk?project_id=10385) [![Build Status](https://travis-ci.org/paulholden2/springcm-sdk.svg?branch=master)](https://travis-ci.org/paulholden2/springcm-sdk) [![Maintainability](https://api.codeclimate.com/v1/badges/06e1dd90fde417de15da/maintainability)](https://codeclimate.com/github/paulholden2/springcm-sdk/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/06e1dd90fde417de15da/test_coverage)](https://codeclimate.com/github/paulholden2/springcm-sdk/test_coverage)
4
4
 
5
5
  This gem is a library for working with the SpringCM REST API.
6
6
 
@@ -1,6 +1,7 @@
1
1
  require "springcm-sdk/resource"
2
2
  require "springcm-sdk/mixins/access_level"
3
3
  require "springcm-sdk/mixins/attributes"
4
+ require "springcm-sdk/history_item"
4
5
 
5
6
  module Springcm
6
7
  class Document < Resource
@@ -13,5 +14,21 @@ module Springcm
13
14
  "expand" => "attributegroups"
14
15
  }
15
16
  end
17
+
18
+ def history(offset: 0, limit: 20)
19
+ Helpers.validate_offset_limit!(offset, limit)
20
+ conn = @client.authorized_connection(url: @client.object_api_url)
21
+ res = conn.get do |req|
22
+ req.url "#{resource_uri}/historyitems"
23
+ req.params["offset"] = offset
24
+ req.params["limit"] = limit
25
+ end
26
+ if res.success?
27
+ data = JSON.parse(res.body)
28
+ ResourceList.new(data, self, HistoryItem, @client)
29
+ else
30
+ nil
31
+ end
32
+ end
16
33
  end
17
34
  end
@@ -10,5 +10,22 @@ module Springcm
10
10
  raise ArgumentError.new("Offset must be a positive, non-zero integer.")
11
11
  end
12
12
  end
13
+
14
+ # Deserialize a SpringCM attribute value
15
+ def self.deserialize_field(field)
16
+ type = field["AttributeType"]
17
+ value = field["Value"]
18
+ if type == "String"
19
+ value
20
+ elsif type == "Number"
21
+ value.to_i
22
+ elsif type == "Decimal"
23
+ value.to_f
24
+ elsif type == "Date"
25
+ Date.strptime(value[0..8], "%Y%m%d")
26
+ else
27
+ value
28
+ end
29
+ end
13
30
  end
14
31
  end
@@ -0,0 +1,4 @@
1
+ module Springcm
2
+ class HistoryItem < Springcm::Object
3
+ end
4
+ end
@@ -1,23 +1,9 @@
1
+ require "springcm-sdk/helpers"
2
+
1
3
  module Springcm
2
4
  module Mixins
3
5
  # Mixin for objects that have attributes.
4
6
  module Attributes
5
- def deserialize_field(field)
6
- type = field["AttributeType"]
7
- value = field["Value"]
8
- if type == "String"
9
- value
10
- elsif type == "Number"
11
- value.to_i
12
- elsif type == "Decimal"
13
- value.to_f
14
- elsif type == "Date"
15
- Date.strptime(value[0..8], "%Y%m%d")
16
- else
17
- value
18
- end
19
- end
20
-
21
7
  def get_attribute(group:, field:)
22
8
  group_config = @client.account.all_attribute_groups.select { |g|
23
9
  g.name == group
@@ -39,12 +25,12 @@ module Springcm
39
25
  set_data = group_data.fetch(field_set_config["Name"], nil)
40
26
  return nil if set_data.nil?
41
27
  set_data["Items"].map { |item|
42
- deserialize_field(item[field])
28
+ Springcm::Helpers.deserialize_field(item[field])
43
29
  }
44
30
  else
45
31
  field_data = group_data.fetch(field, nil)
46
32
  return nil if field_data.nil?
47
- deserialize_field(field_data)
33
+ Springcm::Helpers.deserialize_field(field_data)
48
34
  end
49
35
  end
50
36
  end
@@ -53,8 +53,10 @@ module Springcm
53
53
  method = :documents
54
54
  elsif kind == Springcm::AttributeGroup
55
55
  method = :attribute_groups
56
+ elsif kind == Springcm::HistoryItem
57
+ method = :history_items
56
58
  else
57
- raise ArgumentError.new("Resource kind must be one of: Springcm::Document, Springcm::Folder, Springcm::AttributeGroup.")
59
+ raise ArgumentError.new("Resource kind must be one of: Springcm::Document, Springcm::Folder, Springcm::AttributeGroup, Springcm::HistoryItem.")
58
60
  end
59
61
  return method
60
62
  end
@@ -1,3 +1,3 @@
1
1
  module Springcm
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5"
3
3
  end
data/springcm-sdk.gemspec CHANGED
@@ -37,10 +37,10 @@ Gem::Specification.new do |spec|
37
37
  spec.executables = ["springcm"]
38
38
  spec.require_paths = ["lib"]
39
39
 
40
- spec.add_dependency "faraday", "~> 0.15.4"
40
+ spec.add_dependency "faraday", "~> 0.17.1"
41
41
 
42
42
  spec.add_development_dependency "bundler", "~> 2.0"
43
- spec.add_development_dependency "rake", "~> 10.0"
43
+ spec.add_development_dependency "rake", "~> 13.0"
44
44
  spec.add_development_dependency "rspec", "~> 3.0"
45
45
  spec.add_development_dependency "sinatra", "~> 2.0"
46
46
  spec.add_development_dependency "webmock", "~> 3.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: springcm-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Holden
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-11 00:00:00.000000000 Z
11
+ date: 2019-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.15.4
19
+ version: 0.17.1
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
- version: 0.15.4
26
+ version: 0.17.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '13.0'
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
- version: '10.0'
54
+ version: '13.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -166,6 +166,7 @@ files:
166
166
  - lib/springcm-sdk/document.rb
167
167
  - lib/springcm-sdk/folder.rb
168
168
  - lib/springcm-sdk/helpers.rb
169
+ - lib/springcm-sdk/history_item.rb
169
170
  - lib/springcm-sdk/mixins/access_level.rb
170
171
  - lib/springcm-sdk/mixins/attributes.rb
171
172
  - lib/springcm-sdk/mixins/documents.rb
@@ -182,7 +183,7 @@ metadata:
182
183
  allowed_push_host: https://rubygems.org
183
184
  homepage_uri: https://github.com/paulholden2/springcm-sdk
184
185
  source_code_uri: https://github.com/paulholden2/springcm-sdk
185
- documentation_uri: https://rubydoc.info/github/paulholden2/springcm-sdk/0.3.4
186
+ documentation_uri: https://rubydoc.info/github/paulholden2/springcm-sdk/0.3.5
186
187
  changelog_uri: https://github.com/paulholden2/springcm-sdk/blob/master/CHANGELOG.md
187
188
  post_install_message:
188
189
  rdoc_options: []