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.
- checksums.yaml +4 -4
- data/Gemfile +26 -29
- data/Rakefile +45 -44
- data/bin/dgn2pdf +5 -6
- data/bin/dgn_template +23 -25
- data/bin/pw_print +11 -13
- data/cad_files/drawing_no_block.dgn +0 -0
- data/cad_files/drawing_with_3_block.dgn +0 -0
- data/cad_files/drawing_with_block.dgn +0 -0
- data/cad_files/drawing_with_text.dgn +0 -0
- data/lib/microstation/app.rb +91 -87
- data/lib/microstation/cad_input_queue.rb +10 -20
- data/lib/microstation/cell.rb +6 -18
- data/lib/microstation/changer.rb +3 -3
- data/lib/microstation/configuration.rb +33 -50
- data/lib/microstation/criteria_creation_t.rb +4 -8
- data/lib/microstation/dir.rb +27 -59
- data/lib/microstation/directory.rb +2 -7
- data/lib/microstation/drawing.rb +103 -102
- data/lib/microstation/element.rb +55 -68
- data/lib/microstation/enumerator.rb +4 -9
- data/lib/microstation/errors.rb +0 -5
- data/lib/microstation/event_handler.rb +1 -5
- data/lib/microstation/ext/pathname.rb +12 -14
- data/lib/microstation/ext/win32ole.rb +0 -2
- data/lib/microstation/extensions/faa.rb +12 -34
- data/lib/microstation/file_tests.rb +15 -50
- data/lib/microstation/functions.rb +10 -20
- data/lib/microstation/graphics.rb +6 -13
- data/lib/microstation/line.rb +2 -6
- data/lib/microstation/model.rb +11 -20
- data/lib/microstation/model_trait.rb +40 -40
- data/lib/microstation/ole_cad_input_message.rb +25 -34
- data/lib/microstation/ole_helper.rb +58 -66
- data/lib/microstation/pdf_support.rb +7 -16
- data/lib/microstation/point3d.rb +17 -30
- data/lib/microstation/primitive_command_interface.rb +8 -14
- data/lib/microstation/properties.rb +29 -17
- data/lib/microstation/property_handler.rb +6 -8
- data/lib/microstation/scan/color.rb +1 -8
- data/lib/microstation/scan/criteria.rb +17 -33
- data/lib/microstation/scan/klass.rb +8 -12
- data/lib/microstation/scan/level.rb +2 -9
- data/lib/microstation/scan/line_style.rb +4 -12
- data/lib/microstation/scan/line_weight.rb +1 -3
- data/lib/microstation/scan/range.rb +2 -8
- data/lib/microstation/scan/scan_trait.rb +48 -51
- data/lib/microstation/scan/subtype.rb +0 -10
- data/lib/microstation/scan/type.rb +9 -15
- data/lib/microstation/scan_trait.rb +13 -20
- data/lib/microstation/scanner.rb +1 -11
- data/lib/microstation/tag.rb +12 -21
- data/lib/microstation/tag_set.rb +52 -71
- data/lib/microstation/tag_set_trait.rb +6 -10
- data/lib/microstation/tagged_element.rb +16 -28
- data/lib/microstation/template.rb +15 -14
- data/lib/microstation/template_info.rb +35 -49
- data/lib/microstation/template_runner.rb +14 -22
- data/lib/microstation/text.rb +15 -19
- data/lib/microstation/text_node.rb +17 -26
- data/lib/microstation/ts/attribute.rb +16 -20
- data/lib/microstation/ts/instance.rb +28 -38
- data/lib/microstation/ts/tagset_trait.rb +5 -12
- data/lib/microstation/types.rb +0 -3
- data/lib/microstation/version.rb +1 -3
- data/lib/microstation/wrap.rb +3 -10
- data/lib/microstation.rb +57 -72
- data/spec/microstation/app_spec.rb +49 -46
- data/spec/microstation/configuration_spec.rb +45 -43
- data/spec/microstation/drawing_spec.rb +103 -101
- data/spec/microstation/functions_spec.rb +18 -12
- data/spec/microstation/tag_set_spec.rb +57 -55
- data/spec/microstation/template_spec.rb +41 -42
- data/spec/microstation/text_node_spec.rb +16 -14
- data/spec/microstation/text_spec.rb +10 -8
- data/spec/microstation_spec.rb +18 -17
- data/spec/spec_helper.rb +18 -18
- metadata +36 -22
data/lib/microstation/line.rb
CHANGED
@@ -1,19 +1,15 @@
|
|
1
|
-
require
|
1
|
+
require "microstation/element"
|
2
2
|
|
3
3
|
module Microstation
|
4
|
-
|
5
4
|
class Line < Element
|
6
|
-
|
7
5
|
def length
|
8
6
|
ole_obj.Length
|
9
7
|
end
|
10
8
|
|
11
|
-
|
12
9
|
def vertices
|
13
10
|
ole_obj.AsVertexList
|
14
11
|
n = ole_obj.VerticesCount
|
15
|
-
|
16
|
-
list
|
12
|
+
ole_obj.GetVertices
|
17
13
|
end
|
18
14
|
end
|
19
15
|
end
|
data/lib/microstation/model.rb
CHANGED
@@ -1,45 +1,36 @@
|
|
1
|
-
#require_relative 'scan/scan_trait'
|
2
|
-
require
|
3
|
-
require_relative
|
4
|
-
|
5
|
-
#require_relative 'ts/tagset_trait'
|
6
|
-
#require_relative 'graphics'
|
7
|
-
#require_relative 'ts/instance'
|
1
|
+
# require_relative 'scan/scan_trait'
|
2
|
+
require "microstation/wrap"
|
3
|
+
require_relative "model_trait"
|
8
4
|
|
5
|
+
# require_relative 'ts/tagset_trait'
|
6
|
+
# require_relative 'graphics'
|
7
|
+
# require_relative 'ts/instance'
|
9
8
|
|
10
9
|
module Microstation
|
11
|
-
|
12
10
|
class DefaultModel
|
13
|
-
|
14
11
|
include ::Microstation::ModelTrait
|
15
12
|
|
16
|
-
attr_reader :app
|
13
|
+
attr_reader :app, :ole_obj
|
17
14
|
|
18
|
-
def initialize(app,ole)
|
15
|
+
def initialize(app, ole)
|
19
16
|
@app = app
|
20
17
|
@ole_obj = ole
|
21
18
|
end
|
22
19
|
|
23
20
|
def drawing
|
24
|
-
@drawing ||= ::Microstation::Drawing.from_ole_obj(app,ole_obj)
|
21
|
+
@drawing ||= ::Microstation::Drawing.from_ole_obj(app, ole_obj)
|
25
22
|
end
|
26
|
-
|
27
|
-
|
28
23
|
end
|
29
24
|
|
30
|
-
|
31
25
|
class Model
|
32
|
-
|
33
26
|
include ::Microstation::ModelTrait
|
34
27
|
|
35
|
-
attr_reader :app
|
28
|
+
attr_reader :app, :drawing, :ole_obj
|
36
29
|
|
37
|
-
def initialize(app,drawing,ole)
|
30
|
+
def initialize(app, drawing, ole)
|
38
31
|
@app = app
|
39
32
|
@drawing = drawing
|
40
33
|
@ole_obj = ole
|
41
34
|
end
|
42
|
-
|
43
35
|
end
|
44
|
-
|
45
36
|
end
|
@@ -1,9 +1,8 @@
|
|
1
|
-
require_relative
|
2
|
-
require_relative
|
1
|
+
require_relative "graphics"
|
2
|
+
require_relative "scan_trait"
|
3
3
|
|
4
4
|
module Microstation
|
5
5
|
module ModelTrait
|
6
|
-
|
7
6
|
include Graphics
|
8
7
|
|
9
8
|
include ScanTrait
|
@@ -14,7 +13,11 @@ module Microstation
|
|
14
13
|
end
|
15
14
|
|
16
15
|
def find_by_id(id)
|
17
|
-
ele =
|
16
|
+
ele = begin
|
17
|
+
ole_obj.GetElementById64(id)
|
18
|
+
rescue
|
19
|
+
nil
|
20
|
+
end
|
18
21
|
return nil unless ele
|
19
22
|
app.ole_to_ruby(ele)
|
20
23
|
end
|
@@ -24,20 +27,20 @@ module Microstation
|
|
24
27
|
end
|
25
28
|
|
26
29
|
def get_selected_elements
|
27
|
-
Enumerator.new(ole_obj.GetSelectedElements,app)
|
30
|
+
Enumerator.new(ole_obj.GetSelectedElements, app)
|
28
31
|
end
|
29
32
|
|
30
33
|
def get_selected_text
|
31
|
-
get_selected_elements.select{|t| t.textual?}
|
34
|
+
get_selected_elements.select { |t| t.textual? }
|
32
35
|
end
|
33
36
|
|
34
37
|
def get_matching_text(re)
|
35
38
|
result = []
|
36
39
|
get_selected_text.each do |t|
|
37
|
-
md = re.match(
|
40
|
+
md = re.match(t)
|
38
41
|
if md
|
39
42
|
if block_given?
|
40
|
-
yield t,md
|
43
|
+
yield t, md
|
41
44
|
else
|
42
45
|
result << t
|
43
46
|
end
|
@@ -46,10 +49,10 @@ module Microstation
|
|
46
49
|
end
|
47
50
|
end
|
48
51
|
|
49
|
-
def change_text_suffix(reg,offset)
|
50
|
-
get_matching_text(reg) do |t,md|
|
52
|
+
def change_text_suffix(reg, offset)
|
53
|
+
get_matching_text(reg) do |t, md|
|
51
54
|
pre = md[1]
|
52
|
-
suff = Integer(
|
55
|
+
suff = Integer(md[2]) + offset
|
53
56
|
t.replace "#{pre}#{suff}"
|
54
57
|
end
|
55
58
|
end
|
@@ -78,7 +81,6 @@ module Microstation
|
|
78
81
|
"Microstation::Model-#{name}"
|
79
82
|
end
|
80
83
|
|
81
|
-
|
82
84
|
def add_element(el)
|
83
85
|
if el.respond_to? :ole_obj
|
84
86
|
el = el.ole_obj
|
@@ -88,56 +90,55 @@ module Microstation
|
|
88
90
|
end
|
89
91
|
|
90
92
|
def select_tagset_instances
|
91
|
-
|
92
93
|
end
|
93
94
|
|
94
|
-
def scan_tags_filtered(
|
95
|
+
def scan_tags_filtered(ts_name: nil, base_element_id: nil, &block)
|
95
96
|
case [ts_name, base_element_id]
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
97
|
+
in [nil, nil]
|
98
|
+
scan_tags(&block)
|
99
|
+
in [String, nil]
|
100
|
+
scan_tags.select { |t| t.tagset_name == ts_name }
|
101
|
+
in [String, Numeric]
|
102
|
+
scan_tags.select { |t| t.tagset_name == ts_name && t.base_element_id == base_element_id }
|
103
|
+
in [nil, Numeric]
|
104
|
+
scan_tags.select { |t| t.base_element_id == base_element_id }
|
104
105
|
|
105
106
|
end
|
106
107
|
end
|
107
108
|
|
108
109
|
def tags_to_hash(tags)
|
109
|
-
return to_enum(__callee__,tags) unless block_given?
|
110
|
-
tsets = tags.group_by{ |t| t.tagset_name }
|
110
|
+
return to_enum(__callee__, tags) unless block_given?
|
111
|
+
tsets = tags.group_by { |t| t.tagset_name }
|
111
112
|
tsets.each do |tsname, tags|
|
112
|
-
elements = tags.group_by{|t| t.base_element_id}
|
113
|
+
elements = tags.group_by { |t| t.base_element_id }
|
113
114
|
elements.each do |id, tag_elts|
|
114
115
|
result_hash = {
|
115
116
|
name: tsname,
|
116
117
|
model: name,
|
117
118
|
tags: tag_elts,
|
118
|
-
base_element_id: id
|
119
|
+
base_element_id: id
|
119
120
|
}
|
120
121
|
yield result_hash
|
121
122
|
end
|
122
123
|
end
|
123
124
|
end
|
124
125
|
|
125
|
-
def get_tagsets_in_model_hash(ts_name: nil, base_element_id: nil
|
126
|
+
def get_tagsets_in_model_hash(ts_name: nil, base_element_id: nil, &block)
|
126
127
|
tags = scan_tags_filtered(ts_name: ts_name, base_element_id: base_element_id)
|
127
128
|
tags_to_hash(tags, &block)
|
128
129
|
end
|
129
130
|
|
130
131
|
def get_tagsets_in_model_hash_old
|
131
132
|
results = []
|
132
|
-
tsets
|
133
|
+
tsets = scan_tags.group_by { |t| t.tagset_name }
|
133
134
|
tsets.each do |tsname, tags|
|
134
|
-
elements = tags.group_by{|t| t.base_element_id}
|
135
|
+
elements = tags.group_by { |t| t.base_element_id }
|
135
136
|
elements.each do |id, tag_elts|
|
136
137
|
result_hash = {
|
137
138
|
name: tsname,
|
138
139
|
model: name,
|
139
140
|
tags: tag_elts,
|
140
|
-
base_element_id: id
|
141
|
+
base_element_id: id
|
141
142
|
}
|
142
143
|
if block_given?
|
143
144
|
yield result_hash
|
@@ -146,22 +147,20 @@ module Microstation
|
|
146
147
|
end
|
147
148
|
end
|
148
149
|
results unless block_given?
|
149
|
-
end
|
150
|
-
|
150
|
+
end
|
151
151
|
end
|
152
152
|
|
153
|
-
|
154
153
|
# Scan the model with
|
155
154
|
# @param [Scan::Criteria] criteria - the criteria to scan
|
156
155
|
# @yield the item
|
157
|
-
def scan_model(criteria=nil)
|
156
|
+
def scan_model(criteria = nil)
|
158
157
|
# binding.pry
|
159
|
-
criteria
|
158
|
+
criteria ||= create_scanner(:nullscanner)
|
160
159
|
scan_result = ole_run_scan(criteria)
|
161
160
|
return [] unless scan_result
|
162
161
|
# binding.pry
|
163
162
|
scan_enum = ::Microstation::Enumerator.new(scan_result, app)
|
164
|
-
result =
|
163
|
+
result = []
|
165
164
|
if block_given?
|
166
165
|
scan_enum.each do |item|
|
167
166
|
yield item
|
@@ -180,10 +179,11 @@ module Microstation
|
|
180
179
|
|
181
180
|
def ole_run_scan(criteria)
|
182
181
|
criteria.resolve
|
183
|
-
scan_result =
|
182
|
+
scan_result = begin
|
183
|
+
ole_obj.Scan(criteria.ole_obj)
|
184
|
+
rescue
|
185
|
+
nil
|
186
|
+
end
|
184
187
|
end
|
185
|
-
|
186
|
-
|
187
188
|
end
|
188
|
-
|
189
189
|
end
|
@@ -1,25 +1,17 @@
|
|
1
1
|
module Microstation
|
2
|
-
|
3
|
-
|
4
2
|
module InputType
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
Any = 5
|
11
|
-
Unassigned = 6
|
12
|
-
|
3
|
+
COMMAND = 1
|
4
|
+
DATA_POINT = 3
|
5
|
+
KEYIN = 4
|
6
|
+
ANY = 5
|
7
|
+
UNASSIGNED = 6
|
13
8
|
end
|
14
9
|
|
15
|
-
|
16
10
|
class OLE_CadInputMessage
|
11
|
+
include WIN32OLE::VARIANT
|
12
|
+
attr_reader :lastargs, :ole_obj, :app
|
17
13
|
|
18
|
-
|
19
|
-
attr_reader :lastargs,:ole_obj, :app
|
20
|
-
|
21
|
-
|
22
|
-
def initialize(ole,app)
|
14
|
+
def initialize(ole, app)
|
23
15
|
@ole_obj = ole
|
24
16
|
@app = app
|
25
17
|
end
|
@@ -29,23 +21,23 @@ module Microstation
|
|
29
21
|
end
|
30
22
|
|
31
23
|
def command?
|
32
|
-
input_type == InputType::
|
24
|
+
input_type == InputType::COMMAND
|
33
25
|
end
|
34
26
|
|
35
27
|
def data_point?
|
36
|
-
input_type == InputType::
|
28
|
+
input_type == InputType::DATA_POINT
|
37
29
|
end
|
38
30
|
|
39
31
|
def key_in?
|
40
|
-
input_type == InputType::
|
32
|
+
input_type == InputType::KEYIN
|
41
33
|
end
|
42
34
|
|
43
35
|
def any?
|
44
|
-
input_type == InputType::
|
36
|
+
input_type == InputType::ANY
|
45
37
|
end
|
46
38
|
|
47
39
|
def unassigned?
|
48
|
-
input_type == InputType::
|
40
|
+
input_type == InputType::UNASSIGNED
|
49
41
|
end
|
50
42
|
|
51
43
|
def input_type
|
@@ -53,49 +45,48 @@ module Microstation
|
|
53
45
|
end
|
54
46
|
|
55
47
|
# MsdCadInputType InputType
|
56
|
-
def get_input_type
|
48
|
+
def get_input_type
|
57
49
|
ole_obj.InputType
|
58
50
|
end
|
59
51
|
|
60
52
|
# BSTR Keyin
|
61
|
-
def get_keyin
|
62
|
-
ret = ole_obj._getproperty(
|
53
|
+
def get_keyin
|
54
|
+
ret = ole_obj._getproperty(1_610_743_809, [], [])
|
63
55
|
@lastargs = WIN32OLE::ARGV
|
64
56
|
ret
|
65
57
|
end
|
66
58
|
|
67
59
|
# Point3d Point
|
68
|
-
def get_point
|
60
|
+
def get_point
|
69
61
|
app.to_point3d(ole_obj.Point)
|
70
62
|
end
|
71
63
|
|
72
64
|
# BSTR CommandKeyin
|
73
|
-
def get_command_keyin
|
74
|
-
ret = ole_obj._getproperty(
|
65
|
+
def get_command_keyin
|
66
|
+
ret = ole_obj._getproperty(1_610_743_811, [], [])
|
75
67
|
@lastargs = WIN32OLE::ARGV
|
76
68
|
ret
|
77
69
|
end
|
78
70
|
|
79
71
|
# _View View
|
80
|
-
def get_view
|
81
|
-
ret = ole_obj._getproperty(
|
72
|
+
def get_view
|
73
|
+
ret = ole_obj._getproperty(1_610_743_812, [], [])
|
82
74
|
@lastargs = WIN32OLE::ARGV
|
83
75
|
ret
|
84
76
|
end
|
85
77
|
|
86
78
|
# Point3d ScreenPoint
|
87
|
-
def get_screen_point
|
88
|
-
ret = ole_obj._getproperty(
|
79
|
+
def get_screen_point
|
80
|
+
ret = ole_obj._getproperty(1_610_743_813, [], [])
|
89
81
|
@lastargs = WIN32OLE::ARGV
|
90
82
|
ret
|
91
83
|
end
|
92
84
|
|
93
85
|
# I4 CursorButton
|
94
|
-
def get_cursor_button
|
95
|
-
ret = ole_obj._getproperty(
|
86
|
+
def get_cursor_button
|
87
|
+
ret = ole_obj._getproperty(1_610_743_814, [], [])
|
96
88
|
@lastargs = WIN32OLE::ARGV
|
97
89
|
ret
|
98
90
|
end
|
99
91
|
end
|
100
|
-
|
101
92
|
end
|
@@ -1,21 +1,20 @@
|
|
1
1
|
module OleHelper
|
2
|
-
|
3
2
|
def select_ole_type(name)
|
4
|
-
if name.
|
3
|
+
if name.instance_of?(String)
|
5
4
|
name = Regexp.new(name)
|
6
5
|
end
|
7
|
-
reg = Regexp.new(name.source,Regexp::IGNORECASE)
|
6
|
+
reg = Regexp.new(name.source, Regexp::IGNORECASE)
|
8
7
|
typelib.ole_classes.select do |k|
|
9
8
|
reg =~ k.name
|
10
9
|
end
|
11
10
|
end
|
12
11
|
|
13
12
|
def select_ole_method(name)
|
14
|
-
if name.
|
13
|
+
if name.instance_of?(String)
|
15
14
|
name = Regexp.new(name)
|
16
15
|
end
|
17
|
-
reg = Regexp.new(name.source,Regexp::IGNORECASE)
|
18
|
-
|
16
|
+
reg = Regexp.new(name.source, Regexp::IGNORECASE)
|
17
|
+
ole_methods.select do |k|
|
19
18
|
reg =~ k.name
|
20
19
|
end
|
21
20
|
end
|
@@ -29,8 +28,8 @@ module OleHelper
|
|
29
28
|
end
|
30
29
|
|
31
30
|
def ole_classes_detail
|
32
|
-
s =
|
33
|
-
ole_classes.sort_by{|k| k.ole_type}.each do |k|
|
31
|
+
s = ""
|
32
|
+
ole_classes.sort_by { |k| k.ole_type }.each do |k|
|
34
33
|
s << "#{k.name}\n\n"
|
35
34
|
s << "Type: #{k.ole_type}\n"
|
36
35
|
s << "progid: #{k.progid}\n"
|
@@ -40,9 +39,8 @@ module OleHelper
|
|
40
39
|
s
|
41
40
|
end
|
42
41
|
|
43
|
-
|
44
42
|
def ole_methods_detail
|
45
|
-
s =
|
43
|
+
s = ""
|
46
44
|
ole_methods.each do |m|
|
47
45
|
s << "Method #{m.name}\n\n"
|
48
46
|
s << "dispid: #{m.dispid}\n"
|
@@ -65,7 +63,6 @@ module OleHelper
|
|
65
63
|
s
|
66
64
|
end
|
67
65
|
|
68
|
-
|
69
66
|
def each_ole_type
|
70
67
|
return enum_for(:each_ole_type) unless block_given?
|
71
68
|
typelib.ole_classes.each do |t|
|
@@ -74,8 +71,8 @@ module OleHelper
|
|
74
71
|
end
|
75
72
|
|
76
73
|
def get_ole_type(name)
|
77
|
-
if name.
|
78
|
-
return ole_classes.find{|t| t.name == name}
|
74
|
+
if name.instance_of?(String)
|
75
|
+
return ole_classes.find { |t| t.name == name }
|
79
76
|
end
|
80
77
|
reg = Regexp.new(name.source, Regexp::IGNORECASE)
|
81
78
|
ole_classes.find do |t|
|
@@ -84,69 +81,64 @@ module OleHelper
|
|
84
81
|
end
|
85
82
|
|
86
83
|
def typelib
|
87
|
-
|
84
|
+
ole_typelib
|
88
85
|
end
|
89
|
-
|
90
|
-
|
91
86
|
end
|
92
87
|
|
93
|
-
|
94
88
|
class WIN32OLE
|
95
|
-
|
96
89
|
include OleHelper
|
97
|
-
|
98
90
|
end
|
99
91
|
|
100
92
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
93
|
+
# def select_ole_type(name)
|
94
|
+
# if name.class == String
|
95
|
+
# name = Regexp.new(name)
|
96
|
+
# end
|
97
|
+
# reg = Regexp.new(name.source,Regexp::IGNORECASE)
|
98
|
+
# typelib.ole_classes.select do |k|
|
99
|
+
# reg =~ k.name
|
100
|
+
# end
|
101
|
+
# end
|
102
|
+
|
103
|
+
# def select_ole_method(name)
|
104
|
+
# if name.class == String
|
105
|
+
# name = Regexp.new(name)
|
106
|
+
# end
|
107
|
+
# reg = Regexp.new(name.source,Regexp::IGNORECASE)
|
108
|
+
# ole_obj.ole_methods.select do |k|
|
109
|
+
# reg =~ k.name
|
110
|
+
# end
|
111
|
+
# end
|
112
|
+
|
113
|
+
# def ole_classes
|
114
|
+
# typelib.ole_classes
|
115
|
+
# end
|
116
|
+
|
117
|
+
# def create_ole_type(type)
|
118
|
+
# WIN32OLE.new(type.guid)
|
119
|
+
# end
|
120
|
+
|
121
|
+
# def each_ole_type
|
122
|
+
# return enum_for(:each_ole_type) unless block_given?
|
123
|
+
# typelib.ole_classes.each do |t|
|
124
|
+
# yield t
|
125
|
+
# end
|
126
|
+
# end
|
127
|
+
|
128
|
+
# def get_ole_type(name)
|
129
|
+
# if name.class == String
|
130
|
+
# name = Regexp.new name
|
131
|
+
# end
|
132
|
+
# reg = Regexp.new(name.source, Regexp::IGNORECASE)
|
133
|
+
# typelib.ole_classes.find do |t|
|
134
|
+
# t.name =~ name
|
135
|
+
# end
|
136
|
+
# end
|
145
137
|
|
146
138
|
|
147
139
|
|
148
140
|
# alias :find_ole_type :get_ole_type
|
149
141
|
|
150
|
-
|
151
|
-
|
152
|
-
|
142
|
+
# def typelib
|
143
|
+
# ole_obj.ole_typelib
|
144
|
+
# end
|
@@ -1,12 +1,9 @@
|
|
1
1
|
module Microstation
|
2
|
-
|
3
|
-
|
4
2
|
module PdfSupport
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
pdfname = Pathname(name).ext('pdf')
|
3
|
+
def pdf_name(output_dir = nil)
|
4
|
+
name = basename
|
5
|
+
dir = output_dir || dirname
|
6
|
+
pdfname = Pathname(name).ext("pdf")
|
10
7
|
(dir + pdfname).expand_path
|
11
8
|
end
|
12
9
|
|
@@ -18,23 +15,17 @@ module Microstation
|
|
18
15
|
file.file?
|
19
16
|
end
|
20
17
|
|
21
|
-
def needs_pdf?(output_dir=nil)
|
18
|
+
def needs_pdf?(output_dir = nil)
|
22
19
|
pdf_path = pdf_name(output_dir)
|
23
20
|
!file_exists?(pdf_path) || pdf_older?(pdf_path)
|
24
21
|
end
|
25
22
|
|
26
23
|
def pdf_older?(pdf)
|
27
|
-
|
24
|
+
mtime > pdf.mtime
|
28
25
|
end
|
29
26
|
|
30
|
-
|
31
27
|
def mtime
|
32
|
-
|
28
|
+
path.mtime
|
33
29
|
end
|
34
|
-
|
35
|
-
|
36
30
|
end
|
37
|
-
|
38
|
-
|
39
31
|
end
|
40
|
-
|