cts-mpx 1.0.1 → 1.0.2

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
  SHA1:
3
- metadata.gz: 65e447aa1b9c22663d6f59d10a51598047822603
4
- data.tar.gz: e783c916b10517ca47ecbde40749eedd2f5fefc6
3
+ metadata.gz: '093703b1860e83e394cabc1a41265df8f68aaae1'
4
+ data.tar.gz: 7015a35fe53ed1ee309e3091ab25dcdd4da757c3
5
5
  SHA512:
6
- metadata.gz: b8924578fbb7ed2f6fcc71ef7489123613b7394b6f46702b7374086cc3f44a50acd8742c0247260f8d92630bd750778e4552c08451cc4386af8df91c79c30ff1
7
- data.tar.gz: f14cb79c5e448985b7df72bb280795022e7180234c2fde3649be7c269284090ca40eb9cb2bb9fe24f3766deb597128e01b2327dbb74cc1c060dbbd547c960b20
6
+ metadata.gz: 25e01f7ffa9ec6df19006c2a387dc80186f53556595939ef04fe609feddd6d5d193508e242cb8e96537bf8d4c7d438a817dc861f8bc3fd03620517d21a7b7534
7
+ data.tar.gz: 5738666bc5198383797fcc9db6bc6a116a2e7a5c8bf8310e749bbe0f7cef2b2b6e15ceea96546711009d6f59a9f56f28d388f679f19f96b1dd659c75ec032b80
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cts-mpx (1.0.1)
5
- creatable (= 1.0.1)
4
+ cts-mpx (1.0.2)
5
+ creatable
6
6
  excon
7
7
  oj (= 3.5.0)
8
8
 
@@ -13,26 +13,17 @@ GEM
13
13
  ast (2.4.0)
14
14
  binding_of_caller (0.8.0)
15
15
  debug_inspector (>= 0.0.1)
16
- builder (3.2.3)
17
16
  bump (0.6.1)
18
17
  coderay (1.1.2)
19
- creatable (1.0.1)
18
+ creatable (2.1.1)
20
19
  debug_inspector (0.0.3)
21
20
  diff-lcs (1.3)
22
21
  docile (1.3.1)
23
22
  erubis (2.7.0)
23
+ eventmachine (1.2.7)
24
24
  excon (0.62.0)
25
- faraday (0.15.2)
26
- multipart-post (>= 1.2, < 3)
27
25
  ffi (1.9.25)
28
26
  formatador (0.2.5)
29
- geminabox (1.1.0)
30
- builder
31
- faraday
32
- httpclient (>= 2.2.7)
33
- nesty
34
- reentrant_flock
35
- sinatra (>= 1.2.7)
36
27
  gli (2.17.2)
37
28
  guard (2.14.2)
38
29
  formatador (>= 0.2.4)
@@ -59,19 +50,20 @@ GEM
59
50
  guard (>= 1.1.0)
60
51
  yard (>= 0.7.0)
61
52
  hirb (0.7.3)
62
- httpclient (2.8.3)
53
+ htmlentities (4.3.4)
63
54
  interception (0.5)
64
55
  json (2.1.0)
56
+ kramdown (1.17.0)
65
57
  listen (3.1.5)
66
58
  rb-fsevent (~> 0.9, >= 0.9.4)
67
59
  rb-inotify (~> 0.9, >= 0.9.7)
68
60
  ruby_dep (~> 1.2)
69
61
  lumberjack (1.0.13)
70
62
  method_source (0.9.0)
71
- multipart-post (2.0.0)
72
- mustermann (1.0.3)
63
+ mini_portile2 (2.3.0)
73
64
  nenv (0.3.0)
74
- nesty (1.0.2)
65
+ nokogiri (1.8.5)
66
+ mini_portile2 (~> 2.3.0)
75
67
  notiffany (0.1.1)
76
68
  nenv (~> 0.1)
77
69
  shellany (~> 0.0)
@@ -89,15 +81,13 @@ GEM
89
81
  pry-stack_explorer (0.4.9.2)
90
82
  binding_of_caller (>= 0.7)
91
83
  pry (>= 0.9.11)
92
- rack (2.0.5)
93
- rack-protection (2.0.3)
94
- rack
95
84
  rainbow (3.0.0)
96
85
  rake (12.3.1)
97
86
  rb-fsevent (0.10.3)
98
87
  rb-inotify (0.9.10)
99
88
  ffi (>= 0.5.0, < 2)
100
- reentrant_flock (0.1.1)
89
+ reverse_markdown (1.1.0)
90
+ nokogiri
101
91
  rspec (3.8.0)
102
92
  rspec-core (~> 3.8.0)
103
93
  rspec-expectations (~> 3.8.0)
@@ -132,11 +122,17 @@ GEM
132
122
  hirb
133
123
  simplecov
134
124
  simplecov-html (0.10.2)
135
- sinatra (2.0.3)
136
- mustermann (~> 1.0)
137
- rack (~> 2.0)
138
- rack-protection (= 2.0.3)
125
+ solargraph (0.28.2)
126
+ coderay (~> 1.1)
127
+ eventmachine (~> 1.2, >= 1.2.5)
128
+ htmlentities (~> 4.3, >= 4.3.4)
129
+ kramdown (~> 1.16)
130
+ parser (~> 2.4)
131
+ reverse_markdown (~> 1.0, >= 1.0.5)
132
+ rubocop (~> 0.52)
133
+ thor (~> 0.19, >= 0.19.4)
139
134
  tilt (~> 2.0)
135
+ yard (~> 0.9)
140
136
  thor (0.20.0)
141
137
  tilt (2.0.8)
142
138
  unicode-display_width (1.4.0)
@@ -150,7 +146,6 @@ DEPENDENCIES
150
146
  bundler
151
147
  cts-mpx!
152
148
  erubis
153
- geminabox
154
149
  gli
155
150
  guard
156
151
  guard-bundler
@@ -166,7 +161,8 @@ DEPENDENCIES
166
161
  rubocop-rspec
167
162
  simplecov
168
163
  simplecov-console
164
+ solargraph
169
165
  yard
170
166
 
171
167
  BUNDLED WITH
