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,20 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../spec_helper'
3
+ require_relative "../spec_helper"
4
4
 
5
5
  describe Microstation::App do
6
-
7
6
  after(:all) do
8
- app.quit rescue nil
7
+ app.quit
8
+ rescue
9
+ nil
9
10
  end
10
- describe '#initialize' do
11
- describe 'visibility' do
12
- it 'is invisible with no options' do
11
+ describe "#initialize" do
12
+ describe "visibility" do
13
+ it "is invisible with no options" do
13
14
  app = Microstation::App.new
14
15
  _(app).wont_be :visible
15
16
  end
16
17
 
17
- it 'can be set with option' do
18
+ it "can be set with option" do
18
19
  app = Microstation::App.new(visible: true)
19
20
  _(app).must_be :visible
20
21
  end
@@ -22,26 +23,28 @@ describe Microstation::App do
22
23
  end
23
24
  end
24
25
 
25
- describe 'an open Microstation App' do
26
+ describe "an open Microstation App" do
26
27
  after(:all) do
27
- app.quit rescue nil
28
+ app.quit
29
+ rescue
30
+ nil
28
31
  end
29
32
  let(:app) { Microstation::App.new }
30
33
 
31
- it 'loads the constants' do
34
+ it "loads the constants" do
32
35
  app
33
36
  _(Microstation::MSD::MsdElementTypeTag).must_equal 37
34
37
  end
35
38
 
36
- describe '#can_open?' do
37
- it 'is true for dgn and dwg files' do
39
+ describe "#can_open?" do
40
+ it "is true for dgn and dwg files" do
38
41
  %w[dgn dwg].each do |ext|
39
42
  name = "test.#{ext}"
40
43
  _(app.can_open?(name)).must_equal true
41
44
  end
42
45
  end
43
46
 
44
- it 'is false for other filetypes' do
47
+ it "is false for other filetypes" do
45
48
  %w[pdf doc jpg pgn].each do |ext|
46
49
  name = "test.#{ext}"
47
50
  _(app.can_open?(name)).wont_equal true
@@ -49,24 +52,24 @@ describe 'an open Microstation App' do
49
52
  end
50
53
  end
51
54
 
52
- describe 'open_drawing' do
53
- describe 'when valid drawing' do
54
- let(:path) { drawing_path('drawing_with_text.dgn') }
55
+ describe "open_drawing" do
56
+ describe "when valid drawing" do
57
+ let(:path) { drawing_path("drawing_with_text.dgn") }
55
58
 
56
- it 'returns a drawing' do
59
+ it "returns a drawing" do
57
60
  drawing = app.open_drawing(path)
58
61
  _(drawing).must_be_instance_of Microstation::Drawing
59
62
  drawing.close
60
63
  end
61
64
 
62
- describe 'when given a block' do
63
- it 'yield the drawing to the block' do
65
+ describe "when given a block" do
66
+ it "yield the drawing to the block" do
64
67
  app.open_drawing(path) do |d|
65
68
  _(d).must_be_instance_of Microstation::Drawing
66
69
  end
67
70
  end
68
71
 
69
- it 'closes the drawing after block returns' do
72
+ it "closes the drawing after block returns" do
70
73
  _(app.active_design_file).must_be_nil
71
74
  app.open_drawing(path) do |d|
72
75
  _(d).must_be_instance_of Microstation::Drawing
@@ -77,27 +80,27 @@ describe 'an open Microstation App' do
77
80
  end
78
81
  end
79
82
 
80
- describe 'when a non existent drawing' do
81
- it 'raises an error' do
82
- _ { app.open_drawing('a_bogus_file.dgn') }.must_raise Microstation::Error
83
+ describe "when a non existent drawing" do
84
+ it "raises an error" do
85
+ _ { app.open_drawing("a_bogus_file.dgn") }.must_raise Microstation::Error
83
86
  end
84
87
  end
85
88
  end
86
89
 
87
- describe '#ole_obj' do
88
- it 'returns an instance of the WIN32OLE' do
90
+ describe "#ole_obj" do
91
+ it "returns an instance of the WIN32OLE" do
89
92
  _(app.ole_obj).must_be_instance_of WIN32OLE
90
93
  end
91
94
  end
92
95
 
93
- describe '#create_scanner' do
94
- it 'can yield a Microstation::Scan::Criteria' do
96
+ describe "#create_scanner" do
97
+ it "can yield a Microstation::Scan::Criteria" do
95
98
  scan = app.create_scanner do |sc|
96
99
  _(sc).must_be_instance_of Microstation::Scan::Criteria
97
100
  end
98
101
  end
99
102
 
100
- it 'can accept a name' do
103
+ it "can accept a name" do
101
104
  scanner = app.create_scanner(:my_scanner) do |sc|
102
105
  sc.include_textual
103
106
  sc.include_tags
