microstation 0.8.5 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +26 -29
  3. data/Rakefile +45 -44
  4. data/bin/dgn2pdf +5 -6
  5. data/bin/dgn_template +23 -25
  6. data/bin/pw_print +11 -13
  7. data/cad_files/drawing_no_block.dgn +0 -0
  8. data/cad_files/drawing_with_3_block.dgn +0 -0
  9. data/cad_files/drawing_with_block.dgn +0 -0
  10. data/cad_files/drawing_with_text.dgn +0 -0
  11. data/lib/microstation/app.rb +91 -87
  12. data/lib/microstation/cad_input_queue.rb +10 -20
  13. data/lib/microstation/cell.rb +6 -18
  14. data/lib/microstation/changer.rb +3 -3
  15. data/lib/microstation/configuration.rb +33 -50
  16. data/lib/microstation/criteria_creation_t.rb +4 -8
  17. data/lib/microstation/dir.rb +27 -59
  18. data/lib/microstation/directory.rb +2 -7
  19. data/lib/microstation/drawing.rb +103 -102
  20. data/lib/microstation/element.rb +55 -68
  21. data/lib/microstation/enumerator.rb +4 -9
  22. data/lib/microstation/errors.rb +0 -5
  23. data/lib/microstation/event_handler.rb +1 -5
  24. data/lib/microstation/ext/pathname.rb +12 -14
  25. data/lib/microstation/ext/win32ole.rb +0 -2
  26. data/lib/microstation/extensions/faa.rb +12 -34
  27. data/lib/microstation/file_tests.rb +15 -50
  28. data/lib/microstation/functions.rb +10 -20
  29. data/lib/microstation/graphics.rb +6 -13
  30. data/lib/microstation/line.rb +2 -6
  31. data/lib/microstation/model.rb +11 -20
  32. data/lib/microstation/model_trait.rb +40 -40
  33. data/lib/microstation/ole_cad_input_message.rb +25 -34
  34. data/lib/microstation/ole_helper.rb +58 -66
  35. data/lib/microstation/pdf_support.rb +7 -16
  36. data/lib/microstation/point3d.rb +17 -30
  37. data/lib/microstation/primitive_command_interface.rb +8 -14
  38. data/lib/microstation/properties.rb +29 -17
  39. data/lib/microstation/property_handler.rb +6 -8
  40. data/lib/microstation/scan/color.rb +1 -8
  41. data/lib/microstation/scan/criteria.rb +17 -33
  42. data/lib/microstation/scan/klass.rb +8 -12
  43. data/lib/microstation/scan/level.rb +2 -9
  44. data/lib/microstation/scan/line_style.rb +4 -12
  45. data/lib/microstation/scan/line_weight.rb +1 -3
  46. data/lib/microstation/scan/range.rb +2 -8
  47. data/lib/microstation/scan/scan_trait.rb +48 -51
  48. data/lib/microstation/scan/subtype.rb +0 -10
  49. data/lib/microstation/scan/type.rb +9 -15
  50. data/lib/microstation/scan_trait.rb +13 -20
  51. data/lib/microstation/scanner.rb +1 -11
  52. data/lib/microstation/tag.rb +12 -21
  53. data/lib/microstation/tag_set.rb +52 -71
  54. data/lib/microstation/tag_set_trait.rb +6 -10
  55. data/lib/microstation/tagged_element.rb +16 -28
  56. data/lib/microstation/template.rb +15 -14
  57. data/lib/microstation/template_info.rb +35 -49
  58. data/lib/microstation/template_runner.rb +14 -22
  59. data/lib/microstation/text.rb +15 -19
  60. data/lib/microstation/text_node.rb +17 -26
  61. data/lib/microstation/ts/attribute.rb +16 -20
  62. data/lib/microstation/ts/instance.rb +28 -38
  63. data/lib/microstation/ts/tagset_trait.rb +5 -12
  64. data/lib/microstation/types.rb +0 -3
  65. data/lib/microstation/version.rb +1 -3
  66. data/lib/microstation/wrap.rb +3 -10
  67. data/lib/microstation.rb +57 -72
  68. data/spec/microstation/app_spec.rb +49 -46
  69. data/spec/microstation/configuration_spec.rb +45 -43
  70. data/spec/microstation/drawing_spec.rb +103 -101
  71. data/spec/microstation/functions_spec.rb +18 -12
  72. data/spec/microstation/tag_set_spec.rb +57 -55
  73. data/spec/microstation/template_spec.rb +41 -42
  74. data/spec/microstation/text_node_spec.rb +16 -14
  75. data/spec/microstation/text_spec.rb +10 -8
  76. data/spec/microstation_spec.rb +18 -17
  77. data/spec/spec_helper.rb +18 -18
  78. metadata +36 -22
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../spec_helper'
3
+ require_relative "../spec_helper"
4
4
 