172
- 1.16.1
168
+ 1.16.5
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task default: :spec
6
+ task default: :spec
@@ -1,118 +1,118 @@
1
1
  {
2
2
  "resolveDomainResponse": {
3
- "Message Data Service": "http://data.message.theplatform.com/message",
4
- "User Data Service": "https://identity.auth.theplatform.com/idm",
5
- "Publish Data Service read-only": "http://data.publish.theplatform.com/publish",
3
+ "ACS Data Service": "http://data.acs.euid.theplatform.com/acsdata",
4
+ "ACS Data Service read-only": "http://data.acs.euid.theplatform.com/acsdata",
5
+ "Access Data Service": "http://access.auth.theplatform.com",
6
+ "Access Data Service audience": "http://enduser.access.auth.theplatform.com",
7
+ "Access Data Service audience read-only": "http://enduser.access.auth.theplatform.com",
8
+ "Access Data Service master": "http://access.auth.theplatform.com",
9
+ "Access Data Service read-only": "http://access.auth.theplatform.com",
10
+ "Account Data Service": "http://mps.theplatform.com",
11
+ "Account Data Service read-only": "http://mps.theplatform.com",
12
+ "Address Service": "https://address.commerce.theplatform.com/address",
13
+ "Address Service read-only": "https://address.commerce.theplatform.com/address",
14
+ "Admin Storefront Service": "https://admin.storefront.commerce.theplatform.com/storefront",
15
+ "Alternate Content Data Service": "https://data.altcontent.tv.theplatform.com/altcontent",
16
+ "Checkout Service": "https://checkout.commerce.theplatform.com/checkout",
17
+ "Commerce Configuration Data Service": "https://data.configuration.commerce.theplatform.com/configuration",
18
+ "Commerce Configuration Data Service read-only": "https://read.data.configuration.commerce.theplatform.com/configuration",
6
19
  "Commerce End User Notification Service": "https://euns.commerce.theplatform.com/euns",
20
+ "Commerce Event Data Service": "https://data.event.commerce.theplatform.com/event",
21
+ "Commerce Event Data Service read-only": "https://data.event.commerce.theplatform.com/event",
22
+ "Concurrency Service": "https://concurrency.delivery.theplatform.com/concurrency",
7
23
  "Console Data Service": "http://data.mpx.theplatform.com/cds",
8
- "Selector Service": "http://link.theplatform.com/s",
9
- "Ingest Data Service": "http://adapter.ingest.theplatform.com/adapter",
10
- "FeedReader Data Service read-only": "https://feedreader.ingest.theplatform.com/feedreader",
24
+ "Console Data Service read-only": "http://data.mpx.theplatform.com/cds",
11
25
  "Conviva Insights": "https://viewerinsights.theplatform.com/sso/thePlatform?url={account}&endpoint=Basic&token={token}",
12
- "Ingest Service": "http://ingest.theplatform.com",
13
- "ACS Data Service read-only": "http://data.acs.euid.theplatform.com/acsdata",
14
- "Storefront Service": "https://storefront.commerce.theplatform.com/storefront",
15
- "FeedReader Data Service": "https://feedreader.ingest.theplatform.com/feedreader",
16
- "Sharing Data Service": "http://data.share.theplatform.com/sharing",
17
- "TV Listing Data Service read-only": "http://read.data.listing.tv.theplatform.com/listing",
18
- "Static Web Files": "http://web.theplatform.com",
19
- "Publish Service": "http://publish.theplatform.com",
20
- "Selector Reporting Service": "http://release.theplatform.com",
21
- "Entertainment Feeds Service": "http://feed.entertainment.tv.theplatform.com/f",
22
- "User Profile Metadata Service": "http://userprofiles.community.theplatform.com/userprofile",
23
- "WatchFolder Data Service": "https://watchfolder.ingest.theplatform.com/wf",
24
- "Task Service": "http://data.task.theplatform.com/task",
26
+ "Cue Point Data Service": "http://data.cuepoint.theplatform.com/cuepoint",
25
27
  "Cue Point Data Service read-only": "http://data.cuepoint.theplatform.com/cuepoint",
26
- "Validation Data Service": "http://data.validation.theplatform.com/validation",
27
- "Order Data Service read-only": "https://read.order.commerce.theplatform.com/order",
28
+ "Decision Manager Service": "https://decide.altcontent.tv.theplatform.com/d",
29
+ "Delivery Data Service": "http://data.delivery.theplatform.com/delivery",
30
+ "Delivery Data Service read-only": "http://data.delivery.theplatform.com/delivery",
31
+ "End User Data Service": "https://euid.theplatform.com/idm",
32
+ "End User Data Service read-only": "https://euid.theplatform.com/idm",
33
+ "Entertainment Data Service": "http://data.entertainment.tv.theplatform.com/entertainment",
34
+ "Entertainment Data Service read-only": "http://read.data.entertainment.tv.theplatform.com/entertainment",
35
+ "Entertainment Feeds Service": "http://feed.entertainment.tv.theplatform.com/f",
28
36
  "Entertainment Ingest Data Service": "http://data.ingest.tv.theplatform.com/ingest",
29
- "Order Item Data Service read-only": "http://order.commerce.theplatform.com/order",
37
+ "Entertainment Ingest Data Service read-only": "http://data.ingest.tv.theplatform.com/ingest",
38
+ "Entitlement Data Service": "http://data.entitlement.theplatform.com/eds",
39
+ "Entitlement Data Service read-only": "http://data.entitlement.theplatform.com/eds",
30
40
  "Entitlement License Service": "http://entitlement.theplatform.com/license",
31
41
  "Entitlement Web Service": "http://entitlement.theplatform.com/ent",
32
- "Access Data Service read-only": "http://access.auth.theplatform.com",
33
- "Selector Reporting Service read-only": "http://mps.theplatform.com",
34
- "Publish Data Service": "http://data.publish.theplatform.com/publish",
35
- "User Data Service master": "https://identity.auth.theplatform.com/idm",
36
- "Alternate Content Data Service": "https://data.altcontent.tv.theplatform.com/altcontent",
37
- "Validation Service": "http://validation.theplatform.com/validation",
38
- "Selector Web Service": "http://link.theplatform.com",
39
- "Promotion Service": "https://promotion.commerce.theplatform.com/promotion",
42
+ "FeedReader Data Service": "https://feedreader.ingest.theplatform.com/feedreader",
43
+ "FeedReader Data Service read-only": "https://feedreader.ingest.theplatform.com/feedreader",
44
+ "Feeds Data Service": "http://data.feed.theplatform.com/feed",
40
45
  "Feeds Data Service read-only": "http://read.data.feed.theplatform.com/feed",
41
- "Player Service": "http://player.theplatform.com",
42
- "Workflow Data Service": "http://data.workflow.theplatform.com/workflow",
43
- "Delivery Data Service": "http://data.delivery.theplatform.com/delivery",
46
+ "Feeds Service": "http://feed.theplatform.com/f",
47
+ "File Management Service": "http://fms.theplatform.com",
48
+ "Flash Access Service": "http://flashaccess.entitlement.theplatform.com",
49
+ "Fulfillment Service": "https://fulfillment.commerce.theplatform.com/fulfillment",
50
+ "Ingest Data Service": "http://adapter.ingest.theplatform.com/adapter",
51
+ "Ingest Data Service read-only": "http://adapter.ingest.theplatform.com/adapter",
52
+ "Ingest Service": "http://ingest.theplatform.com",
53
+ "Key Data Service": "https://data.key.entitlement.theplatform.com/key",
44
54
  "Key Data Service read-only": "https://data.key.entitlement.theplatform.com/key",
45
- "TV Listing Data Service": "http://data.listing.tv.theplatform.com/listing",
46
- "Address Service": "https://address.commerce.theplatform.com/address",
47
- "Commerce Event Data Service": "https://data.event.commerce.theplatform.com/event",
48
- "End User Data Service read-only": "https://euid.theplatform.com/idm",
49
- "Access Data Service": "http://access.auth.theplatform.com",
55
+ "Ledger Data Service": "https://ledger.commerce.theplatform.com/ledger",
50
56
  "Ledger Data Service read-only": "https://ledger.commerce.theplatform.com/ledger",
51
- "Product Feeds Service": "http://feed.product.theplatform.com/f",
52
- "Message Data Service read-only": "http://data.message.theplatform.com/message",
53
57
  "Live Event Data Service": "http://data.liveevent.theplatform.com/liveevent",
58
+ "Live Event Data Service read-only": "http://data.liveevent.theplatform.com/liveevent",
59
+ "Live Event Service": "http://liveevent.theplatform.com",
60
+ "Manifest Redirect Service": "http://redirect.manifest.theplatform.com/r",
61
+ "Media Data Service": "http://data.media.theplatform.com/media",
54
62
  "Media Data Service read-only": "http://read.data.media.theplatform.com/media",
55
- "Player Data Service": "http://data.player.theplatform.com/player",
56
- "Entitlement Data Service read-only": "http://data.entitlement.theplatform.com/eds",
63
+ "Message Data Service": "http://data.message.theplatform.com/message",
64
+ "Message Data Service read-only": "http://data.message.theplatform.com/message",
65
+ "Order Data Service": "https://order.commerce.theplatform.com/order",
66
+ "Order Data Service read-only": "https://read.order.commerce.theplatform.com/order",
67
+ "Order Item Data Service": "http://order.commerce.theplatform.com/order",
68
+ "Order Item Data Service read-only": "http://order.commerce.theplatform.com/order",
69
+ "PDK": "https://pdk.theplatform.com",
70
+ "PDK 6": "https://pdk.theplatform.com/pdk6",
71
+ "Payment Data Service": "https://payment.commerce.theplatform.com/payment",
57
72
  "Payment Data Service read-only": "https://payment.commerce.theplatform.com/payment",
58
- "Validation Data Service read-only": "http://data.validation.theplatform.com/validation",
59
- "Address Service read-only": "https://address.commerce.theplatform.com/address",
60
- "Console Data Service read-only": "http://data.mpx.theplatform.com/cds",
61
- "Ingest Data Service read-only": "http://adapter.ingest.theplatform.com/adapter",
73
+ "Payment Service": "https://payment.commerce.theplatform.com/payment",
74
+ "Player Data Service": "http://data.player.theplatform.com/player",
62
75
  "Player Data Service read-only": "http://read.data.player.theplatform.com/player",
76
+ "Player Service": "http://player.theplatform.com",
77
+ "Product Data Service": "http://data.product.theplatform.com/product",
78
+ "Product Data Service read-only": "http://read.data.product.theplatform.com/product",
79
+ "Product Feeds Service": "http://feed.product.theplatform.com/f",
63
80
  "Promotion Data Service": "https://promotion.commerce.theplatform.com/promotion",
64
- "comScore Digital Analytix": "http://comscore.theplatform.com?token={token}&account={account}&display=account",
81
+ "Promotion Data Service read-only": "https://promotion.commerce.theplatform.com/promotion",
82
+ "Promotion Service": "https://promotion.commerce.theplatform.com/promotion",
83
+ "Publish Data Service": "http://data.publish.theplatform.com/publish",
84
+ "Publish Data Service read-only": "http://data.publish.theplatform.com/publish",
85
+ "Publish Service": "http://publish.theplatform.com",
86
+ "Sales Tax Service": "https://tax.commerce.theplatform.com/tax",
87
+ "Selector Reporting Service": "http://release.theplatform.com",
88
+ "Selector Reporting Service read-only": "http://mps.theplatform.com",
89
+ "Selector Service": "http://link.theplatform.com/s",
90
+ "Selector Web Service": "http://link.theplatform.com",
91
+ "Sharing Data Service": "http://data.share.theplatform.com/sharing",
65
92
  "Sharing Data Service read-only": "http://data.share.theplatform.com/sharing",
66
- "WatchFolder Data Service read-only": "https://watchfolder.ingest.theplatform.com/wf",
67
- "Admin Storefront Service": "https://admin.storefront.commerce.theplatform.com/storefront",
68
- "Commerce Configuration Data Service": "https://data.configuration.commerce.theplatform.com/configuration",
69
- "Commerce Configuration Data Service read-only": "https://read.data.configuration.commerce.theplatform.com/configuration",
70
- "PDK 6": "https://pdk.theplatform.com/pdk6",
93
+ "Shopping Cart Service": "https://shoppingcart.commerce.theplatform.com/cart",
94
+ "Static Web Files": "http://web.theplatform.com",
95
+ "Storefront Service": "https://storefront.commerce.theplatform.com/storefront",
71
96
  "Stub Ingest Service": "http://ingest-stub.ingest.theplatform.com/service/ingest/mps",
72
- "Entertainment Ingest Data Service read-only": "http://data.ingest.tv.theplatform.com/ingest",
73
- "Commerce Event Data Service read-only": "https://data.event.commerce.theplatform.com/event",
74
- "Key Data Service": "https://data.key.entitlement.theplatform.com/key",
75
- "User Profile Data Service read-only": "http://data.userprofile.community.theplatform.com/userprofile",
76
- "Order Item Data Service": "http://order.commerce.theplatform.com/order",
77
- "Concurrency Service": "https://concurrency.delivery.theplatform.com/concurrency",
78
- "Delivery Data Service read-only": "http://data.delivery.theplatform.com/delivery",
97
+ "TV Listing Data Service": "http://data.listing.tv.theplatform.com/listing",
98
+ "TV Listing Data Service read-only": "http://read.data.listing.tv.theplatform.com/listing",
99
+ "Task Service": "http://data.task.theplatform.com/task",
79
100
  "Task Service read-only": "http://data.task.theplatform.com/task",
80
- "Checkout Service": "https://checkout.commerce.theplatform.com/checkout",
81
- "Fulfillment Service": "https://fulfillment.commerce.theplatform.com/fulfillment",
82
- "Payment Service": "https://payment.commerce.theplatform.com/payment",
83
- "Sales Tax Service": "https://tax.commerce.theplatform.com/tax",
84
- "Access Data Service audience": "http://enduser.access.auth.theplatform.com",
85
- "Promotion Data Service read-only": "https://promotion.commerce.theplatform.com/promotion",
86
- "Account Data Service read-only": "http://mps.theplatform.com",
87
- "End User Data Service": "https://euid.theplatform.com/idm",
88
- "Feeds Data Service": "http://data.feed.theplatform.com/feed",
89
- "Product Data Service": "http://data.product.theplatform.com/product",
90
- "PDK": "https://pdk.theplatform.com",
101
+ "User Data Service": "https://identity.auth.theplatform.com/idm",
102
+ "User Data Service master": "https://identity.auth.theplatform.com/idm",
91
103
  "User Data Service read-only": "https://identity.auth.theplatform.com/idm",
92
104
  "User Profile Data Service": "http://data.userprofile.community.theplatform.com/userprofile",
93
- "Manifest Redirect Service": "http://redirect.manifest.theplatform.com/r",
94
- "Feeds Service": "http://feed.theplatform.com/f",
95
- "Shopping Cart Service": "https://shoppingcart.commerce.theplatform.com/cart",
96
- "ACS Data Service": "http://data.acs.euid.theplatform.com/acsdata",
97
- "Live Event Data Service read-only": "http://data.liveevent.theplatform.com/liveevent",
98
- "Decision Manager Service": "https://decide.altcontent.tv.theplatform.com/d",
105
+ "User Profile Data Service read-only": "http://data.userprofile.community.theplatform.com/userprofile",
106
+ "User Profile Metadata Service": "http://userprofiles.community.theplatform.com/userprofile",
107
+ "Validation Data Service": "http://data.validation.theplatform.com/validation",
108
+ "Validation Data Service read-only": "http://data.validation.theplatform.com/validation",
109
+ "Validation Service": "http://validation.theplatform.com/validation",
110
+ "WatchFolder Data Service": "https://watchfolder.ingest.theplatform.com/wf",
111
+ "WatchFolder Data Service read-only": "https://watchfolder.ingest.theplatform.com/wf",
112
+ "Windows Media License Generator Service": "http://208.79.64.254/LicenseServer",
99
113
  "Windows Media License Service": "https://wm.entitlement.theplatform.com/wmlicense",
100
- "Media Data Service": "http://data.media.theplatform.com/media",
101
- "Flash Access Service": "http://flashaccess.entitlement.theplatform.com",
102
- "Ledger Data Service": "https://ledger.commerce.theplatform.com/ledger",
103
- "Entertainment Data Service": "http://data.entertainment.tv.theplatform.com/entertainment",
104
- "Access Data Service master": "http://access.auth.theplatform.com",
105
- "Cue Point Data Service": "http://data.cuepoint.theplatform.com/cuepoint",
114
+ "Workflow Data Service": "http://data.workflow.theplatform.com/workflow",
106
115
  "Workflow Data Service read-only": "http://data.workflow.theplatform.com/workflow",
107
- "Entertainment Data Service read-only": "http://read.data.entertainment.tv.theplatform.com/entertainment",
108
- "Access Data Service audience read-only": "http://enduser.access.auth.theplatform.com",
109
- "Product Data Service read-only": "http://read.data.product.theplatform.com/product",
110
- "Payment Data Service": "https://payment.commerce.theplatform.com/payment",
111
- "File Management Service": "http://fms.theplatform.com",
112
- "Windows Media License Generator Service": "http://208.79.64.254/LicenseServer",
113
- "Order Data Service": "https://order.commerce.theplatform.com/order",
114
- "Live Event Service": "http://liveevent.theplatform.com",
115
- "Account Data Service": "http://mps.theplatform.com",
116
- "Entitlement Data Service": "http://data.entitlement.theplatform.com/eds"
116
+ "comScore Digital Analytix": "http://comscore.theplatform.com?token={token}&account={account}&display=account"
117
117
  }
118
118
  }
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.require_paths = ["lib"]
18
18
  spec.required_ruby_version = '>= 2.4.0'