@@ -107,9 +110,9 @@ describe 'an open Microstation App' do
107
110
  end
108
111
  end
109
112
 
110
- describe '#normalize_name' do
111
- it 'returns the name if the name is absolute' do
112
- _(app.normalize_name('c:/my_drawings/test.dgn').to_s).must_equal 'c:/my_drawings/test.dgn'
113
+ describe "#normalize_name" do
114
+ it "returns the name if the name is absolute" do
115
+ _(app.normalize_name("c:/my_drawings/test.dgn").to_s).must_equal "c:/my_drawings/test.dgn"
113
116
  end
114
117
 
115
118
  # describe "with relative path" do
@@ -128,40 +131,40 @@ describe 'an open Microstation App' do
128
131
  # end
129
132
  end
130
133
 
131
- it 'has a username method' do
132
- _(app.username).must_equal ENV['USERNAME']
134
+ it "has a username method" do
135
+ _(app.username).must_equal ENV["USERNAME"]
133
136
  end
134
137
 
135
- describe '#new_drawing' do
136
- let(:new_path) { output_path('new_drawing.dgn') }
138
+ describe "#new_drawing" do
139
+ let(:new_path) { output_path("new_drawing.dgn") }
137
140
 
138
141
  after do
139
142
  app.close_active_drawing
140
143
  File.delete(new_path) if File.exist? new_path
141
144
  end
142
145
 
143
- it 'needs a filename' do
146
+ it "needs a filename" do
144
147
  _ { app.new_drawing }.must_raise
145
148
  end
146
149
 
147
- it 'raises an error if drawing exists' do
148
- path = drawing_path('drawing_with_text.dgn')
150
+ it "raises an error if drawing exists" do
151
+ path = drawing_path("drawing_with_text.dgn")
149
152
  _ { app.new_drawing(path) }.must_raise
150
153
  end
151
154
 
152
- it 'creates a drawing if the drawing path is new' do
155
+ it "creates a drawing if the drawing path is new" do
153
156
  drawing = app.new_drawing(new_path)
154
157
  _(drawing).must_be_instance_of Microstation::Drawing
155
158
  end
156
159
 
157
- describe 'when given a block' do
158
- it 'yields the drawing to a block if a block is given' do
160
+ describe "when given a block" do
161
+ it "yields the drawing to a block if a block is given" do
159
162
  app.new_drawing(new_path) do |d|
160
163
  _(d).must_be_instance_of Microstation::Drawing
161
164
  end
162
165
  end
163
166
 
164
- it 'closes drawing after block returns' do
167
+ it "closes drawing after block returns" do
165
168
  _(app.active_design_file).must_be_nil
166
169
  app.new_drawing(new_path) do |d|
167
170
  _(d).must_be_instance_of Microstation::Drawing
@@ -172,11 +175,11 @@ describe 'an open Microstation App' do
172
175
  end
173
176
  end
174
177
 
175
- describe 'render_template' do
176
- describe 'with a valid dgn' do
177
- let(:dgn) { drawing_path('drawing_with_block.dgn') }
178
+ describe "render_template" do
179
+ describe "with a valid dgn" do
180
+ let(:dgn) { drawing_path("drawing_with_block.dgn") }
178
181
 
179
- it 'completes' do
182
+ it "completes" do
180
183
  app.render_template(dgn)
181
184
  end
182
185
  end
@@ -1,91 +1,93 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../spec_helper'
3
+ require_relative "../spec_helper"
4
4
 
5
5
  describe Microstation::Configuration do
6
6
  include Minitest::Hooks
7
- before(:all) do
7
+ before(:all) do
8
8
  @app = Microstation::App.new
9
9
  config_app(@app)
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
18
  let(:config) { Microstation::Configuration.new(@app) }
17
- let(:defined_name) { 'new_variable' }
18
- let(:defined_value) { 'new_variable_value' }
19
- let(:undefined_name) { 'undefined_variable' }
19
+ let(:defined_name) { "new_variable" }
20
+ let(:defined_value) { "new_variable_value" }
21
+ let(:undefined_name) { "undefined_variable" }
20
22
 
21
23
  before do
22
24
  config.remove_variable(undefined_name)
23
25
  config.set!(defined_name, defined_value)
24
26
  end
25
27
 
26
- describe '#remove_variable' do
27
- it 'removes an existing variable' do
28
+ describe "#remove_variable" do
29
+ it "removes an existing variable" do
28
30
  _(config[defined_name]).must_equal defined_value
29
31
  config.remove_variable(defined_name)
30
32
  _(config[defined_name]).must_be_nil
31
33
  end
32
34
 
33
35
  it "doesn't error if variable nonexistent" do
34
- config.remove_variable 'this_bogus_variable_should_not_exist'
36
+ config.remove_variable "this_bogus_variable_should_not_exist"
35
37
  end
36
38
  end
37
39
 
