MuranoCLI 3.2.0.beta.9 → 3.2.1.pre.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/Rakefile +5 -0
  4. data/dockers/README.rst +7 -0
  5. data/dockers/RELEASE.rst +6 -3
  6. data/dockers/docker-test.sh +45 -17
  7. data/docs/completions/murano_completion-bash +211 -86
  8. data/lib/MrMurano/Account.rb +72 -4
  9. data/lib/MrMurano/Business.rb +163 -2
  10. data/lib/MrMurano/Commander-Entry.rb +1 -2
  11. data/lib/MrMurano/Config.rb +19 -18
  12. data/lib/MrMurano/Content.rb +26 -19
  13. data/lib/MrMurano/Gateway.rb +51 -10
  14. data/lib/MrMurano/ReCommander.rb +1 -1
  15. data/lib/MrMurano/Solution-Services.rb +80 -35
  16. data/lib/MrMurano/Solution-Users.rb +1 -0
  17. data/lib/MrMurano/SyncRoot.rb +10 -3
  18. data/lib/MrMurano/SyncUpDown-Core.rb +47 -36
  19. data/lib/MrMurano/SyncUpDown-Item.rb +46 -14
  20. data/lib/MrMurano/SyncUpDown.rb +22 -20
  21. data/lib/MrMurano/Webservice-Endpoint.rb +20 -18
  22. data/lib/MrMurano/Webservice-File.rb +63 -20
  23. data/lib/MrMurano/commands/business.rb +14 -1
  24. data/lib/MrMurano/commands/child.rb +148 -0
  25. data/lib/MrMurano/commands/devices.rb +298 -149
  26. data/lib/MrMurano/commands/element.rb +2 -1
  27. data/lib/MrMurano/commands/globals.rb +3 -0
  28. data/lib/MrMurano/commands/network.rb +152 -33
  29. data/lib/MrMurano/commands/sync.rb +2 -2
  30. data/lib/MrMurano/commands.rb +1 -0
  31. data/lib/MrMurano/verbosing.rb +13 -2
  32. data/lib/MrMurano/version.rb +1 -1
  33. data/spec/Account_spec.rb +43 -11
  34. data/spec/Content_spec.rb +5 -3
  35. data/spec/GatewayBase_spec.rb +1 -1
  36. data/spec/GatewayDevice_spec.rb +47 -8
  37. data/spec/GatewayResource_spec.rb +1 -1
  38. data/spec/GatewaySettings_spec.rb +1 -1
  39. data/spec/HttpAuthed_spec.rb +17 -3
  40. data/spec/ProjectFile_spec.rb +59 -23
  41. data/spec/Setting_spec.rb +2 -1
  42. data/spec/Solution-ServiceConfig_spec.rb +1 -1
  43. data/spec/Solution-ServiceEventHandler_spec.rb +27 -20
  44. data/spec/Solution-ServiceModules_spec.rb +7 -5
  45. data/spec/Solution-UsersRoles_spec.rb +7 -1
  46. data/spec/Solution_spec.rb +9 -1
  47. data/spec/SyncRoot_spec.rb +5 -5
  48. data/spec/SyncUpDown_spec.rb +262 -211
  49. data/spec/Verbosing_spec.rb +49 -8
  50. data/spec/Webservice-Cors_spec.rb +10 -1
  51. data/spec/Webservice-Endpoint_spec.rb +84 -65
  52. data/spec/Webservice-File_spec.rb +16 -11
  53. data/spec/Webservice-Setting_spec.rb +7 -1
  54. data/spec/_workspace.rb +9 -0
  55. data/spec/cmd_business_spec.rb +5 -10
  56. data/spec/cmd_common.rb +67 -32
  57. data/spec/cmd_config_spec.rb +9 -14
  58. data/spec/cmd_content_spec.rb +15 -26
  59. data/spec/cmd_cors_spec.rb +9 -12
  60. data/spec/cmd_device_spec.rb +31 -45
  61. data/spec/cmd_domain_spec.rb +12 -10
  62. data/spec/cmd_element_spec.rb +18 -17
  63. data/spec/cmd_exchange_spec.rb +1 -4
  64. data/spec/cmd_init_spec.rb +56 -72
  65. data/spec/cmd_keystore_spec.rb +17 -26
  66. data/spec/cmd_link_spec.rb +13 -17
  67. data/spec/cmd_password_spec.rb +9 -10
  68. data/spec/cmd_setting_application_spec.rb +95 -68
  69. data/spec/cmd_setting_product_spec.rb +59 -37
  70. data/spec/cmd_status_spec.rb +46 -84
  71. data/spec/cmd_syncdown_application_spec.rb +28 -50
  72. data/spec/cmd_syncdown_both_spec.rb +44 -93
  73. data/spec/cmd_syncdown_unit_spec.rb +858 -0
  74. data/spec/cmd_syncup_spec.rb +21 -56
  75. data/spec/cmd_token_spec.rb +0 -3
  76. data/spec/cmd_usage_spec.rb +15 -10
  77. data/spec/dry_run_formatter.rb +1 -0
  78. data/spec/fixtures/dumped_config +4 -4
  79. data/spec/spec_helper.rb +3 -0
  80. metadata +4 -2
@@ -16,8 +16,8 @@ require 'HttpAuthed_spec'
16
16
 
17
17
  RSpec.describe MrMurano::ServiceConfig do
18
18
  include_context 'WORKSPACE'
19
+
19
20
  before(:example) do
20
- MrMurano::SyncRoot.instance.reset
21
21
  $cfg = MrMurano::Config.new
22
22
  $cfg.load
23
23
  $project = MrMurano::ProjectFile.new
@@ -75,6 +75,7 @@ RSpec.describe MrMurano::EventHandler do
75
75
  event: 'datapoint',
76
76
  created_at: '2016-07-07T19:16:19.479Z',
77
77
  updated_at: '2016-09-12T13:26:55.868Z',
