microstation 0.8.5 → 0.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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