5
- $LOAD_PATH.unshift(File.join(__dir__, '../lib'))
5
+ $LOAD_PATH.unshift(File.join(__dir__, "../lib"))
6
6
 
7
7
  # require 'minitest/spec'
8
8
  # require 'minitest/autorun'
9
9
 
10
- describe 'Lets start the Microstation once' do
10
+ describe "Lets start the Microstation once" do
11
11
  include Minitest::Hooks
12
12
  before(:all) do
13
13
  @app = Microstation::App.new
@@ -15,75 +15,77 @@ describe 'Lets start the Microstation once' do
15
15
  end
16
16
 
17
17
  after(:all) do
18
- @app.quit rescue nil
18
+ @app.quit
19
+ rescue
20
+ nil
19
21
  end
20
22
 
21
- describe 'a drawing created with app.new drawing' do
22
- let(:drawing) { new_drawing('temp.dgn', seedfile: 'seed2d') }
23
+ describe "a drawing created with app.new drawing" do
24
+ let(:drawing) { new_drawing("temp.dgn", seedfile: "seed2d") }
23
25
 
24
- it 'should be active drawing' do
26
+ it "should be active drawing" do
25
27
  _(drawing).must_be :active?
26
28
  end
27
29
 
28
- it 'should have an ole_obj' do
30
+ it "should have an ole_obj" do
29
31
  _(drawing.ole_obj).must_be_instance_of WIN32OLE
30
32
  end
31
33
 
32
- describe '#author' do
34
+ describe "#author" do
33
35
  it "should be '' for new drawing" do
34
36
  skip
35
- _(drawing.author).must_equal ''
37
+ _(drawing.author).must_equal ""
36
38
  end
37
39
 
38
- it 'should set author if given a new author' do
39
- drawing.author = 'A newer author'
40
- _(drawing.author).must_equal 'A newer author'
40
+ it "should set author if given a new author" do
41
+ drawing.author = "A newer author"
42
+ _(drawing.author).must_equal "A newer author"
41
43
  end
42
44
  end
43
45
 
44
- describe '#title' do
46
+ describe "#title" do
45
47
  it "should be '' to start" do
46
- expect(drawing.title).must_equal('')
48
+ expect(drawing.title).must_equal("")
47
49
  end
48
50
 
49
- it 'should set title if given a new title' do
50
- drawing.title = 'a new title'
51
- expect(drawing.title).must_equal 'a new title'
51
+ it "should set title if given a new title" do
52
+ drawing.title = "a new title"
53
+ expect(drawing.title).must_equal "a new title"
52
54
  end
53
55
  end
54
56
 
55
- describe '#keywords' do
56
- it 'should be empty string to start' do
57
- _(drawing.keywords).must_equal ''
57
+ describe "#keywords" do
58
+ it "should be empty string to start" do
59
+ _(drawing.keywords).must_equal ""
58
60
  end
59
61
 
60
- it 'should set keywords if given a string of words' do
61
- drawing.keywords = 'project, rcl, new'
62
- _(drawing.keywords).must_equal 'project, rcl, new'
62
+ it "should set keywords if given a string of words" do
63
+ drawing.keywords = "project, rcl, new"
64
+ _(drawing.keywords).must_equal "project, rcl, new"
63
65
  end
64
66
  end
65
67
 
66
- describe '#comments' do
67
- it 'should be nil to start' do
68
- _(drawing.comments).must_equal ''
68
+ describe "#comments" do
69
+ it "should be nil to start" do
70
+ _(drawing.comments).must_equal ""
69
71
  end
70
72
 
71
- it 'should be able to be set' do
72
- drawing.comments = 'these are comments'
73
- _(drawing.comments).must_equal 'these are comments'
73
+ it "should be able to be set" do
74
+ drawing.comments = "these are comments"
75
+ _(drawing.comments).must_equal "these are comments"
74
76
  end
75
77
  end
76
78
 
77
- it 'should be able to save as pdf' do
79
+ it "should be able to save as pdf" do
78
80
  drawing.save_as_pdf