19
19
 
20
- spec.add_runtime_dependency "creatable", "1.0.1"
20
+ spec.add_runtime_dependency "creatable"
21
21
  spec.add_runtime_dependency "excon"
22
22
  spec.add_runtime_dependency "oj", "3.5.0"
23
23
 
@@ -39,5 +39,6 @@ Gem::Specification.new do |spec|
39
39
  spec.add_development_dependency "rubocop-rspec"
40
40
  spec.add_development_dependency "simplecov"
41
41
  spec.add_development_dependency "simplecov-console"
42
+ spec.add_development_dependency "solargraph"
42
43
  spec.add_development_dependency "yard"
43
44
  end
@@ -19,7 +19,7 @@ module Cts
19
19
  user.token!
20
20
 
21
21
  service = Services[service]
22
- u = URI.parse service.url
22
+ u = URI.parse service.url(account_id)
23
23
 
24
24
  [u.scheme, u.host].join('://')
25
25
  end
@@ -34,7 +34,7 @@ module Cts
34
34
  # @return [String] assembled path for a data call
35
35
  def path(service: nil, endpoint: nil, extra_path: nil, ids: nil, account_id: 'urn:theplatform:auth:root')
36
36
  Helpers.required_arguments %i[service endpoint], binding
37
- service = Services[service]
37
+ service = Services[].find { |s| s.name == service && s.endpoints.include?(endpoint) }
38
38
 