78
+ header: '--#EVENT device datapoint',
78
79
  script: %{--#EVENT device datapoint
79
80
  -- lua code is here
80
81
  function foo(bar)
@@ -330,7 +331,7 @@ end
330
331
  end
331
332
  end
332
333
 
333
- context 'to_remote_item' do
334
+ context 'to_remote_items' do
334
335
  before(:example) do
335
336
  allow(@srv).to receive(:warning)
336
337
  end
@@ -343,17 +344,21 @@ end
343
344
  ).gsub(/^\s+/, '')
344
345
  tio.close
345
346
 
346
- ret = @srv.to_remote_item(nil, tio.path)
347
- expect(ret).to eq(
348
- service: 'device',
349
- event: 'datapoint',
350
- svc_alias: nil,
351
- type: nil,
352
- line_beg: 0,
353
- line_end: 3,
354
- local_path: Pathname.new(tio.path),
355
- script: %(--#EVENT device datapoint\n-- do something.\nTsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n)
356
- )
347
+ want = [
348
+ {
349
+ service: 'device',
350
+ event: 'datapoint',
351
+ svc_alias: nil,
352
+ type: nil,
353
+ line_beg: 1,
354
+ line_end: 3,
355
+ local_path: Pathname.new(tio.path),
356
+ header: %(--#EVENT device datapoint),
357
+ script: %(-- do something.\nTsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n),
358
+ },
359
+ ]
360
+ ret = @srv.to_remote_items(nil, tio.path)
361
+ expect(ret).to eq(want)
357
362
  end
358
363
  end
359
364
 
@@ -365,8 +370,8 @@ end
365
370
  ).gsub(/^\s+/, '')
366
371
  tio.close
367
372
 
368
- ret = @srv.to_remote_item(nil, tio.path)
369
- expect(ret).to eq(nil)
373
+ ret = @srv.to_remote_items(nil, tio.path)
374
+ expect(ret).to eq([])
370
375
  end
371
376
  end
372
377
 
@@ -379,19 +384,21 @@ end
379
384
  ).gsub(/^\s+/, '')
380
385
  tio.close
381
386
 