79
81
  end
80
82
 
81
- describe 'revision count' do
82
- it 'should have a revision_count' do
83
+ describe "revision count" do
84
+ it "should have a revision_count" do
83
85
  _(drawing).must_respond_to(:revision_count)
84
86
  end
85
87
 
86
- it 'should forward revision count to ole_obj' do
88
+ it "should forward revision count to ole_obj" do
87
89
  skip
88
90
  ole = drawing.ole_obj
89
91
  ole.stub :DesignRevisionCount, true do
@@ -92,38 +94,38 @@ describe 'Lets start the Microstation once' do
92
94
  end
93
95
  end
94
96
 
95
- describe 'pdf_name' do
96
- describe 'with no args' do
97
- it 'should equal the drawing path with ext changed' do
98
- drawing.stub(:name, 'Drawing Name.dgn') do
99
- _(drawing.pdf_name.to_s).must_equal 'Drawing Name.pdf'
97
+ describe "pdf_name" do
98
+ describe "with no args" do
99
+ it "should equal the drawing path with ext changed" do
100
+ drawing.stub(:name, "Drawing Name.dgn") do
101
+ _(drawing.pdf_name.to_s).must_equal "Drawing Name.pdf"
100
102
  end
101
103
  end
102
104
  end
103
105
 
104
- describe 'with arg for name' do
105
- it 'should equal the arg and the current directory' do
106
- _(drawing.pdf_name('my_drawing').to_s).must_equal('my_drawing.pdf')
106
+ describe "with arg for name" do
107
+ it "should equal the arg and the current directory" do
108
+ _(drawing.pdf_name("my_drawing").to_s).must_equal("my_drawing.pdf")
107
109
  end
108
110
  end
109
111
  end
110
112
 
111
- describe 'save_as_pdf' do
112
- it 'should find the pdf name with pdf_name rules' do
113
+ describe "save_as_pdf" do
114
+ it "should find the pdf name with pdf_name rules" do
113
115
  skip
114
116
  path = drawing.path
115
- _(drawing).to receive(:pdf_name).with('testfile', nil)
116
- drawing.save_as_pdf('testfile')
117
+ _(drawing).to receive(:pdf_name).with("testfile", nil)
118
+ drawing.save_as_pdf("testfile")
117
119
  end
118
120
  end
119
121
 
120
- describe 'scanning' do
121
- it 'should have a #create_scanner' do
122
+ describe "scanning" do
123
+ it "should have a #create_scanner" do
122
124
  scanner = drawing.create_scanner(:test)
123
125
  _(scanner).must_be_instance_of Microstation::Scan::Criteria
124
126
  end
125
127
 
126
- it 'should scan the drawing' do
128
+ it "should scan the drawing" do
127
129
  scanner = drawing.create_scanner(:test) do |scan|
128
130
  _(scan).must_be_instance_of Microstation::Scan::Criteria
129
131
  end
@@ -131,111 +133,111 @@ describe 'Lets start the Microstation once' do
131
133
  end
132
134
  end
133
135
 
134
- describe '#scan_text' do
135
- it 'only yields textual items' do
136
+ describe "#scan_text" do
137
+ it "only yields textual items" do
136
138
  drawing.scan_text do |item|
137
139
  _(item.class).must_equal(Microstation::Text || Microstation::TextNode)
138
140
  end
139
141
  end
140
142
  end
141
143
 
142
- describe '#update_tagset' do
143
- describe 'when 1 block exists' do
144
+ describe "#update_tagset" do
145
+ describe "when 1 block exists" do
144
146
  end
145
147
 
146
- describe 'when 1 block not in default drawing' do
147
- let(:drawing) { new_drawing('test.dgn', seedfile: 'drawing_faatitle_in_non_default_model.dgn') }
148
+ describe "when 1 block not in default drawing" do
149
+ let(:drawing) { new_drawing("test.dgn", seedfile: "drawing_faatitle_in_non_default_model.dgn") }
148
150
  let(:app) { @app }
149
151
 
150
- it 'finds tagsets in drawing' do
152
+ it "finds tagsets in drawing" do
151
153
  tagsets = drawing.tagsets_in_drawing.to_a
152
154
  _(tagsets.size).must_be :>, 0
153
155
  end
154
156
 