39
39
  path = "#{URI.parse(service.url(account_id)).path}/#{service.path}/#{endpoint}"
40
40
  path += "/#{extra_path}" if extra_path
@@ -56,11 +56,11 @@ module Cts
56
56
  # @raise [ArgumentError] if user, service or endpoint is not supplied
57
57
  # @raise [RuntimeError] if the user token is not set
58
58
  # @return [Hash] assembled query for a data call
59
- def query(user: nil, account: nil, service: nil, endpoint: nil, query: {}, range: nil, count: nil, entries: nil, sort: nil)
59
+ def query(user: nil, account_id: nil, service: nil, endpoint: nil, query: {}, range: nil, count: nil, entries: nil, sort: nil)
60
60
  Helpers.required_arguments %i[user service endpoint], binding
61
61
  user.token!
62
62
 
63
- service = Services[service]
63
+ service = Services[].find { |s| s.name == service && s.endpoints.include?(endpoint) }
64
64
 
65
65
  h = {}
66
66
  if service.type == 'data'
@@ -70,7 +70,7 @@ module Cts
70
70
  h.merge!(token: user.token, schema: service.endpoints[endpoint]['schema'], form: service.form)
71
71
  end
72
72
 
73
- h[:account] = account if account
73
+ h[:account] = account_id if account_id
74
74
  h.delete :token if user.token == 'sign_in_token'