382
- ret = @srv.to_remote_item(nil, tio.path)
383
- expect(ret).to eq(
387
+ want = [
384
388
  MrMurano::EventHandler::EventHandlerItem.new(
385
389
  service: 'device',
386
390
  event: 'datapoint',
387
391
  svc_alias: nil,
388
392
  type: nil,
389
- line_beg: 1,
393
+ line_beg: 2, # Skips the "-- do something." line, before --#EVENT.
390
394
  line_end: 3,
391
395
  local_path: Pathname.new(tio.path),
392
- script: %(--#EVENT device datapoint\nTsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n),
393
- )
394
- )
396
+ header: %(--#EVENT device datapoint),
397
+ script: %(Tsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n),
398
+ ),
399
+ ]
400
+ ret = @srv.to_remote_items(nil, tio.path)
401
+ expect(ret).to eq(want)
395
402
  end
396
403
  end
397
404
  end
@@ -542,18 +542,20 @@ RSpec.describe MrMurano::Module do
542
542
  end
543
543
  end
544
544
 
545
- context 'to_remote_item' do
545
+ context 'to_remote_items' do
546
546
  it 'reads one' do
547
547
  root = Pathname.new(@project_dir)
548
548
  path = Pathname.new(@project_dir) + 'test.lua'
549
- ret = @srv.to_remote_item(root, path)
550
- expect(ret).to eq(name: 'test')
549
+ want = [{ name: 'test' }]
550
+ ret = @srv.to_remote_items(root, path)
551
+ expect(ret).to eq(want)
551
552
  end
552
553
  it 'reads sub folder one' do
553
554
  root = Pathname.new(@project_dir)
554
555
  path = Pathname.new(@project_dir) + 'src/test.lua'
555
- ret = @srv.to_remote_item(root, path)
556
- expect(ret).to eq(name: 'src.test')
556
+ ret = @srv.to_remote_items(root, path)
557
+ want = [{ name: 'src.test' }]
558
+ expect(ret).to eq(want)
557
559
  end
558
560
  end
559
561
  end
@@ -7,6 +7,8 @@
7
7
 
8
8
  require 'pathname'
9
9
  require 'tempfile'
10
+ require 'webmock'
11
+
10
12
  require 'MrMurano/hash'
11
13
  require 'MrMurano/version'
12
14
  require 'MrMurano/HttpAuthed'
@@ -17,8 +19,8 @@ require 'HttpAuthed_spec'
17
19
 
18
20
  RSpec.describe MrMurano::Role do
19
21
  include_context 'WORKSPACE'
22
+
20
23
  before(:example) do
21
- MrMurano::SyncRoot.instance.reset
22
24
  $cfg = MrMurano::Config.new
23
25
  $cfg.load
24
26
  $cfg['net.host'] = 'bizapi.hosted.exosite.io'
@@ -29,6 +31,10 @@ RSpec.describe MrMurano::Role do
29
31
  MrMurano::HttpAuthed.instance.instance_variable_set(:@token_biz, 'TTTTTTTTTT')
30
32
  end
31
33
 
34
+ after(:example) do
35
+ WebMock.reset!
36
+ end
37
+
32
38
  it 'initializes' do
33
39
  uri = @srv.endpoint('/')
34
40
  expect(uri.to_s).to eq(
@@ -6,7 +6,9 @@
6
6
  # Unauthorized copying of this file is strictly prohibited.
7
7
 
8
8
  require 'tempfile'
9
+ require 'webmock'
9
10
  require 'yaml'
11
+
10
12
  require 'MrMurano/version'
11
13
  require 'MrMurano/HttpAuthed'
12
14
  require 'MrMurano/ProjectFile'
@@ -17,15 +19,17 @@ require 'HttpAuthed_spec'
17
19
 
18
20
  RSpec.describe MrMurano::Solution do
19
21
  include_context 'WORKSPACE'
22
+
20
23
  before(:example) do
21
- MrMurano::SyncRoot.instance.reset
22
24
  $cfg = MrMurano::Config.new
23
25
  $cfg.load
26
+
24
27
  $project = MrMurano::ProjectFile.new
25
28
  $project.load
26
29
  $cfg['net.host'] = 'bizapi.hosted.exosite.io'
27
30
  $cfg['product.id'] = 'XYZ'
28
31
  $cfg['application.id'] = 'XYZ'
32
+
29
33
  stub_request_email_password
30
34
 
31
35
  # NOTE: This test works on either Product or Application.
@@ -36,6 +40,10 @@ RSpec.describe MrMurano::Solution do
36
40
  MrMurano::HttpAuthed.instance.instance_variable_set(:@token_biz, 'TTTTTTTTTT')
37
41
  end
38
42
 
43
+ after(:example) do
44
+ WebMock.reset!
45
+ end
46
+
39
47
  it 'initializes' do
40
48
  uri = @srv.endpoint('/')
41
49
  expect(uri.to_s).to eq(
@@ -15,12 +15,8 @@ require '_workspace'
15
15
  RSpec.describe MrMurano::SyncRoot do
16
16
  include_context 'WORKSPACE'
17
17
 
18
- after(:example) do
19
- MrMurano::SyncRoot.instance.reset
20
- end
21
-
22
18
  before(:example) do
23
- MrMurano::SyncRoot.instance.reset # also creates @@syncset
19
+ @syncsetypes = MrMurano::SyncRoot.instance.reset # also creates @@syncset
24
20
  # Weird/2017-07-31: I [lb] must[ve changed something, because this
25
21
  # block being called twice, which is generating a warning:
26
22
  # /exo/clients/exosite/MuranoCLIs/MuranoCLI+landonb/spec/SyncRoot_spec.rb:30:
@@ -60,6 +56,10 @@ RSpec.describe MrMurano::SyncRoot do
60
56
  end
61
57
  end
62
58
 
59
+ after(:example) do
60
+ MrMurano::SyncRoot.instance.reset(@syncsetypes)
61
+ end
62
+
63
63
  it 'has defaults' do
64
64
  ret = MrMurano::SyncRoot.instance.bydefault
65
65
  expect(ret).to eq(['user'])
@@ -11,7 +11,9 @@ require 'MrMurano/version'
11
11
  require 'MrMurano/Config'
12
12
  require 'MrMurano/ProjectFile'
13
13
  require 'MrMurano/SyncRoot'
14
+ require 'MrMurano/Solution-Services'
14
15
  require 'MrMurano/SyncUpDown'
16
+ require 'MrMurano/SyncUpDown-Item'
15
17
  require '_workspace'
16
18
 
17
19
  class TSUD
@@ -35,6 +37,7 @@ class TSUD
35
37
  end
36
38
 
37
39
  def fetch(id, _untainted=false)
40
+ # pass
38
41
  end
39
42
 
40
43
  def self.description
@@ -50,10 +53,27 @@ end
50
53
 
51
54
  ITEM_UPDATED_AT = '2017-06-24T00:45:15.564Z'
52
55
 
56
+ def expect_status_match_arrs(ret_arr, want_arr)
57
+ ret_arr.each_with_index do |ret_item, index|
58
+ want_item = want_arr[index]
59
+ ret_item.each_pair do |key, val|
60
+ expect(val).to match(want_item[key])
61
+ end
62
+ end
63
+ end
64
+
65
+ def expect_status_match_lkup(ret, want)
66
+ # Need to tediously iterate, else Item object ID and local_path are flagged.
67
+ (ret.keys + want.keys).to_set.each do |category|
68
+ expect(ret[category].length).to eq(want[category].length)
69
+ expect_status_match_arrs(ret[category], want[category])
70
+ end
71
+ end
72
+
53
73
  RSpec.describe MrMurano::SyncUpDown do
54
74
  include_context 'WORKSPACE'
75
+
55
76
  before(:example) do
56
- MrMurano::SyncRoot.instance.reset
57
77
  $cfg = MrMurano::Config.new
58
78
  $cfg.load
59
79
  $project = MrMurano::ProjectFile.new
@@ -67,9 +87,9 @@ RSpec.describe MrMurano::SyncUpDown do
67
87
 
68
88
  context 'status' do
69
89
  it 'warns with missing directory' do
70
- t = TSUD.new
71
- expect(t).to receive(:warning).once.with(/Skipping missing location.*/)
72
- ret = t.status
90
+ tsud = TSUD.new
91
+ expect(tsud).to receive(:warning).once.with(/Skipping missing location.*/)
92
+ ret = tsud.status
73
93
  expect(ret).to eq(
74
94
  toadd: [], todel: [], tomod: [], unchg: [], skipd: [], clash: []
75
95
  )
@@ -77,8 +97,8 @@ RSpec.describe MrMurano::SyncUpDown do
77
97
 
78
98
  it 'finds nothing in empty directory' do
79
99
  FileUtils.mkpath(@project_dir + '/tsud')
80
- t = TSUD.new
81
- ret = t.status
100
+ tsud = TSUD.new
101
+ ret = tsud.status
82
102
  expect(ret).to eq(
83
103
  toadd: [], todel: [], tomod: [], unchg: [], skipd: [], clash: []
84
104
  )
@@ -86,205 +106,218 @@ RSpec.describe MrMurano::SyncUpDown do
86
106
 
87
107
  it 'finds things there but not here' do
88
108
  FileUtils.mkpath(@project_dir + '/tsud')
89
- t = TSUD.new
90
- expect(t).to receive(:list).once.and_return(
109
+ tsud = TSUD.new
110
+ expect(tsud).to receive(:list).once.and_return(
91
111
  [
92
- { name: 1 },
93
- { name: 2 },
94
- { name: 3 },
112
+ MrMurano::SyncUpDown::Item.new(name: 1),
113
+ MrMurano::SyncUpDown::Item.new(name: 2),
114
+ MrMurano::SyncUpDown::Item.new(name: 3),
95
115
  ]
96
116
  )
97
- ret = t.status
98
- expect(ret).to eq(
117
+ want = {
99
118
  toadd: [],
100
119
  todel: [
101
- {
120
+ MrMurano::SyncUpDown::Item.new(
102
121
  name: 1,
103
122
  synckey: 1,
104
123
  synctype: TSUD.description,
105
- },
106
- {
124
+ ),
125
+ MrMurano::SyncUpDown::Item.new(
107
126
  name: 2,
108
127
  synckey: 2,
109
128
  synctype: TSUD.description,
110
- },
111
- {
129
+ ),
130
+ MrMurano::SyncUpDown::Item.new(
112
131
  name: 3,
113
132
  synckey: 3,
114
133
  synctype: TSUD.description,
115
- },
134
+ ),
116
135
  ],
117
136
  tomod: [],
118
137
  unchg: [],
119
138
  skipd: [],
120
- clash: []
121
- )
139
+ clash: [],
140
+ }
141
+ ret = tsud.status
142
+ expect_status_match_lkup(ret, want)
122
143
  end
123
144
 
124
145
  it 'finds things there but not here; asdown' do
125
146
  FileUtils.mkpath(@project_dir + '/tsud')
126
- t = TSUD.new
127
- expect(t).to receive(:list).once.and_return(
147
+ tsud = TSUD.new
148
+ expect(tsud).to receive(:list).once.and_return(
128
149
  [
129
- { name: 1 },
130
- { name: 2 },
131
- { name: 3 },
150
+ MrMurano::SyncUpDown::Item.new(name: 1),
151
+ MrMurano::SyncUpDown::Item.new(name: 2),
152
+ MrMurano::SyncUpDown::Item.new(name: 3),
132
153
  ]
133
154
  )
134
- ret = t.status(asdown: true)
135
- expect(ret).to eq(
155
+ want = {
136
156
  todel: [],
137
157
  toadd: [
138
- { name: 1, synckey: 1, synctype: TSUD.description },
139
- { name: 2, synckey: 2, synctype: TSUD.description },
140
- { name: 3, synckey: 3, synctype: TSUD.description },
158
+ MrMurano::SyncUpDown::Item.new(
159
+ name: 1, synckey: 1, synctype: TSUD.description,
160
+ ),
161
+ MrMurano::SyncUpDown::Item.new(
162
+ name: 2, synckey: 2, synctype: TSUD.description,
163
+ ),
164
+ MrMurano::SyncUpDown::Item.new(
165
+ name: 3, synckey: 3, synctype: TSUD.description,
166
+ ),
141
167
  ],
142
168
  tomod: [],
143
169
  unchg: [],
144
170
  skipd: [],
145
- clash: []
146
- )
171
+ clash: [],
172
+ }
173
+ ret = tsud.status(asdown: true)
174
+ expect_status_match_lkup(ret, want)
147
175
  end
148
176
 
149
177
  it 'finds things here but not there' do
150
178
  FileUtils.mkpath(@project_dir + '/tsud')
151
179
  FileUtils.touch(@project_dir + '/tsud/one.lua')
152
180
  FileUtils.touch(@project_dir + '/tsud/two.lua')
153
- t = TSUD.new
154
- expect(t).to receive(:to_remote_item).and_return(
155
- { name: 'one.lua' },
156
- name: 'two.lua',
181
+ tsud = TSUD.new
182
+ expect(tsud).to receive(:to_remote_items).and_return(
183
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
184
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
157
185
  )
158
- ret = t.status
159
- expect(ret).to match(
186
+ want = {
160
187
  toadd: [
161
- {
188
+ MrMurano::SyncUpDown::Item.new(
162
189
  name: 'one.lua',
163
190
  synckey: 'one.lua',
164
191
  synctype: TSUD.description,
165
192
  local_path: an_instance_of(Pathname),
166
- },
167
- {
193
+ ),
194
+ MrMurano::SyncUpDown::Item.new(
168
195
  name: 'two.lua',
169
196
  synckey: 'two.lua',
170
197
  synctype: TSUD.description,
171
198
  local_path: an_instance_of(Pathname),
172
- },
199
+ ),
173
200
  ],
174
201
  todel: [],
175
202
  tomod: [],
176
203
  unchg: [],
177
204
  skipd: [],
178
- clash: []
179
- )
205
+ clash: [],
206
+ }
207
+ ret = tsud.status
208
+ expect_status_match_lkup(ret, want)
180
209
  end
181
210
 
182
- it 'finds things here and there' do
211
+ it 'finds things here and there; and they are different' do
183
212
  FileUtils.mkpath(@project_dir + '/tsud')
184
213
  FileUtils.touch(@project_dir + '/tsud/one.lua')
185
214
  FileUtils.touch(@project_dir + '/tsud/two.lua')
186
- t = TSUD.new
187
- expect(t).to receive(:list).once.and_return(
215
+ tsud = TSUD.new
216
+ expect(tsud).to receive(:list).once.and_return(
188
217
  [
189
- { name: 'one.lua' },
190
- { name: 'two.lua' },
218
+ MrMurano::EventHandler::EventHandlerItem.new(name: 'one.lua'),
219
+ MrMurano::EventHandler::EventHandlerItem.new(name: 'two.lua'),
191
220
  ]
192
221
  )
193
- expect(t).to receive(:to_remote_item).and_return(
194
- { name: 'one.lua' },
195
- name: 'two.lua',
222
+ expect(tsud).to receive(:to_remote_items).and_return(
223
+ [MrMurano::EventHandler::EventHandlerItem.new(name: 'one.lua')],
224
+ [MrMurano::EventHandler::EventHandlerItem.new(name: 'two.lua')],
196
225
  )
197
- ret = t.status
198
- expect(ret).to match(
226
+ want = {
199
227
  tomod: [
200
- {
228
+ MrMurano::EventHandler::EventHandlerItem.new(
201
229
  name: 'one.lua',
202
230
  synckey: 'one.lua',
203
231
  synctype: TSUD.description,
204
232
  local_path: an_instance_of(Pathname),
205
- },
206
- {
233
+ ),
234
+ MrMurano::EventHandler::EventHandlerItem.new(
207
235
  name: 'two.lua',
208
236
  synckey: 'two.lua',
209
237
  synctype: TSUD.description,
210
238
  local_path: an_instance_of(Pathname),
211
- },
239
+ ),
212
240
  ],
213
241
  todel: [],
214
242
  toadd: [],
215
243
  unchg: [],
216
244
  skipd: [],
217
- clash: []
218
- )
245
+ clash: [],
246
+ }
247
+ ret = tsud.status
248
+ expect_status_match_lkup(ret, want)
219
249
  end
250
+
220
251
  it "finds things here and there; but they're the same" do
221
252
  FileUtils.mkpath(@project_dir + '/tsud')
222
253
  FileUtils.touch(@project_dir + '/tsud/one.lua')
223
254
  FileUtils.touch(@project_dir + '/tsud/two.lua')
224
- t = TSUD.new
225
- expect(t).to receive(:list).once.and_return(
255
+ tsud = TSUD.new
256
+ expect(tsud).to receive(:list).once.and_return(
226
257
  [
227
- { name: 'one.lua' },
228
- { name: 'two.lua' },
258
+ MrMurano::SyncUpDown::Item.new(name: 'one.lua'),
259
+ MrMurano::SyncUpDown::Item.new(name: 'two.lua'),
229
260
  ]
230
261
  )
231
- expect(t).to receive(:to_remote_item).and_return(
232
- { name: 'one.lua' },
233
- name: 'two.lua',
262
+ expect(tsud).to receive(:to_remote_items).and_return(
263
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
264
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
234
265
  )
235
- expect(t).to receive(:docmp).twice.and_return(false)
236
- ret = t.status
237
- expect(ret).to match(
266
+ expect(tsud).to receive(:docmp).twice.and_return(false)
267
+ want = {
238
268
  unchg: [
239
- {
269
+ MrMurano::SyncUpDown::Item.new(
240
270
  name: 'one.lua',
241
271
  synckey: 'one.lua',
242
272
  synctype: TSUD.description,
243
273
  local_path: an_instance_of(Pathname),
244
- },
245
- {
274
+ ),
275
+ MrMurano::SyncUpDown::Item.new(
246
276
  name: 'two.lua',
247
277
  synckey: 'two.lua',
248
278
  synctype: TSUD.description,
249
279
  local_path: an_instance_of(Pathname),
250
- },
280
+ ),
251
281
  ],
252
282
  todel: [],
253
283
  toadd: [],
254
284
  tomod: [],
255
285
  skipd: [],
256
- clash: []
257
- )
286
+ clash: [],
287
+ }
288
+ ret = tsud.status
289
+ expect_status_match_lkup(ret, want)
258
290
  end
259
291
 
260
292
  it 'calls diff' do
261
293
  FileUtils.mkpath(@project_dir + '/tsud')
262
294
  FileUtils.touch(@project_dir + '/tsud/one.lua')
263
- t = TSUD.new
264
- expect(t).to receive(:list).once.and_return([
265
- { name: 'one.lua' },
266
- ])
267
- expect(t).to receive(:to_remote_item).and_return(
268
- name: 'one.lua'
295
+ tsud = TSUD.new
296
+ expect(tsud).to receive(:list).once.and_return(
297
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
269
298
  )
270
- expect(t).to receive(:dodiff).once.and_return('diffed output')
271
- ret = t.status(diff: true)
272
- expect(ret).to match(
299
+ expect(tsud).to receive(:to_remote_items).and_return(
300
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')]
301
+ )
302
+ expect(tsud).to receive(:dodiff).once.and_return('diffed output')
303
+ want = {
273
304
  tomod: [
274
- {
305
+ MrMurano::SyncUpDown::Item.new(
275
306
  name: 'one.lua',
276
307
  synckey: 'one.lua',
277
308
  synctype: TSUD.description,
278
309
  local_path: an_instance_of(Pathname),
279
310
  diff: 'diffed output',
280
- },
311
+ ),
281
312
  ],
282
313
  todel: [],
283
314
  toadd: [],
284
315
  unchg: [],
285
316
  skipd: [],
286
- clash: []
287
- )
317
+ clash: [],
318
+ }
319
+ ret = tsud.status(diff: true)
320
+ expect_status_match_lkup(ret, want)
288
321
  end
289
322
 
290
323
  context 'Filtering' do
@@ -297,8 +330,8 @@ RSpec.describe MrMurano::SyncUpDown do
297
330
  FileUtils.touch(@project_dir + '/tsud/gb/four.lua') # unchg
298
331
  FileUtils.touch(@project_dir + '/tsud/five.lua') # toadd
299
332
  FileUtils.touch(@project_dir + '/tsud/ga/six.lua') # toadd
300
- @t = TSUD.new
301
- expect(@t).to receive(:list).once.and_return(
333
+ @tsud = TSUD.new
334
+ expect(@tsud).to receive(:list).once.and_return(
302
335
  [
303
336
  MrMurano::SyncUpDown::Item.new(
304
337
  name: 'eight.lua', updated_at: ITEM_UPDATED_AT
@@ -321,65 +354,77 @@ RSpec.describe MrMurano::SyncUpDown do
321
354
  ]
322
355
  )
323
356
 
324
- expect(@t).to receive(:to_remote_item)
357
+ expect(@tsud).to receive(:to_remote_items)
325
358
  .with(anything, pathname_globs('**/one.lua'))
326
359
  .and_return(
327
- MrMurano::SyncUpDown::Item.new(
328
- name: 'one.lua', updated_at: ITEM_UPDATED_AT
329
- )
360
+ [
361
+ MrMurano::SyncUpDown::Item.new(
362
+ name: 'one.lua', updated_at: ITEM_UPDATED_AT
363
+ ),
364
+ ]
330
365
  )
331
- expect(@t).to receive(:to_remote_item)
366
+ expect(@tsud).to receive(:to_remote_items)
332
367
  .with(anything, pathname_globs('**/two.lua'))
333
368
  .and_return(
334
- MrMurano::SyncUpDown::Item.new(
335
- name: 'two.lua', updated_at: ITEM_UPDATED_AT
336
- )
369
+ [
370
+ MrMurano::SyncUpDown::Item.new(
371
+ name: 'two.lua', updated_at: ITEM_UPDATED_AT
372
+ ),
373
+ ]
337
374
  )
338
- expect(@t).to receive(:to_remote_item)
375
+ expect(@tsud).to receive(:to_remote_items)
339
376
  .with(anything, pathname_globs('**/three.lua'))
340
377
  .and_return(
341
- MrMurano::SyncUpDown::Item.new(
342
- name: 'three.lua', updated_at: ITEM_UPDATED_AT
343
- )
378
+ [
379
+ MrMurano::SyncUpDown::Item.new(
380
+ name: 'three.lua', updated_at: ITEM_UPDATED_AT
381
+ ),
382
+ ]
344
383
  )
345
- expect(@t).to receive(:to_remote_item)
384
+ expect(@tsud).to receive(:to_remote_items)
346
385
  .with(anything, pathname_globs('**/four.lua'))
347
386
  .and_return(
348
- MrMurano::SyncUpDown::Item.new(
349
- name: 'four.lua', updated_at: ITEM_UPDATED_AT
350
- )
387
+ [
388
+ MrMurano::SyncUpDown::Item.new(
389
+ name: 'four.lua', updated_at: ITEM_UPDATED_AT
390
+ ),
391
+ ]
351
392
  )
352
- expect(@t).to receive(:to_remote_item)
393
+ expect(@tsud).to receive(:to_remote_items)
353
394
  .with(anything, pathname_globs('**/five.lua'))
354
395
  .and_return(
355
- MrMurano::SyncUpDown::Item.new(
356
- name: 'five.lua', updated_at: ITEM_UPDATED_AT
357
- )
396
+ [
397
+ MrMurano::SyncUpDown::Item.new(
398
+ name: 'five.lua', updated_at: ITEM_UPDATED_AT
399
+ ),
400
+ ]
358
401
  )
359
- expect(@t).to receive(:to_remote_item)
402
+ expect(@tsud).to receive(:to_remote_items)
360
403
  .with(anything, pathname_globs('**/six.lua'))
361
404
  .and_return(
362
- MrMurano::SyncUpDown::Item.new(
363
- name: 'six.lua', updated_at: ITEM_UPDATED_AT
364
- )
405
+ [
406
+ MrMurano::SyncUpDown::Item.new(
407
+ name: 'six.lua', updated_at: ITEM_UPDATED_AT
408
+ ),
409
+ ]
365
410
  )
366
411
 
367
- expect(@t).to receive(:docmp)
412
+ expect(@tsud).to receive(:docmp)
368
413
  .with(have_attributes(name: 'one.lua'), anything)
369
414
  .and_return(true)
370
- expect(@t).to receive(:docmp)
415
+ expect(@tsud).to receive(:docmp)
371
416
  .with(have_attributes(name: 'two.lua'), anything)
372
417
  .and_return(true)
373
- expect(@t).to receive(:docmp)
418
+ expect(@tsud).to receive(:docmp)
374
419
  .with(have_attributes(name: 'three.lua'), anything)
375
420
  .and_return(false)
376
- expect(@t).to receive(:docmp)
421
+ expect(@tsud).to receive(:docmp)
377
422
  .with(have_attributes(name: 'four.lua'), anything)
378
423
  .and_return(false)
379
424
  end
380
425
 
381
426
  it 'Returns all with no filter' do
382
- ret = @t.status
427
+ ret = @tsud.status
383
428
  expect(ret).to match(
384
429
  unchg: [
385
430
  have_attributes(
@@ -441,7 +486,7 @@ RSpec.describe MrMurano::SyncUpDown do
441
486
  end
442
487
 
443
488
  it 'Finds local path globs' do
444
- ret = @t.status({}, ['**/ga/*.lua'])
489
+ ret = @tsud.status({}, ['**/ga/*.lua'])
445
490
  expect(ret).to match(
446
491
  unchg: [],
447
492
  toadd: [
@@ -467,7 +512,7 @@ RSpec.describe MrMurano::SyncUpDown do
467
512
  end
468
513
 
469
514
  it 'Finds nothing with specific matcher' do
470
- ret = @t.status({}, ['#foo'])
515
+ ret = @tsud.status({}, ['#foo'])
471
516
  expect(ret).to match(
472
517
  unchg: [],
473
518
  toadd: [],
@@ -479,7 +524,7 @@ RSpec.describe MrMurano::SyncUpDown do
479
524
  end
480
525
 
481
526
  it 'gets all the details' do
482
- ret = @t.status(unselected: true)
527
+ ret = @tsud.status(unselected: true)
483
528
  expect(ret).to match(
484
529
  unchg: [
485
530
  have_attributes(
@@ -555,60 +600,58 @@ RSpec.describe MrMurano::SyncUpDown do
555
600
  FileUtils.mkpath('tsud')
556
601
  FileUtils.touch('tsud/one.lua')
557
602
  FileUtils.touch('tsud/two.lua')
558
- @t = TSUD.new
603
+ @tsud = TSUD.new
559
604
  end
560
605
  it 'finds local items' do
561
- expect(@t).to receive(:to_remote_item).and_return(
562
- { name: 'one.lua' },
563
- name: 'two.lua',
564
- )
565
- ret = @t.localitems(Pathname.new(@project_dir + '/tsud').realpath)
566
- expect(ret).to match(
567
- [
568
- {
569
- name: 'one.lua',
570
- local_path: an_instance_of(Pathname),
571
- },
572
- {
573
- name: 'two.lua',
574
- local_path: an_instance_of(Pathname),
575
- },
576
- ]
606
+ expect(@tsud).to receive(:to_remote_items).and_return(
607
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
608
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
577
609
  )
610
+ want = [
611
+ MrMurano::SyncUpDown::Item.new(
612
+ name: 'one.lua',
613
+ local_path: an_instance_of(Pathname),
614
+ ),
615
+ MrMurano::SyncUpDown::Item.new(
616
+ name: 'two.lua',
617
+ local_path: an_instance_of(Pathname),
618
+ ),
619
+ ]
620
+ ret = @tsud.localitems(Pathname.new(@project_dir + '/tsud').realpath)
621
+ expect_status_match_arrs(ret, want)
578
622
  end
579
623
 
580
- it 'takes an array from to_remote_item' do
581
- expect(@t).to receive(:to_remote_item).and_return(
624
+ it 'takes an array from to_remote_items' do
625
+ expect(@tsud).to receive(:to_remote_items).and_return(
582
626
  [
583
- { name: 'one:1' },
584
- { name: 'one:2' },
627
+ MrMurano::SyncUpDown::Item.new(name: 'one:1'),
628
+ MrMurano::SyncUpDown::Item.new(name: 'one:2'),
585
629
  ],
586
630
  [
587
- { name: 'two:1' },
588
- { name: 'two:2' },
631
+ MrMurano::SyncUpDown::Item.new(name: 'two:1'),
632
+ MrMurano::SyncUpDown::Item.new(name: 'two:2'),
589
633
  ],
590
634
  )
591
- ret = @t.localitems(Pathname.new(@project_dir + '/tsud').realpath)
592
- expect(ret).to match(
593
- [
594
- {
595
- name: 'one:1',
596
- local_path: an_instance_of(Pathname),
597
- },
598
- {
599
- name: 'one:2',
600
- local_path: an_instance_of(Pathname),
601
- },
602
- {
603
- name: 'two:1',
604
- local_path: an_instance_of(Pathname),
605
- },
606
- {
607
- name: 'two:2',
608
- local_path: an_instance_of(Pathname),
609
- },
610
- ]
611
- )
635
+ want = [
636
+ MrMurano::SyncUpDown::Item.new(
637
+ name: 'one:1',
638
+ local_path: an_instance_of(Pathname),
639
+ ),
640
+ MrMurano::SyncUpDown::Item.new(
641
+ name: 'one:2',
642
+ local_path: an_instance_of(Pathname),
643
+ ),
644
+ MrMurano::SyncUpDown::Item.new(
645
+ name: 'two:1',
646
+ local_path: an_instance_of(Pathname),
647
+ ),
648
+ MrMurano::SyncUpDown::Item.new(
649
+ name: 'two:2',
650
+ local_path: an_instance_of(Pathname),
651
+ ),
652
+ ]
653
+ ret = @tsud.localitems(Pathname.new(@project_dir + '/tsud').realpath)
654
+ expect_status_match_arrs(ret, want)
612
655
  end
613
656
  end
614
657
 
@@ -617,24 +660,24 @@ RSpec.describe MrMurano::SyncUpDown do
617
660
  FileUtils.mkpath(@project_dir + '/tsud')
618
661
  FileUtils.touch(@project_dir + '/tsud/one.lua')
619
662
  lp = Pathname.new(@project_dir + '/tsud/one.lua').realpath
620
- t = TSUD.new
621
- expect(t).to receive(:fetch).once.with(1).and_yield('foo')
622
- t.download(lp, id: 1, updated_at: ITEM_UPDATED_AT)
663
+ tsud = TSUD.new
664
+ expect(tsud).to receive(:fetch).once.with(1, false).and_yield('foo')
665
+ tsud.download(lp, id: 1, updated_at: ITEM_UPDATED_AT)
623
666
  end
624
667
  end
625
668
 
626
669
  context 'doing diffs' do
627
670
  before(:example) do
628
671
  FileUtils.mkpath(@project_dir + '/tsud')
629
- @t = TSUD.new
672
+ @tsud = TSUD.new
630
673
  @scpt = Pathname.new(@project_dir + '/tsud/one.lua')
631
674
  @scpt.open('w') { |io| io << %(-- fake lua\nreturn 0\n) }
632
675
  @scpt = @scpt.realpath
633
676
  end
634
677
 
635
678
  it 'nothing when same.' do
636
- expect(@t).to receive(:fetch).and_yield(%(-- fake lua\nreturn 0\n))
637
- ret = @t.dodiff(
679
+ expect(@tsud).to receive(:fetch).and_yield(%(-- fake lua\nreturn 0\n))
680
+ ret = @tsud.dodiff(
638
681
  {
639
682
  name: 'one.lua',
640
683
  local_path: @scpt,
@@ -650,8 +693,8 @@ RSpec.describe MrMurano::SyncUpDown do
650
693
  end
651
694
 
652
695
  it 'something when different.' do
653
- expect(@t).to receive(:fetch).and_yield(%(-- fake lua\nreturn 2\n))
654
- ret = @t.dodiff(
696
+ expect(@tsud).to receive(:fetch).and_yield(%(-- fake lua\nreturn 2\n))
697
+ ret = @tsud.dodiff(
655
698
  {
656
699
  name: 'one.lua',
657
700
  local_path: @scpt,
@@ -664,8 +707,8 @@ RSpec.describe MrMurano::SyncUpDown do
664
707
 
665
708
  it 'uses script in item' do
666
709
  script = %(-- fake lua\nreturn 2\n)
667
- expect(@t).to receive(:fetch).and_yield(script)
668
- ret = @t.dodiff(
710
+ expect(@tsud).to receive(:fetch).and_yield(script)
711
+ ret = @tsud.dodiff(
669
712
  {
670
713
  name: 'one.lua',
671
714
  local_path: @scpt,
@@ -685,76 +728,79 @@ RSpec.describe MrMurano::SyncUpDown do
685
728
  context 'syncup' do
686
729
  before(:example) do
687
730
  FileUtils.mkpath(@project_dir + '/tsud')
688
- @t = TSUD.new
731
+ @tsud = TSUD.new
689
732
  end
690
733
 
691
734
  it 'removes' do
692
- expect(@t).to receive(:list).once.and_return(
735
+ expect(@tsud).to receive(:list).once.and_return(
693
736
  [
694
- { name: 1 },
695
- { name: 2 },
696
- { name: 3 },
737
+ MrMurano::SyncUpDown::Item.new(name: 1),
738
+ MrMurano::SyncUpDown::Item.new(name: 2),
739
+ MrMurano::SyncUpDown::Item.new(name: 3),
697
740
  ]
698
741
  )
699
- expect(@t).to receive(:remove).exactly(3).times
700
- @t.syncup(delete: true)
742
+ expect(@tsud).to receive(:remove).exactly(3).times
743
+ @tsud.syncup(delete: true)
701
744
  end
702
745
 
703
746
  it 'creates' do
704
747
  FileUtils.touch(@project_dir + '/tsud/one.lua')
705
748
  FileUtils.touch(@project_dir + '/tsud/two.lua')
706
749
 
707
- expect(@t).to receive(:upload).twice
708
- .with(kind_of(Pathname), kind_of(MrMurano::SyncUpDown::Item), false)
709
- @t.syncup(create: true)
750
+ expect(@tsud).to receive(
751
+ :upload
752
+ ).twice.with(
753
+ kind_of(Pathname), kind_of(MrMurano::SyncUpDown::Item), false
754
+ )
755
+ @tsud.syncup(create: true)
710
756
  end
711
757
 
712
758
  it 'updates' do
713
759
  FileUtils.touch(@project_dir + '/tsud/one.lua')
714
760
  FileUtils.touch(@project_dir + '/tsud/two.lua')
715
- expect(@t).to receive(:list).once.and_return(
761
+ expect(@tsud).to receive(:list).once.and_return(
716
762
  [
717
763
  MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
718
764
  MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
719
765
  ]
720
766
  )
721
767
 
722
- expect(@t).to receive(:upload).twice.with(
768
+ expect(@tsud).to receive(:upload).twice.with(
723
769
  kind_of(Pathname), kind_of(MrMurano::SyncUpDown::Item), true
724
770
  )
725
- expect(@t).to receive(:to_remote_item).and_return(
726
- { name: 'one.lua' },
727
- name: 'two.lua',
771
+ expect(@tsud).to receive(:to_remote_items).and_return(
772
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
773
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
728
774
  )
729
- @t.syncup(update: true)
775
+ @tsud.syncup(update: true)
730
776
  end
731
777
  end
732
778
 
733
779
  context 'syncdown' do
734
780
  before(:example) do
735
781
  FileUtils.mkpath(@project_dir + '/tsud')
736
- @t = TSUD.new
782
+ @tsud = TSUD.new
737
783
  end
738
784
 
739
785
  it 'removes' do
740
786
  FileUtils.touch(@project_dir + '/tsud/one.lua')
741
787
  FileUtils.touch(@project_dir + '/tsud/two.lua')
742
788
 
743
- @t.syncdown(delete: true)
789
+ @tsud.syncdown(delete: true)
744
790
  expect(FileTest.exist?(@project_dir + '/tsud/one.lua')).to be false
745
791
  expect(FileTest.exist?(@project_dir + '/tsud/two.lua')).to be false
746
792
  end
747
793
 
748
794
  it 'creates' do
749
- expect(@t).to receive(:list).once.and_return(
795
+ expect(@tsud).to receive(:list).once.and_return(
750
796
  [
751
797
  MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
752
798
  MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
753
799
  ]
754
800
  )
755
801
 
756
- expect(@t).to receive(:fetch).twice.and_yield("--foo\n")
757
- @t.syncdown(create: true)
802
+ expect(@tsud).to receive(:fetch).twice.and_yield("--foo\n")
803
+ @tsud.syncdown(create: true)
758
804
  expect(FileTest.exist?(@project_dir + '/tsud/one.lua')).to be true
759
805
  expect(FileTest.exist?(@project_dir + '/tsud/two.lua')).to be true
760
806
  end
@@ -762,19 +808,23 @@ RSpec.describe MrMurano::SyncUpDown do
762
808
  it 'updates' do
763
809
  FileUtils.touch(@project_dir + '/tsud/one.lua')
764
810
  FileUtils.touch(@project_dir + '/tsud/two.lua')
765
- expect(@t).to receive(:list).once.and_return(
811
+ expect(@tsud).to receive(:list).once.and_return(
766
812
  [
767
813
  MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
768
814
  MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
769
815
  ]
770
816
  )
771
817
 
772
- expect(@t).to receive(:fetch).twice.and_yield("--foo\n")
773
- expect(@t).to receive(:to_remote_item).and_return(
774
- MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
775
- MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT)
818
+ expect(@tsud).to receive(:fetch).twice.and_yield("--foo\n")
819
+ expect(@tsud).to receive(:to_remote_items).and_return(
820
+ [
821
+ MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
822
+ ],
823
+ [
824
+ MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
825
+ ],
776
826
  )
777
- @t.syncdown(update: true)
827
+ @tsud.syncdown(update: true)
778
828
  expect(FileTest.exist?(@project_dir + '/tsud/one.lua')).to be true
779
829
  expect(FileTest.exist?(@project_dir + '/tsud/two.lua')).to be true
780
830
  end
@@ -784,17 +834,18 @@ RSpec.describe MrMurano::SyncUpDown do
784
834
  # before(:example) do
785
835
  # FileUtils.mkpath(@project_dir + '/tsud')
786
836
  # FileUtils.mkpath(@project_dir + '/bundles/mybun/tsud')
787
- # @t = TSUD.new
837
+ # @tsud = TSUD.new
788
838
  # end
789
839
  #
790
840
  # it "finds items in bundles." do
791
841
  # FileUtils.touch(@project_dir + '/tsud/one.lua')
792
842
  # FileUtils.touch(@project_dir + '/bundles/mybun/tsud/two.lua')
793
843
  #
794
- # expect(@t).to receive(:to_remote_item).and_return(
795
- # {name: 'two.lua'},{name: 'one.lua'}
844
+ # expect(@tsud).to receive(:to_remote_items).and_return(
845
+ # [{name: 'two.lua'}],
846
+ # [{name: 'one.lua'}],
796
847
  # )
797
- # ret = @t.locallist
848
+ # ret = @tsud.locallist
798
849
  # expect(ret).to match([
799
850
  # {name: 'two.lua',
800
851
  # bundled: true,
@@ -808,9 +859,9 @@ RSpec.describe MrMurano::SyncUpDown do
808
859
  # FileUtils.touch(@project_dir + '/tsud/one.lua')
809
860
  # lp = Pathname.new(@project_dir + '/tsud/one.lua').realpath
810
861
  #
811
- # expect(@t).to receive(:warning).once.with(/Not downloading into bundled item.*/)
862
+ # expect(@tsud).to receive(:warning).once.with(/Not downloading into bundled item.*/)
812
863
  #
813
- # @t.download(lp, {bundled: true, name: 'one.lua'})
864
+ # @tsud.download(lp, {bundled: true, name: 'one.lua'})
814
865
  # end
815
866
  # end
816
867
  end