155
- it 'updates tagset' do
156
- ts = drawing.find_tagset_instance_by_name('faatitle')
157
- ts_title = ts['title1'].to_s
158
- _(ts_title).must_equal('TITLE 1')
159
- drawing.update_tagset('faatitle', { 'title1' => 'MY NEW TITLE' })
160
- ts = drawing.find_tagset_instance_by_name('faatitle')
161
- _(ts['title1'].to_s).must_equal('MY NEW TITLE')
157
+ it "updates tagset" do
158
+ ts = drawing.find_tagset_instance_by_name("faatitle")
159
+ ts_title = ts["title1"].to_s
160
+ _(ts_title).must_equal("TITLE 1")
161
+ drawing.update_tagset("faatitle", {"title1" => "MY NEW TITLE"})
162
+ ts = drawing.find_tagset_instance_by_name("faatitle")
163
+ _(ts["title1"].to_s).must_equal("MY NEW TITLE")
162
164
  end
163
165
  end
164
- describe 'when multiple blocks' do
165
- let(:drawing) { new_drawing('test.dgn', seedfile: 'drawing_with_3_block.dgn') }
166
- let(:panel_atts) { { 'brk_1_service' => 'OUTLETS', 'brk_2_service' => 'AIR CONDITIONER' } }
166
+ describe "when multiple blocks" do
167
+ let(:drawing) { new_drawing("test.dgn", seedfile: "drawing_with_3_block.dgn") }
168
+ let(:panel_atts) { {"brk_1_service" => "OUTLETS", "brk_2_service" => "AIR CONDITIONER"} }
167
169
  let(:app) { @app }
168
170
 
169
171
  before do
170
172
  before_new_drawing
171
173
  end
172
174
 
173
- describe '#save_tagsets' do
174
- it 'saves the atts to a file' do
175
+ describe "#save_tagsets" do
176
+ it "saves the atts to a file" do
175
177
  drawing.save_tagsets_to_file("#{Microstation::ROOT}drawing_atts.txt")
176
178
  end
177
179
  end
178
180
 
179
- describe 'with no microstation_id' do
180
- it 'errors' do
181
- _ { drawing.update_tagset('electrical_panel_42', panel_atts) }.must_raise Microstation::MultipleUpdateError
181
+ describe "with no microstation_id" do
182
+ it "errors" do
183
+ _ { drawing.update_tagset("electrical_panel_42", panel_atts) }.must_raise Microstation::MultipleUpdateError
182
184
  end
183
185
  end
184
186
 
185
- describe 'when multiple blocks exist and microstation_id' do
186
- it 'updates drawing with block' do
187
- ts = drawing.find_tagset_instance_by_name_and_id('electrical_panel_42', 324)
188
- _(ts.brk_1_service).must_equal('')
189
- _(ts.brk_2_service).must_equal('')
190
- panel = panel_atts.merge({ 'microstation_id' => 324 })
191
- drawing.update_tagset('electrical_panel_42', panel)
192
- ts = drawing.find_tagset_instance_by_name_and_id('electrical_panel_42', 324)
193
- _(ts.brk_2_service).must_equal('AIR CONDITIONER')
194
- _(ts.brk_1_service).must_equal('OUTLETS')
187
+ describe "when multiple blocks exist and microstation_id" do
188
+ it "updates drawing with block" do
189
+ ts = drawing.find_tagset_instance_by_name_and_id("electrical_panel_42", 324)
190
+ _(ts.brk_1_service).must_equal("")
191
+ _(ts.brk_2_service).must_equal("")
192
+ panel = panel_atts.merge({"microstation_id" => 324})
193
+ drawing.update_tagset("electrical_panel_42", panel)
194
+ ts = drawing.find_tagset_instance_by_name_and_id("electrical_panel_42", 324)
195
+ _(ts.brk_2_service).must_equal("AIR CONDITIONER")
196
+ _(ts.brk_1_service).must_equal("OUTLETS")
195
197
  end
196
198
  end
197
199
  end
198
200
  end
199
- describe '#get_text' do
200
- describe 'drawing with no text' do
201
- let(:drawing) { open_existing_drawing('drawing_no_block.dgn') }
202
- it 'returns empty array if text has no text' do
201
+ describe "#get_text" do
202
+ describe "drawing with no text" do
203
+ let(:drawing) { open_existing_drawing("drawing_no_block.dgn") }
204
+ it "returns empty array if text has no text" do
203
205
  _(drawing.get_text.to_a).must_equal([])
204
206
  end
205
207
  end
206
208
 