75
75
  h.merge! query
76
76
  h
@@ -10,6 +10,7 @@ module Cts
10
10
  # @return [nil]
11
11
  def raise_unless_account_id(argument)
12
12
  raise ArgumentError, "#{argument} is not a valid account_id" unless Validators.account_id? argument
13
+
13
14
  nil
14
15
  end
15
16
 
@@ -19,12 +20,8 @@ module Cts
19
20
  # @raise [ArgumentError] if the argument is not of the correct type
20
21
  # @return [nil]
21
22
  def raise_unless_argument_error?(data, type = nil, &block)
22
- msg = "#{data} is not a valid #{type}"
23
- if block
24
- raise ArgumentError, msg unless Validators.argument_error?(data, type, &block)
25
- elsif Validators.argument_error?(data, type, &block)
26
- raise ArgumentError, msg
27
- end
23
+ raise(ArgumentError, "#{data} is not a valid #{type}") if Validators.argument_error?(data, type, &block)
24
+
28
25
  nil
29
26
  end
30
27
 
@@ -34,6 +31,7 @@ module Cts
34
31
  # @return [nil]
35
32
  def raise_unless_reference?(argument)
36
33
  raise ArgumentError, "#{argument} is not a valid reference" unless Validators.reference? argument
34
+
37
35
  nil
38
36
  end
39
37
 
@@ -7,7 +7,7 @@ module Cts
7
7
  # @attribute xmlns
8
8
  # @return [Hash] active namespace received for this page
9
9
  class Page
10
- extend Creatable
10
+ include Creatable
11
11
  include Enumerable
12
12
 
13
13
  attribute name: 'entries', kind_of: Array
@@ -18,6 +18,16 @@ module Cts
18
18
  @xmlns = {}
19
19
  end
20
20
 
21
+ def to_mpx_entries
22
+ c = @entries.map do |e|
23
+ r = Entry.new
24
+ r.fields = Fields.create_from_data(data: e, xmlns: xmlns)
25
+ end
26
+
27
+ e = Entries.create collection: c
28
+ e
29
+ end
30
+
21
31
  # return a json copy of the object, useful for later interpreation
22
32
  # @param [Object] indent_depth sets indent depth to 2 if not nil
23
33
  # @return [String] json serialized copy of the page
@@ -17,7 +17,7 @@ module Cts
17
17
  # @attribute headers
18
18
  # @return [Hash] headers to transmit to the services along with the request
19
19
  class Request
20
- extend Creatable
20
+ include Creatable
21
21
 
22
22
  attribute name: 'method', kind_of: Symbol
23
23
  attribute name: 'url', kind_of: String
@@ -5,7 +5,7 @@ module Cts
5
5
  # Class to contain a response from the services, has a few helper methods to make reading the data easier.
6
6
  #
7
7
  class Response
8
- extend Creatable
8
+ include Creatable
9
9
 
10
10
  # @!attribute original
11
11
  # @return [Excon::Response] copy of the original excon response.
@@ -6,7 +6,8 @@ module Cts
6
6
  class Entries
7
7
  include Enumerable
8
8
  include Driver
9
- extend Creatable
9
+ include Creatable
10
+ extend Forwardable
10
11
 
11
12
  attribute name: 'collection', kind_of: Array
12
13
 
@@ -16,14 +17,11 @@ module Cts
16
17
  # @return [Entries] a new entries collection
17
18
  def self.create_from_page(page)
18
19
  Exceptions.raise_unless_argument_error? page, Page
19
- entries = new
20
- page.entries.each do |e|
21
- entry = Entry.new
22
- entry.fields = Fields.create_from_data(data: e, xmlns: page.xmlns)
20
+ entries = page.entries.each do |e|
21
+ entry = Entry.create(fields: Fields.create_from_data(data: e, xmlns: page.xmlns))
23
22
  entry.id = entry.fields['id'] if entry.fields['id']
24
- entries.add entry
25
23
  end
26
- entries
24
+ Entries.create(collection: entries)
27
25
  end
28
26
 
29
27
  # Addressable method, indexed by entry object
@@ -31,15 +29,25 @@ module Cts
31
29
  # @return [Self.collection,Entry,nil] Can return the collection, a single entry, or nil if nothing found
32
30
  def [](key = nil)
33
31
  return @collection unless key
32
+
34
33
  @collection.find { |e| e.id == key }
35
34
  end
36
35
 
36
+ def +(other)
37
+ Entries.create collection: @collection += other.collection
38
+ end
39
+
40
+ def -(other)
41
+ Entries.create collection: @collection += other.collection
42
+ end
43
+
37
44
  # Add an entry object to the collection
38
45
  # @param [Entry] entry instantiated Entry to include
39
46
  # @raise [ArgumentError] if entry is not an Entry
40
47
  # @return [Self]
41
48
  def add(entry)
42
49
  return self if @collection.include? entry
50
+
43
51
  Exceptions.raise_unless_argument_error? entry, Entry
44
52
  @collection.push entry
45
53
  self
@@ -2,7 +2,7 @@ module Cts
2
2
  module Mpx
3
3
  # ORM style class to contain any entry from the data services.
4
4
  class Entry
5
- extend Creatable
5
+ include Creatable
6
6
 
7
7
  attribute name: 'endpoint', kind_of: String
8
8
  attribute name: 'fields', kind_of: Fields
@@ -14,7 +14,7 @@ module Cts
14
14
  # @param [String] id long form id to look up
15
15
  # @param [String] fields comma delimited list of fields to collect
16
16
  # @return [Entry] the resulting entry
17
- def self.load_by_id(user: nil, id: nil, fields: nil)
17
+ def self.load_by_id(user: nil, id: nil, fields: nil, account_id: nil)
18
18
  Driver::Helpers.required_arguments %i[user id], binding
19
19
 
20
20
  Driver::Exceptions.raise_unless_argument_error? user, User
@@ -22,7 +22,7 @@ module Cts
22
22
 
23
23
  e = new
24
24
  e.id = id
25
- e.load user: user, fields: nil
25
+ e.load user: user, fields: fields, account_id: account_id
26
26
  e
27
27
  end
28
28
 
@@ -35,13 +35,17 @@ module Cts
35
35
  # Set the id of the entry, will check if it's a valid reference.
36
36
  # @param [String] account_id account_id to set the entry to
37
37
  # @return [Entry] the resulting entry
