cts-mpx 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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.