207
- describe 'drawing_with_text in block' do
208
- let(:drawing) { open_existing_drawing('drawing_with_block.dgn') }
209
+ describe "drawing_with_text in block" do
210
+ let(:drawing) { open_existing_drawing("drawing_with_block.dgn") }
209
211
  let(:text_in_drawing) do
210
- ['text1 {{ a1 }}',
211
- 'text2 {{ a2 }}',
212
- 'text3 {{ a3 }}',
213
- "node1 {{ a4 }}\nnode1 {{ a5 }}",
214
- "node2 {{ a7 }}\nnode2 {{ a7 }}",
215
- 'text a1 again {{ a1 }}']
212
+ ["text1 {{ a1 }}",
213
+ "text2 {{ a2 }}",
214
+ "text3 {{ a3 }}",
215
+ "node1 {{ a4 }}\nnode1 {{ a5 }}",
216
+ "node2 {{ a7 }}\nnode2 {{ a7 }}",
217
+ "text a1 again {{ a1 }}"]
216
218
  end
217
219
 
218
- it 'gets all the text if drawing has text' do
220
+ it "gets all the text if drawing has text" do
219
221
  text_from_drawing = drawing.get_text
220
222
  _(text_from_drawing.to_a.sort).must_equal(text_in_drawing.sort)
221
223
  end
222
224
  end
223
225
  end
224
226
 
225
- describe '2d and 3d' do
226
- describe 'when have a 2d drawing' do
227
- let(:drawing) { new_drawing('temp.dgn', seedfile: 'seed2d') }
227
+ describe "2d and 3d" do
228
+ describe "when have a 2d drawing" do
229
+ let(:drawing) { new_drawing("temp.dgn", seedfile: "seed2d") }
228
230
 
229
- it 'should be 2d and not 3d two_d? ' do
231
+ it "should be 2d and not 3d two_d? " do
230
232
  _(drawing).must_be :two_d?
231
233
  _(drawing).wont_be :three_d?
232
234
  end
233
235
  end
234
236
 
235
- describe 'when we have a 3d drawing' do
236
- let(:drawing) { new_drawing('temp.dgn', seedfile: 'seed3d') }
237
+ describe "when we have a 3d drawing" do
238
+ let(:drawing) { new_drawing("temp.dgn", seedfile: "seed3d") }
237
239
 
238
- it 'should be 3d and not 2d' do
240
+ it "should be 3d and not 2d" do
239
241
  _(drawing).must_be :three_d?
240
242
  _(drawing).wont_be :two_d?
241
243
  end
@@ -1,35 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../spec_helper'
3
+ require_relative "../spec_helper"
4
4
 
5
- describe 'points by rectangle' do
5
+ describe "points by rectangle" do
6
6
  include Minitest::Hooks
7
7
 
8
8
  before(:all) do
9
- @app = Microstation::App.new(visible: true)
10
- config_app(@app)
9
+ @app = Microstation::App.new(visible: true)
10
+ config_app(@app)
11
11
  end
12
12
 
13
13
  after(:all) do
14
14
  delete_current_drawing
15
- @app.quit rescue nil
15
+ begin
16
+ @app.quit
17
+ rescue
18
+ nil
19
+ end
16
20
  end
17
21
 
18
22
  let(:app) { @app }
19
23
 
20
- it 'should be a function on app' do
24
+ it "should be a function on app" do
21
25
  skip
22
- require 'pry'; binding.pry
23
- drawing = app.new_drawing('temp.dgn')
26
+ require "pry"
27
+ binding.pry
28
+ drawing = app.new_drawing("temp.dgn")
24
29
  pts = app.get_points_by_rectangle
25
30
  puts pts.value
26
31
  end
27
32
 
28
- describe '#points_by_line' do
29
- it 'should not error' do
33
+ describe "#points_by_line" do
34
+ it "should not error" do
30
35
  skip
31
- drawing = app.new_drawing('temp.dgn')
32
- require 'pry'; binding.pry
36
+ drawing = app.new_drawing("temp.dgn")
37
+ require "pry"
38
+ binding.pry
33
39
  pts = app.get_points_by_line
34
40
  end
35
41
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../spec_helper'
3
+ require_relative "../spec_helper"
4
4
 
5
- describe 'Lets start the Microstation once' do
5
+ describe "Lets start the Microstation once" do
6
6
  include Minitest::Hooks
7
7
  before(:all) do
8
8
  @app = Microstation::App.new