38
- def id=(account_id)
39
- Driver::Exceptions.raise_unless_reference? account_id
40
- result = Services.from_url account_id
41
- fields['id'] = account_id
42
-
43
- @service = result[:service]
44
- @endpoint = result[:endpoint]
38
+ def id=(id)
39
+ if id.nil?
40
+ fields.remove 'id'
41
+ @id, @service, @endpoint = nil
42
+ else
43
+ Driver::Exceptions.raise_unless_reference? id
44
+ result = Services.from_url id
45
+ fields['id'] = id
46
+ @service = result[:service]
47
+ @endpoint = result[:endpoint]
48
+ end
45
49
  end
46
50
 
47
51
  # Initialize an entry.
@@ -63,16 +67,20 @@ module Cts
63
67
  # @param [User] user user to make calls with
64
68
  # @param [String] fields comma delimited list of fields to collect
65
69
  # @return [Driver::Response] Response of the call.
66
- def load(user: nil, fields: nil)
70
+ def load(user: nil, fields: nil, account_id: 'urn:theplatform:auth:root')
67
71
  Driver::Helpers.required_arguments %i[user], binding
68
72
 
69
73
  Driver::Exceptions.raise_unless_argument_error? user, User
70
74
  Driver::Exceptions.raise_unless_argument_error? fields, String if fields
71
75
  Driver::Exceptions.raise_unless_reference? id
72
76
 
73
- response = Services::Data.get user: user, service: service, endpoint: endpoint, fields: fields, ids: id.split("/").last
77
+ Registry.fetch_and_store_domain user: user, account_id: account_id
78
+ response = Services::Data.get account_id: account_id, user: user, service: service, endpoint: endpoint, fields: fields, ids: id.split("/").last
79
+
80
+ raise 'could not load ' + id unless response.data['entries'].count.positive?
81
+
74
82
  self.fields.parse data: response.data['entries'].first, xmlns: response.data['xmlns']
75
- response
83
+ self
76
84
  end
77
85
 
78
86
  # Save the entry to the remote services.
@@ -8,7 +8,7 @@ module Cts
8
8
  # @attribute xmlns namespace of the field
9
9
  # @return [Hash]
10
10
  class Field
11
- extend Creatable
11
+ include Creatable
12
12
 
13
13
  attribute name: 'name', kind_of: String
14
14
  attribute name: 'value'
@@ -5,7 +5,7 @@ module Cts
5
5
  # @return [Field[]]
6
6
  class Fields
7
7
  include Enumerable
8
- extend Creatable
8
+ include Creatable
9
9
 
10
10
  attribute name: 'collection', kind_of: Array
11
11
 
@@ -79,6 +79,7 @@ module Cts
79
79
  # @return [Field[]] returns a collection of fields
80
80
  def parse(xmlns: nil, data: nil)
81
81
  Driver::Exceptions.raise_unless_argument_error? data, Hash
82
+
82
83
  data.delete :service
83
84
  data.delete :endpoint
84
85
  reset
@@ -26,10 +26,9 @@ module Cts
26
26
  # @attribute sort
27
27
  # @return [String] string to sort in the service shell style
28
28
  class Query
29
- extend Creatable
30
- attr_accessor :sort
29
+ include Creatable
31
30
 
32
- attribute name: 'account', kind_of: String
31
+ attribute name: 'account_id', kind_of: String
33
32
  attribute name: 'endpoint', kind_of: String
34
33
  attribute name: 'extra_path', kind_of: String
35
34
  attribute name: 'fields', kind_of: String
@@ -37,15 +36,15 @@ module Cts
37
36
  attribute name: 'page', kind_of: Driver::Page
38
37
  attribute name: 'query', kind_of: Hash
39
38
  attribute name: 'range', kind_of: String
40
- attribute name: 'return_count', kind_of: FalseClass
41
- attribute name: 'return_entries', kind_of: TrueClass
39
+ attribute name: 'return_count'
40
+ attribute name: 'return_entries'
42
41
  attribute name: 'service', kind_of: String
43
42
  attribute name: 'sort', kind_of: String
44
43
 
45
44
  # List of attributes availble
46
45
  # @return [Symbol[]]
47
46
  def attributes
48
- %i[account endpoint extra_path fields ids query range return_count return_entries service sort]
47
+ %i[account_id endpoint extra_path fields ids query range return_count return_entries service sort]
49
48
  end
50
49
 
51
50
  # Instiatiate a page and query, set return's to false.
@@ -82,9 +81,7 @@ module Cts
82
81
  # @param [Boolean] include_entries include the entries array or not
83
82
  # @return [Hash]
84
83
  def to_h(include_entries: true)
85
- h = {
86
- params: params
87
- }
84
+ h = { params: params }
88
85
  h[:entries] = entries.to_h if include_entries
89
86
  h
90
87
  end
@@ -16,6 +16,7 @@ module Cts
16
16
  # @raise (see #fetch_domain)
17
17
  # @return [Hash] hash of the newly fetched domain
18
18
  def fetch_and_store_domain(user, account_id = 'urn:theplatform:auth:root')
19
+ account_id ||= 'urn:theplatform:auth:root'
19
20
  result = fetch_domain user, account_id
20
21
  store_domain result, account_id
21
22
  domains[account_id]
@@ -29,8 +30,9 @@ module Cts
29
30
  # @return [Hash] hash of the newly fetched domain
30
31
  def fetch_domain(user, account_id = 'urn:theplatform:auth:root')
31
32
  return domains['urn:theplatform:auth:root'] if account_id == 'urn:theplatform:auth:root'
32
- Driver::Exceptions.raise_unless_argument_error?(user, 'User') { user.is_a? User }
33
- Driver::Exceptions.raise_unless_argument_error?(account_id, 'account_id') { Validators.account_id? account_id }
33
+
34
+ Driver::Exceptions.raise_unless_argument_error?(user, 'User') { !user.is_a? User }
35
+ Driver::Exceptions.raise_unless_argument_error?(account_id, 'account_id') { !Validators.account_id? account_id }
34
36
  user.token!
35
37
 
36
38
  response = Services::Web.post user: user, service: 'Access Data Service', endpoint: 'Registry', method: 'resolveDomain', arguments: { 'accountId' => account_id }
@@ -46,6 +48,7 @@ module Cts
46
48
  def store_domain(data, account_id = 'urn:theplatform:auth:root')
47
49
  raise ArgumentError, "#{account_id} is not a valid account_id" unless Validators.account_id? account_id
48
50
  raise ArgumentError, "#{data} is not a valid Hash" unless data.is_a? Hash
51
+
49
52
  @domains.store account_id, data
50
53
  nil
51
54
  end
@@ -49,6 +49,7 @@ module Cts
49
49
  # @param [String] account_id long form account id (ownerId)
50
50
  # @return [String] the url string or nil if none available
51
51
  def url(account_id = 'urn:theplatform:auth:root')
52
+ account_id ||= 'urn:theplatform:auth:root'
52
53
  Exceptions.raise_unless_account_id account_id