38
- describe '#[]' do
39
- it 'should check if value exists' do
40
+ describe "#[]" do
41
+ it "should check if value exists" do
40
42
  skip
41
43
  config_mock = Minitest::Mock.new
42
44
  config_mock.expect :exists?, true
43
45
  config.stub :[], config_mock do
44
- config['undefined']
46
+ config["undefined"]
45
47
  end
46
48
  config_mock.verify
47
49
  end
48
50
 
49
- it 'should return the configuration variable if exists' do
51
+ it "should return the configuration variable if exists" do
50
52
  _(config[defined_name]).must_equal defined_value
51
53
  end
52
54
 
53
- it 'should return nil if not exists' do
55
+ it "should return nil if not exists" do
54
56
  _(config[undefined_name]).must_be_nil
55
57
  end
56
58
  end
57
59
 
58
- describe '[]=, setting variables' do
59
- describe 'value not existing yet' do
60
- it 'should set the variable' do
60
+ describe "[]=, setting variables" do
61
+ describe "value not existing yet" do
62
+ it "should set the variable" do
61
63
  _(config[undefined_name]).must_be_nil
62
- config[undefined_name] = 'its set'
63
- _(config[undefined_name]).must_equal 'its set'
64
+ config[undefined_name] = "its set"
65
+ _(config[undefined_name]).must_equal "its set"
64
66
  end
65
67
  end
66
68
 
67
- describe 'value existing' do
68
- it 'should raise variable defined if force option is false' do
69
- _ { config[defined_name] = 'my new value' }.must_raise ::Microstation::VariableDefined
69
+ describe "value existing" do
70
+ it "should raise variable defined if force option is false" do
71
+ _ { config[defined_name] = "my new value" }.must_raise ::Microstation::VariableDefined
70
72
  end
71
73
 
72
- it 'should keep existing value' do
74
+ it "should keep existing value" do
73
75
  _(config[defined_name]).must_equal defined_value
74
- _ { config[defined_name] = 'my new value' }.must_raise
76
+ _ { config[defined_name] = "my new value" }.must_raise
75
77
  _(config[defined_name]).must_equal defined_value
76
78
  end
77
79
 
78
- it 'should change the variable if force is true' do
80
+ it "should change the variable if force is true" do
79
81
  _(config[defined_name]).must_equal(defined_value)
80
- config.set!(defined_name, 'my new value')
81
- _(config[defined_name]).must_equal 'my new value'
82
+ config.set!(defined_name, "my new value")
83
+ _(config[defined_name]).must_equal "my new value"
82
84
  end
83
85
  end
84
86
  end
85
87
 
86
- describe '#exists' do
87
- it 'should return true if config variable exists' do
88
- _((config).exists?(defined_name)).must_equal true
88
+ describe "#exists" do
89
+ it "should return true if config variable exists" do
90
+ _(config.exists?(defined_name)).must_equal true
89
91
  end
90
92
 
91
93
  it "should return false if config variable doesn't exist" do
@@ -93,39 +95,39 @@ describe Microstation::Configuration do
93
95
  end
94
96
  end
95
97
 
96
- describe '#prepend' do
97
- describe 'variable exists' do
98
- it 'should prepend the value' do
98
+ describe "#prepend" do
99
+ describe "variable exists" do
100
+ it "should prepend the value" do
99
101
  value_before = config[defined_name]
100
- config.prepend(defined_name, 'added')
102
+ config.prepend(defined_name, "added")
101
103
  value_after = config[defined_name]
102
104
  _(value_after).must_equal "added;#{value_before}"
103
105
  end
104
106
 
105
- describe 'variable nonexistent' do
106
- it 'should add the value' do
107
+ describe "variable nonexistent" do
108
+ it "should add the value" do
107
109
  value_before = config[undefined_name]
108
- config.prepend(undefined_name, 'added')
110
+ config.prepend(undefined_name, "added")
109
111
  value_after = config[undefined_name]
110
- _(value_after).must_equal 'added'
112
+ _(value_after).must_equal "added"
111
113
  end
112
114
  end
113
115
  end
114
116
  end
115
117
 
116
- describe '#expand' do
118
+ describe "#expand" do
117
119
  let(:dir) {}
118
120
 
119
121
  before do
120
- config['DIR'] = 'c:/Users/Tom'
122
+ config["DIR"] = "c:/Users/Tom"
121
123
  end
122
124
 
123
125
  after do
124
- config.remove_variable('DIR')
126
+ config.remove_variable("DIR")
125
127
  end
126
128
 
127
- it 'should expand the string' do
128
- _(config.expand('$(DIR)/project')).must_equal 'c:/Users/Tom/project'
129
+ it "should expand the string" do
130
+ _(config.expand("$(DIR)/project")).must_equal "c:/Users/Tom/project"
129
131
  end
130
132
  end
131
133
  end