@@ -10,107 +10,109 @@ describe 'Lets start the Microstation once' do
10
10
  end
11
11
 
12
12
  after(:all) do
13
- @app.quit rescue nil
13
+ @app.quit
14
+ rescue
15
+ nil
14
16
  end
15
17
 
16
- describe 'a new drawing' do
17
- let(:drawing) { new_drawing('temp.dgn', seedfile: 'seed2d') }
18
+ describe "a new drawing" do
19
+ let(:drawing) { new_drawing("temp.dgn", seedfile: "seed2d") }
18
20
 
19
- describe 'creating a new tag set' do
21
+ describe "creating a new tag set" do
20
22
  let(:tagsets) { drawing.tagsets }
21
23
 
22
- it 'should have no initial tagsets' do
24
+ it "should have no initial tagsets" do
23
25
  _(tagsets.size).must_equal 0
24
26
  end
25
27
 
26
- it 'should create a tagset' do
27
- ts = tagsets.create('test')
28
+ it "should create a tagset" do
29
+ ts = tagsets.create("test")
28
30
  _(ts).must_be_instance_of Microstation::TagSet
29
31
  end
30
32
 
31
- it 'should be the same as a found tagset' do
32
- ts = tagsets.create('test')
33
- _(tagsets['test']).must_equal ts
33
+ it "should be the same as a found tagset" do
34
+ ts = tagsets.create("test")
35
+ _(tagsets["test"]).must_equal ts
34
36
  end
35
37
 
36
- it 'should allow you to remove a tagset' do
37
- tagsets.create('test')
38
+ it "should allow you to remove a tagset" do
39
+ tagsets.create("test")
38
40
  _(tagsets.size).must_equal 1
39
- tagsets.remove('test')
41
+ tagsets.remove("test")
40
42
  _(tagsets.size).must_equal 0
41
43
  end
42
44
  end
43
45
 
44
- describe 'A TagSet' do
45
- let(:drawing) { new_drawing('temp.dgn', seedfile: 'seed2d') }
46
+ describe "A TagSet" do
47
+ let(:drawing) { new_drawing("temp.dgn", seedfile: "seed2d") }
46
48
 
47
- describe '#create_tagset' do
48
- it 'should allow you to create' do
49
- ts = drawing.create_tagset('faatitle')
49
+ describe "#create_tagset" do
50
+ it "should allow you to create" do
51
+ ts = drawing.create_tagset("faatitle")
50
52
  _(ts).must_be_instance_of Microstation::TagSet
51
53
  end
52
54
 
53
- it 'should yield to block if block_given' do
54
- drawing.create_tagset('faatitle') do |ts|
55
+ it "should yield to block if block_given" do
56
+ drawing.create_tagset("faatitle") do |ts|
55
57
  _(ts).must_be_instance_of Microstation::TagSet
56
58
  end
57
59
  end
58
60
 
59
- describe 'given a TagSet' do
60
- let(:tagset) { drawing.create_tagset('faatitle') }
61
+ describe "given a TagSet" do
62
+ let(:tagset) { drawing.create_tagset("faatitle") }
61
63
 
62
- it 'should initially have no attributes' do
64
+ it "should initially have no attributes" do
63
65
  _(tagset.attributes).must_be_empty
64
66
  end
65
67
 
66
- it '#add_attribute adds TS::Attribute' do
68
+ it "#add_attribute adds TS::Attribute" do
67
69
  _(tagset.attributes).must_be_empty
68
- td = tagset.add_attribute('title', String, prompt: 'My title')
69
- _(td.prompt).must_equal('My title')
70
+ td = tagset.add_attribute("title", String, prompt: "My title")
71
+ _(td.prompt).must_equal("My title")
70
72
  _(tagset.attributes.size).must_equal 1
71
73
  _(td).must_be_instance_of Microstation::TS::Attribute
72
74
  end
73
75
 
74
- it 'should exist and can be found in drawing' do
76
+ it "should exist and can be found in drawing" do
75
77
  tagset_local = tagset
76
- ts = drawing.find_tagset('faatitle')
78
+ ts = drawing.find_tagset("faatitle")
77
79
  _(ts.name).must_equal tagset_local.name
78
80
  end
79
81
  end
80
82
 
81
- describe 'given a tagset with tag defintions' do
82
- let(:tagset) { drawing.create_tagset('faatitle') }
83
+ describe "given a tagset with tag defintions" do
84
+ let(:tagset) { drawing.create_tagset("faatitle") }
83
85
 