53
54
  reg = Registry.domains[account_id]
54
55
  return reg[name] if reg
@@ -13,8 +13,10 @@ module Cts
13
13
  def [](key = nil)
14
14
  return @services unless key
15
15
  raise 'key must be a string' unless key.is_a? String
16
+
16
17
  service = @services.find { |e| e.name == key }
17
18
  raise "#{key} must be a service name." unless service
19
+
18
20
  service
19
21
  end
20
22
 
@@ -22,15 +24,25 @@ module Cts
22
24
  # @param [String] url url to parse
23
25
  # @return [Hash] including service and endpoint as string.
24
26
  def from_url(url)
25
- service = Services[].find { |s| url.include? s.uri_hint if s.uri_hint }
27
+ type = 'data' if url.include? 'data'
28
+ uri = URI.parse url
29
+
30
+ service = Services[].find { |s| uri.host.include?(s.uri_hint) if s.uri_hint && s.type == type }
26
31
  return nil unless service
27
32
 
28
33
  {
29
34
  service: service.name,
30
- endpoint: /data\/([A-Z].*)\//.match(url)[1]
35
+ endpoint: endpoint_regex(url)
31
36
  }
32
37
  end
33
38
 
39
+ # check url structure for correct endpoint
40
+ # @param [String] url to parse for a match
41
+ # @return [String] results of regex matching
42
+ def endpoint_regex(url)
43
+ /data\/([a-zA-Z]*\/Field)|data\/([a-zA-Z]*)\//.match(url)&.[](1, 2)&.select { |e| e unless e.nil? }[0]
44
+ end
45
+
34
46
  # Load references and services from disk.
35
47
  def initialize
36
48
  load_references
@@ -44,6 +56,7 @@ module Cts
44
56
  def load_reference_file(file: nil, type: nil)
45
57
  raise ArgumentError, 'type must be supplied' unless type
46
58
  raise ArgumentError, 'file must be supplied' unless file
59
+
47
60
  @raw_reference.store(type, Driver.load_json_file(file))
48
61
  true
49
62
  end
@@ -100,6 +113,7 @@ module Cts
100
113
  return @raw_reference unless key
101
114
  raise 'key must be a string' unless key.is_a? String
102
115
  raise "#{key} is not in the reference library." unless @raw_reference.include? key
116
+
103
117
  @raw_reference[key]
104
118
  end
105
119
 
@@ -26,8 +26,8 @@ module Cts
26
26
  # @raise (see #get)
27
27
  # @param (see #get)
28
28
  # @return (see #get)
29
- def delete(user: nil, account: nil, service: nil, endpoint: nil, sort: nil, extra_path: nil, range: nil, ids: nil, query: {}, headers: {}, count: nil, entries: nil)
30
- get(user: user, account: account, service: service, endpoint: endpoint, sort: sort, extra_path: extra_path, range: range, ids: ids, query: query, headers: headers, count: count, entries: entries, method: :delete)
29
+ def delete(user: nil, account_id: nil, service: nil, endpoint: nil, sort: nil, extra_path: nil, range: nil, ids: nil, query: {}, headers: {}, count: nil, entries: nil)
30
+ get(user: user, account_id: account_id, service: service, endpoint: endpoint, sort: sort, extra_path: extra_path, range: range, ids: ids, query: query, headers: headers, count: count, entries: entries, method: :delete)
31
31
  end
32
32
 
33
33
  # Procedural method to GET data from the data services
@@ -46,12 +46,12 @@ module Cts
46
46
  # @param [String] sort set the sort field
47
47
  # @raise (see #prep_call)
48
48
  # @return [Response] Response of the call
49
- def get(user: nil, account: nil, service: nil, fields: nil, endpoint: nil, sort: nil, extra_path: nil, range: nil, ids: nil, query: {}, headers: {}, count: nil, entries: nil, method: :get)
50
- prep_call(user: user, account: account, service: service, query: query, headers: headers, required_arguments: ['user', 'service', 'endpoint'], binding: binding)
49
+ def get(user: nil, account_id: nil, service: nil, fields: nil, endpoint: nil, sort: nil, extra_path: nil, range: nil, ids: nil, query: {}, headers: {}, count: nil, entries: nil, method: :get)
50
+ prep_call(user: user, account_id: account_id, service: service, query: query, headers: headers, required_arguments: ['user', 'service', 'endpoint'], binding: binding)
51
51
 
52
- host = Driver::Assemblers.host user: user, service: service
52
+ host = Driver::Assemblers.host user: user, service: service, account_id: account_id
53
53
  path = Driver::Assemblers.path service: service, endpoint: endpoint, extra_path: extra_path, ids: ids
54
- query = Driver::Assemblers.query user: user, account: account, service: service, endpoint: endpoint, query: query
54
+ query = Driver::Assemblers.query user: user, account_id: account_id, service: service, endpoint: endpoint, query: query
55
55
 
56
56
  if Services[service].type == 'data'
57
57
  query.merge! Driver::Assemblers.query_data range: range, count: count, entries: entries, sort: sort
@@ -72,12 +72,12 @@ module Cts
72
72
  # @param [String] service title of a service
73
73
  # @raise (see #prep_call)
74
74
  # @return [Response] Response of the call
75
- def post(user: nil, account: nil, service: nil, endpoint: nil, extra_path: nil, query: {}, page: nil, headers: {}, method: :post)
76
- prep_call(user: user, account: account, service: service, query: query, headers: headers, required_arguments: ['user', 'service', 'endpoint', 'page'], page: page, binding: binding)
75
+ def post(user: nil, account_id: nil, service: nil, endpoint: nil, extra_path: nil, query: {}, page: nil, headers: {}, method: :post)
76
+ prep_call(user: user, account_id: account_id, service: service, query: query, headers: headers, required_arguments: ['user', 'service', 'endpoint', 'page'], page: page, binding: binding)
77
77
 
78
78
  host = Driver::Assemblers.host user: user, service: service
79
79
  path = Driver::Assemblers.path service: service, endpoint: endpoint, extra_path: extra_path
80
- query = Driver::Assemblers.query user: user, account: account, service: service, endpoint: endpoint, query: query
80
+ query = Driver::Assemblers.query user: user, account_id: account_id, service: service, endpoint: endpoint, query: query
81
81
 
82
82
  request = Driver::Request.create(method: method, url: [host, path].join, query: query, headers: headers, payload: page.to_s)
83
83
  request.call
@@ -87,8 +87,8 @@ module Cts
87
87
  # @param (see #post)
88
88
  # @raise (see #post)
89
89
  # @return (see #post)
90
- def put(user: nil, account: nil, service: nil, endpoint: nil, extra_path: nil, query: {}, page: nil, headers: {})
91
- post(user: user, account: account, service: service, endpoint: endpoint, extra_path: extra_path, query: query, page: page, headers: headers, method: :put)
90
+ def put(user: nil, account_id: nil, service: nil, endpoint: nil, extra_path: nil, query: {}, page: nil, headers: {})
91
+ post(user: user, account_id: account_id, service: service, endpoint: endpoint, extra_path: extra_path, query: query, page: page, headers: headers, method: :put)
92
92
  end
93
93
 
94
94
  # Helper method to assure that everything is is ok to call the methods above
@@ -111,12 +111,11 @@ module Cts
111
111
  # @private
112
112
  def prep_call(args = {})
113
113
  Driver::Helpers.required_arguments args[:required_arguments], args[:binding]
114
- args[:user].token!
114
+ Driver::Helpers.raise_if_not_a([args[:user]], User) if args[:user]
115
115
  Driver::Helpers.raise_if_not_a_hash [args[:query], args[:headers]]
116
-
117
116
  Driver::Helpers.raise_if_not_a([args[:page]], Driver::Page) if args[:page]
118
-
119
- Registry.fetch_and_store_domain(args[:user], args[:account]) unless self[args[:service]].url?
117
+ args[:user].token!
118
+ Registry.fetch_and_store_domain(args[:user], args[:account_id])
120
119
  end
121
120
  end
122
121
  end
@@ -15,8 +15,8 @@ module Cts
15
15
  # @return [Service] a service
16
16
  def [](key = nil)
17
17
  return services unless key
18
- Driver::Exceptions.raise_unless_argument_error?(key, String)
19
18
 
19
+ Driver::Exceptions.raise_unless_argument_error?(key, String)
20
20
  service = services.find { |e| e.name == key }
21
21
  Driver::Exceptions.raise_unless_argument_error?(service, Driver::Service)
22
22
 
@@ -40,9 +40,9 @@ module Cts
40
40
  service = Services[service]
41
41
  method_list = service.endpoints[endpoint]['methods']
42
42
  Driver::Exceptions.raise_unless_argument_error?(arguments, Hash)
43
- Driver::Exceptions.raise_unless_argument_error?(method, 'method') { method_list.key?(method) }
43
+ Driver::Exceptions.raise_unless_argument_error?(method, 'method') { !method_list.key?(method) }
44
44
 
45
- arguments.each_key { |k| Driver::Exceptions.raise_unless_argument_error?(arguments, 'argument') { method_list[method].include? k.to_s } }
45
+ arguments.each_key { |k| Driver::Exceptions.raise_unless_argument_error?(arguments, 'argument') { !method_list[method].include? k.to_s } }
46
46
 
47
47
  h = {}
48
48
  h[method] = arguments
@@ -78,7 +78,7 @@ module Cts
78
78
  host = Driver::Assemblers.host user: user, service: service
79
79
  path = Driver::Assemblers.path service: service, endpoint: endpoint, extra_path: extra_path
80
80
  payload = assemble_payload service: service, endpoint: endpoint, method: method, arguments: arguments
81
- query = Driver::Assemblers.query user: user, account: account, service: service, endpoint: endpoint, query: query
81
+ query = Driver::Assemblers.query user: user, account_id: account, service: service, endpoint: endpoint, query: query
82
82
 
83
83
  ### Request
84
84
  request = Driver::Request.create(method: :post, url: [host, path].join, query: query, payload: Oj.dump(payload), headers: headers)
@@ -12,13 +12,13 @@ module Cts
12
12
  # @attribute token
13
13
  # @return [String] the retrieved token
14
14
  class User
15
- extend Creatable
15
+ include Creatable
16
16
 
17
- attribute name: 'username', type: 'accessor', kind_of: String
18
- attribute name: 'password', type: 'accessor', kind_of: String
19
- attribute name: 'idle_timeout', type: 'accessor', kind_of: Integer
20
- attribute name: 'duration', type: 'accessor', kind_of: Integer
21
- attribute name: 'token', type: 'accessor', kind_of: String
17
+ attribute name: 'username', kind_of: String
18
+ attribute name: 'password', kind_of: String
19
+ attribute name: 'idle_timeout', kind_of: Integer
20
+ attribute name: 'duration', kind_of: Integer
21
+ attribute name: 'token', kind_of: String
22
22
 
23
23
  # Attempt to sign the user in with the provided credentials
24
24
  # @param [Numeric] idle_timeout how long the token will stay alive without communicating with the services
@@ -26,6 +26,7 @@ module Cts
26
26
  # @return [Self]
27
27
  def sign_in(idle_timeout: nil, duration: nil)
28
28
  raise 'token is already set, use sign_out first.' if token
29
+
29
30
  arguments = {}
30
31
 
31
32
  arguments['idleTimeout'] if idle_timeout
@@ -45,7 +46,7 @@ module Cts
45
46
  def sign_out
46
47
  arguments = { "token" => token }
47
48
  response = Services::Web.post user: self, service: 'User Data Service', endpoint: 'Authentication', method: 'signOut', arguments: arguments
48
- self.token = nil if response.status == 200
49
+ @token = nil if response.status == 200
49
50
  nil
50
51
  end
51
52
 
@@ -1,6 +1,6 @@
1
1
  module Cts
2
2
  module Mpx
3
3
  # @return [String] frozen string of the version of Cts::Mpx
4
- VERSION = "1.0.1".freeze
4
+ VERSION = "1.0.2".freeze
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cts-mpx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernie Brodeur
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-21 00:00:00.000000000 Z
11
+ date: 2018-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: creatable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.1
19
+ version: '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
- version: 1.0.1
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: excon
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -304,6 +304,20 @@ dependencies:
304
304
  - - ">="
305
305
  - !ruby/object:Gem::Version
306
306
  version: '0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: solargraph
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
307
321
  - !ruby/object:Gem::Dependency
308
322
  name: yard
309
323
  requirement: !ruby/object:Gem::Requirement
@@ -329,7 +343,6 @@ files:
329
343
  - ".rspec"
330
344
  - ".rubocop.yml"
331
345
  - CONTRIBUTING
332
- - COPYRIGHT
333
346
  - EXAMPLES.md
334
347
  - Gemfile
335
348
  - Gemfile.lock
data/COPYRIGHT DELETED
@@ -1,10 +0,0 @@
1
- Copyright 2018 Comcast Cable Communications Management, LLC
2
- Licensed under the Apache License, Version 2.0 (the "License");
3
- you may not use this file except in compliance with the License.
4
- You may obtain a copy of the License at
5
- http://www.apache.org/licenses/LICENSE-2.0
6
- Unless required by applicable law or agreed to in writing, software
7
- distributed under the License is distributed on an "AS IS" BASIS,
8
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- See the License for the specific language governing permissions and
10
- limitations under the License.