84
86
  before do
85
- tagset.add_attribute('title', String)
86
- tagset.add_attribute('city', String)
87
+ tagset.add_attribute("title", String)
88
+ tagset.add_attribute("city", String)
87
89
  end
88
90
 
89
- describe '#attributes' do
90
- it 'should have the correct size' do
91
+ describe "#attributes" do
92
+ it "should have the correct size" do
91
93
  _(tagset.attributes.size).must_equal 2
92
94
  end
93
95
 
94
- it '#attributes should be Array of TS::Attributes' do
96
+ it "#attributes should be Array of TS::Attributes" do
95
97
  tagset.attributes.each do |ta|
96
98
  _(ta).must_be_instance_of Microstation::TS::Attribute
97
99
  end
98
100
  end
99
101
  end
100
102
 
101
- describe '#attribute_names' do
102
- it 'returns an array of the correct names' do
103
+ describe "#attribute_names" do
104
+ it "returns an array of the correct names" do
103
105
  _(tagset.attribute_names).must_equal %w[title city]
104
106
  end
105
107
  end
106
108
 
107
- describe '#[]' do
108
- it 'should allow you to retrieve a tagset definition that exists' do
109
- _(tagset['title']).must_be_instance_of Microstation::TS::Attribute
109
+ describe "#[]" do
110
+ it "should allow you to retrieve a tagset definition that exists" do
111
+ _(tagset["title"]).must_be_instance_of Microstation::TS::Attribute
110
112
  end
111
113
 
112
114
  it "returns nil if attribute doesn't exist" do
113
- _(tagset['bogus']).must_be_nil
115
+ _(tagset["bogus"]).must_be_nil
114
116
  end
115
117
  end
116
118
  end
@@ -118,40 +120,40 @@ describe 'Lets start the Microstation once' do
118
120
  end
119
121
  end
120
122
 
121
- describe 'a drawing with tagsets placed in drawing' do
122
- let(:drawing) { open_existing_drawing('drawing_with_block.dgn') }
123
+ describe "a drawing with tagsets placed in drawing" do
124
+ let(:drawing) { open_existing_drawing("drawing_with_block.dgn") }
123
125
  let(:tagsets) { drawing.tagsets }
124
126
  let(:tset) { tagsets.first }
125
127
 
126
- it 'has tagsets' do
128
+ it "has tagsets" do
127
129
  _(tagsets).wont_be_empty
128
130
  end
129
131
 
130
- it 'has the correct tagsets' do
132
+ it "has the correct tagsets" do
131
133
  _(tagsets.size).must_equal 1
132
- _(tset.name).must_equal 'electrical_panel_42'
134
+ _(tset.name).must_equal "electrical_panel_42"
133
135
  end
134
136
 
135
- it 'has tagset instances' do
137
+ it "has tagset instances" do
136
138
  _(tset.instances.size).must_equal 1
137
139
  tagset_instance = tset.instances.first
138
- _(tagset_instance.name).must_equal 'electrical_panel_42'
140
+ _(tagset_instance.name).must_equal "electrical_panel_42"
139
141
  _(tagset_instance).must_be_instance_of Microstation::TS::Instance
140
142
  end
141
143
  end
142
144
 
143
- describe 'a drawing with 3 instances of same tagset in drawing' do
144
- let(:drawing) { open_existing_drawing('drawing_with_3_block.dgn') }
145
+ describe "a drawing with 3 instances of same tagset in drawing" do
146
+ let(:drawing) { open_existing_drawing("drawing_with_3_block.dgn") }
145
147
  let(:tagsets) { drawing.tagsets }
146
148
  let(:tset) { tagsets.first }
147
149
 
148
- it 'has the correct number of tagsets' do
150
+ it "has the correct number of tagsets" do
149
151
  _(tagsets.size).must_equal 1
150
152
  _(tagsets.names).must_equal %w[electrical_panel_42]
151
- _(tset.name).must_equal 'electrical_panel_42'
153
+ _(tset.name).must_equal "electrical_panel_42"
152
154
  end
153
155
 
154
- it 'has the correct instances' do
156
+ it "has the correct instances" do
155
157
  _(tset.instances.size).must_equal 3
156
158
  _(tset.instances.map(&:name)).must_equal %w[electrical_panel_42 electrical_panel_42 electrical_panel_42]
157
159
  end