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,20 +1,13 @@
1
1
  module Microstation
2
-
3
2
  class TaggedElement
4
-
5
3
  class Set
4
+ attr_reader :element, :name
6
5
 
7
- attr_reader :element
8
-
9
- def initialize(name,element)
6
+ def initialize(name, element)
10
7
  @name = name
11
8
  @element = element
12
9
  end
13
10
 
14
- def name
15
- @name
16
- end
17
-
18
11
  def elements=(elements)
19
12
  elements.each do |ele|
20
13
  ele.base_element = @element
@@ -23,7 +16,7 @@ module Microstation
23
16
  end
24
17
 
25
18
  def find_attribute(name)
26
- @elements.find{|a| a.name == name.to_s}
19
+ @elements.find { |a| a.name == name.to_s }
27
20
  end
28
21
 
29
22
  def [](name)
@@ -31,10 +24,10 @@ module Microstation
31
24
  end
32
25
 
33
26
  def attributes
34
- @elements.map{|e| e.name}
27
+ @elements.map { |e| e.name }
35
28
  end
36
29
 
37
- def update_element(name,value)
30
+ def update_element(name, value)
38
31
  find_attribute(name)._update(value)
39
32
  end
40
33
 
@@ -45,14 +38,14 @@ module Microstation
45
38
  def to_hash
46
39
  result = {}
47
40
  @elements.each do |ele|
48
- result[ele.name] = ele.value unless (ele.value == "" || ele.value.nil?)
41
+ result[ele.name] = ele.value unless ele.value == "" || ele.value.nil?
49
42
  end
50
43
  result
51
44
  end
52
45
 
53
46
  def stringify_keys(hash)
54
47
  result = {}
55
- hash.each do |key,value|
48
+ hash.each do |key, value|
56
49
  result[key.to_s] = value
57
50
  end
58
51
  result
@@ -62,44 +55,39 @@ module Microstation
62
55
  value_hash = stringify_keys(value_hash)
63
56
  valid_atts = attributes & value_hash.keys
64
57
  valid_atts.each do |att|
65
- update_element(att,value_hash[att])
58
+ update_element(att, value_hash[att])
66
59
  end
67
60
  end
68
61
 
69
- def method_missing(meth,*args,&block)
62
+ def method_missing(meth, *args, &block)
70
63
  # binding.pry
71
64
  base = meth.to_s.sub("=", "")
72
65
  if attributes.include?(base)
73
- if meth.match /(=)/
74
- update_element(base,*args)
66
+ if /(=)/.match?(meth)
67
+ update_element(base, *args)
75
68
  else
76
69
  element_value(base.to_s)
77
70
  end
78
71
  else
79
- super(meth,*args,&block)
72
+ super(meth, *args, &block)
80
73
  end
81
74
  end
82
-
83
75
  end
84
76
 
85
- def initialize(ole=nil)
77
+ def initialize(ole = nil)
86
78
  @ole_obj = ole
87
79
  @tag_sets = []
88
80
  end
89
81
 
90
- def add_tagset(name,elements)
91
- ts = TaggedElement::Set.new(name,self)
82
+ def add_tagset(name, elements)
83
+ ts = TaggedElement::Set.new(name, self)
92
84
  ts.elements = elements
93
85
  @tag_sets << ts
94
86
  ts
95
87
  end
96
88
 
97
89
  def get_tagset(name)
98
- @tagsets.find{|ts| ts.name == name}
90
+ @tagsets.find { |ts| ts.name == name }
99
91
  end
100
-
101
-
102
92
  end
103
-
104
-
105
93
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'erb'
4
- require 'microstation'
5
- require 'liquid'
6
- require 'fileutils'
7
- require 'tmpdir'
8
- require_relative 'changer'
9
- require File.join(File.dirname(__FILE__), 'file_tests')
10
- require File.join(File.dirname(__FILE__), 'errors')
3
+ require "erb"
4
+ require "microstation"
5
+ require "liquid"
6
+ require "fileutils"
7
+ require "tmpdir"
8
+ require_relative "changer"
9
+ require File.join(File.dirname(__FILE__), "file_tests")
10
+ require File.join(File.dirname(__FILE__), "errors")
11
11
 
12
12
  module Microstation
13
13
  class Template
@@ -23,6 +23,7 @@ module Microstation
23
23
 
24
24
  def render(name: nil, output_dir: nil, locals: EMPTY_HASH, tagsets: EMPTY_ARRAY)
25
25
  return if locals == EMPTY_HASH && tagsets == EMPTY_ARRAY
26
+
26
27
  @changer.run(name: name, output_dir: output_dir) do |drawing|
27
28
  locals = normalize_hash(locals)
28
29
  update_text(drawing, locals)
@@ -46,14 +47,14 @@ module Microstation
46
47
  end
47
48
 
48
49
  def change_template_text_normal(drawing, locals = {})
49
- drawing.scan_text do |text|
50
+ drawing.scan_text do |_model, text|
50
51
  new_text = update_liquid_text(text, locals)
51
52
  text.replace new_text if new_text != text.to_s
52
53
  end
53
54
  end
54
55
 
55
56
  def change_template_text_in_cells(drawing, locals = {})
56
- drawing.scan_cells do |c|
57
+ drawing.scan_cells do |_model, c|
57
58
  c.text_elements do |text|
58
59
  new_text = update_liquid_text(text, locals)
59
60
  text.replace new_text if new_text != text.to_s
@@ -65,10 +66,10 @@ module Microstation
65
66
  update_hash = normalize_hash(locals)
66
67
  compiled = ::Liquid::Template.parse(text.to_s)
67
68
  new_text = begin
68
- compiled.render(update_hash)
69
- rescue StandardError
70
- text
71
- end
69
+ compiled.render(update_hash)
70
+ rescue
71
+ text
72
+ end
72
73
  end
73
74
 
74
75
  def normalize_hash(scope)
@@ -1,33 +1,27 @@
1
1
  module Microstation
2
-
3
2
  class TemplateInfo
4
-
5
3
  class TagSetMap
6
-
7
- def initialize(filter,block)
4
+ def initialize(filter, block)
8
5
  @filter = filter
9
6
  @block = block
10
7
  end
11
8
 
12
9
  def call(tagsets)
13
10
  instances = tagsets.select(&filter)
14
- instances.map{ |ti| block.call(ti)}
11
+ instances.map { |ti| block.call(ti) }
15
12
  end
16
13
  end
17
14
 
15
+ LIQUID_REGEXP = /{{([^}]+)}}/
18
16
 
19
-
20
- LIQUID_REGEXP = /{{([^}}]+)}}/
21
-
22
-
23
- attr_reader :drawing,:placeholder_keys, :template, :tagsets,:locals,:drawing_path, :tagset_filter,:tagset_map
17
+ attr_reader :drawing, :placeholder_keys, :template, :tagsets, :locals, :drawing_path, :tagset_filter, :tagset_map
24
18
 
25
19
  def initialize(drawing, tagset_filter: nil, tagset_map: faa_map, visible: false)
26
20
  case drawing
27
21
  when ::Microstation::Drawing
28
22
  initialize_attributes(drawing)
29
23
  return
30
- when String,Pathname
24
+ when String, Pathname
31
25
  drawing_path = drawing
32
26
  else
33
27
  drawing_path = drawing.to_path
@@ -40,7 +34,7 @@ module Microstation
40
34
  end
41
35
  @tagset_filter = tagset_filter
42
36
  @tagset_map = tagset_map
43
- return self
37
+ self
44
38
  end
45
39
 
46
40
  def initialize_attributes(drawing)
@@ -54,7 +48,7 @@ module Microstation
54
48
  end
55
49
 
56
50
  def drawing_tagsets(drawing)
57
- #drawing.tagsets_in_drawing_to_hash
51
+ # drawing.tagsets_in_drawing_to_hash
58
52
  drawing.tagsets_in_drawing_to_hash
59
53
  end
60
54
 
@@ -63,36 +57,35 @@ module Microstation
63
57
  end
64
58
 
65
59
  def to_h
66
- if tagset_filter
67
- filtered = tagsets.select{|ts| tagset_filter.call(ts)}
60
+ filtered = if tagset_filter
61
+ tagsets.select { |ts| tagset_filter.call(ts) }
68
62
  else
69
- filtered = tagsets.dup
63
+ tagsets.dup
70
64
  end
71
- mapped_tsets = filtered.map{|ts| tagset_map.call(ts)}
72
- { template: template,
73
- output_dir: output_dir,
74
- name: drawing_name,
75
- locals: locals,
76
- tagsets: mapped_tsets
77
- }
65
+ mapped_tsets = filtered.map { |ts| tagset_map.call(ts) }
66
+ {template: template,
67
+ output_dir: output_dir,
68
+ name: drawing_name,
69
+ locals: locals,
70
+ tagsets: mapped_tsets}
78
71
  end
79
72
 
80
73
  def default_filter
81
- ->(ts){ ts.name == 'faatitle'}
74
+ ->(ts) { ts.name == "faatitle" }
82
75
  end
83
76
 
84
77
  def before_locals(locals)
85
78
  locals
86
79
  end
87
80
 
88
- def map_tagset(mapname: , filter: tagset_name_filter, &block)
81
+ def map_tagset(mapname:, filter: tagset_name_filter, &block)
89
82
  @tagset_mappings[tname] = TagSetMap.new(filter, block)
90
83
  end
91
84
 
92
85
  def do_tagset_mappings
93
86
  @tagset_mappings.each do |ts_mapper|
94
87
  ts_mapper.call(tagsets)
95
- ti_instances = tagsets.select{|ts| ts['tag_name'] == k}
88
+ ti_instances = tagsets.select { |ts| ts["tag_name"] == k }
96
89
  ti_instances.each do |ti|
97
90
  ti.attributes.map
98
91
  end
@@ -100,11 +93,11 @@ module Microstation
100
93
  end
101
94
 
102
95
  def faa_map
103
- ->(ts){
104
- if ts['tagset_name'] == 'faatitle'
105
- atts = ts['attributes']
106
- new_atts = atts.keep_if{|k,v| faa_title_keys.include? k}
107
- ts['attributes']= new_atts
96
+ lambda { |ts|
97
+ if ts["tagset_name"] == "faatitle"
98
+ atts = ts["attributes"]
99
+ new_atts = atts.keep_if { |k, _v| faa_title_keys.include? k }
100
+ ts["attributes"] = new_atts
108
101
  ts
109
102
  else
110
103
  ts
@@ -113,21 +106,20 @@ module Microstation
113
106
  end
114
107
 
115
108
  def faa_title_keys
116
- %w(microstation_id fac title1 title2 title3 subnam subttle appname appttl file dnnew jcnno city state)
109
+ %w[microstation_id fac title1 title2 title3 subnam subttle appname appttl file dnnew jcnno city state]
117
110
  end
118
111
 
119
-
120
112
  def drawing_name
121
113
  drawing_path.basename.to_s
122
114
  end
123
115
 
124
116
  def yaml_filename
125
- drawing_path.basename.ext('yaml')
117
+ drawing_path.basename.ext("yaml")
126
118
  end
127
119
 
128
120
  def dump(dir = output_dir)
129
121
  dir = Pathname(dir)
130
- File.open(dir + yaml_filename, 'w'){|f| f.puts self.to_yaml}
122
+ File.open(dir + yaml_filename, "w") { |f| f.puts to_yaml }
131
123
  end
132
124
 
133
125
  def to_yaml
@@ -136,37 +128,31 @@ module Microstation
136
128
 
137
129
  protected
138
130
 
139
- def entry_points(drawing)
131
+ def entry_points(_drawing)
140
132
  @entry_points ||= get_entry_points
141
133
  end
142
134
 
143
135
  def get_entry_points(drawing)
144
136
  result = []
145
- drawing.scan_all_text do |m,text|
146
- binding.pry if text =~ /txt1/
147
-
148
- result << [m, text.to_s] if text.to_s =~ /{{([^}}])+}}/
137
+ drawing.scan_text do |model, text|
138
+ result << [model, text.to_s] if /{{([^}])+}}/.match?(text.to_s)
149
139
  end
150
- binding.pry
151
140
  result
152
141
  end
153
142
 
154
- def keys_from_entry_points(entry_points= get_entry_points)
155
- entry_points.reduce([]) do |result,(m,text)|
156
- text.scan(LIQUID_REGEXP).flatten.map{|t| t.strip}.each do |a|
143
+ def keys_from_entry_points(entry_points = get_entry_points)
144
+ entry_points.reduce([]) do |result, (_m, text)|
145
+ text.scan(LIQUID_REGEXP).flatten.map { |t| t.strip }.each do |a|
157
146
  result << a
158
147
  end
159
148
  result.uniq
160
149
  end
161
150
  end
162
151
 
163
- def keys_to_h(keys= @placeholder_keys)
164
- keys.each_with_object({}) do |k,h|
152
+ def keys_to_h(keys = @placeholder_keys)
153
+ keys.each_with_object({}) do |k, h|
165
154
  h[k] = ""
166
155
  end
167
156
  end
168
-
169
-
170
157
  end
171
-
172
158
  end
@@ -1,7 +1,5 @@
1
1
  module Microstation
2
-
3
2
  class TemplateRunner
4
-
5
3
  attr_reader :file, :template_hash
6
4
 
7
5
  def initialize(file)
@@ -11,18 +9,16 @@ module Microstation
11
9
  end
12
10
 
13
11
  def load(file)
14
- begin
15
- File.open(file) do |f|
16
- YAML.load(f)
17
- end
18
- rescue => e
19
- binding.pry
20
- puts "Could not parse YAML: #{e.message}"
12
+ File.open(file) do |f|
13
+ YAML.load(f)
21
14
  end
15
+ rescue => e
16
+ binding.pry
17
+ puts "Could not parse YAML: #{e.message}"
22
18
  end
23
19
 
24
20
  def name
25
- template_hash[:name] || Pathname(template).basename.ext('.dgn')
21
+ template_hash[:name] || Pathname(template).basename.ext(".dgn")
26
22
  end
27
23
 
28
24
  def locals
@@ -41,25 +37,21 @@ module Microstation
41
37
  template_hash[:template]
42
38
  end
43
39
 
44
- def run_with_app(app,options = {})
45
- run_options = { app: app}.merge(options)
40
+ def run_with_app(app, options = {})
41
+ run_options = {app: app}.merge(options)
46
42
  run(run_options)
47
43
  end
48
44
 
49
45
  def run(options = {})
50
- begin
51
46
  the_template = Template.new(template)
52
- template_options = { output_dir: output_dir,
53
- locals: locals,
54
- name: name,
55
- tagsets: tagsets
56
- }
47
+ template_options = {output_dir: output_dir,
48
+ locals: locals,
49
+ name: name,
50
+ tagsets: tagsets}
57
51
  run_options = template_options.merge(options)
58
52
  the_template.render(run_options)
59
- rescue
60
- binding.pry
61
- end
53
+ rescue
54
+ binding.pry
62
55
  end
63
-
64
56
  end
65
57
  end
@@ -1,11 +1,8 @@
1
- require 'microstation/element'
1
+ require "microstation/element"
2
2
 
3
3
  module Microstation
4
-
5
4
  class Text < Element
6
-
7
-
8
- def read_ole(ole)
5
+ def read_ole(_ole)
9
6
  ole_obj.Text
10
7
  end
11
8
 
@@ -21,7 +18,6 @@ module Microstation
21
18
  @original =~ reg
22
19
  end
23
20
 
24
-
25
21
  # def microstation_id
26
22
  # @ole_obj.Id || @ole_obj.ID64
27
23
  # end
@@ -40,27 +36,31 @@ module Microstation
40
36
  def bounds
41
37
  binding.pry
42
38
  rotation = ole_obj.Rotation
43
- inverse_rotation = app_ole_obj.Matrix3dInverse(rotation) rescue pry
44
- transform = app_ole_obj.Transform3dFromMatrix3dandFixedPoint3d(app_ole_obj.Matrix3dInverse(rotation), ole_obj.origin)
39
+ inverse_rotation = begin
40
+ app_ole_obj.Matrix3dInverse(rotation)
41
+ rescue
42
+ pry
43
+ end
44
+ transform = app_ole_obj.Transform3dFromMatrix3dandFixedPoint3d(app_ole_obj.Matrix3dInverse(rotation),
45
+ ole_obj.origin)
45
46
  ole_obj.transform transform
46
47
  pts = []
47
48
 
48
- 0.upto(4) do |i|
49
+ 0.upto(4) do |i|
49
50
  points[i] = ole_obj.Boundary.Low
50
51
  end
51
52
  points[2] = self.Boundary.High
52
53
  points[1].X = points[2].x
53
54
  points[3].y = points[2].Y
54
-
55
55
  end
56
56
 
57
- def method_missing(meth,*args, &block)
58
- if meth =~ /^[A-Z]/
59
- ole_obj.send(meth,*args)
57
+ def method_missing(meth, *args, &block)
58
+ if /^[A-Z]/.match?(meth)
59
+ ole_obj.send(meth, *args)
60
60
  else
61
61
  dup = @original.dup
62
- result = dup.send(meth,*args, &block)
63
- update(result)
62
+ result = dup.send(meth, *args, &block)
63
+ update(result)
64
64
  result
65
65
  end
66
66
  end
@@ -71,9 +71,5 @@ module Microstation
71
71
  # _update(dup) unless dup == @original_text
72
72
  # result
73
73
  # end
74
-
75
-
76
-
77
74
  end
78
-
79
75
  end
@@ -1,15 +1,11 @@
1
1
  module Microstation
2
-
3
2
  class TextNode < Element
4
-
5
3
  attr_reader :original, :ole_obj
6
4
 
7
-
8
5
  def to_regexp
9
6
  Regexp.new(original.to_s)
10
7
  end
11
8
 
12
-
13
9
  def empty?
14
10
  ole_obj.TextLinesCount == 0
15
11
  end
@@ -22,7 +18,6 @@ module Microstation
22
18
  ole_obj.TextLinesCount
23
19
  end
24
20
 
25
-
26
21
  def read_ole(ole)
27
22
  count = ole.TextLinesCount
28
23
  # debugger if count > 0
@@ -54,17 +49,15 @@ module Microstation
54
49
  end
55
50
 
56
51
  def write_ole_in_cell(text)
57
- begin
58
- orig_ole = ole_obj
59
- new_text_ole = ole_obj.Clone
60
- new_text_ole.DeleteAllTextLines
61
- text.each_line do |line|
62
- new_text_ole.AddTextLine(line)
63
- end
64
- @ole_obj = new_text_ole
65
- rescue => e
66
- @ole_obj = orig_ole
52
+ orig_ole = ole_obj
53
+ new_text_ole = ole_obj.Clone
54
+ new_text_ole.DeleteAllTextLines
55
+ text.each_line do |line|
56
+ new_text_ole.AddTextLine(line)
67
57
  end
58
+ @ole_obj = new_text_ole
59
+ rescue => e
60
+ @ole_obj = orig_ole
68
61
  end
69
62
 
70
63
  def update_ole!(text)
@@ -81,33 +74,33 @@ module Microstation
81
74
  end
82
75
 
83
76
  def =~(reg)
84
- @original =~ reg
77
+ @original =~ reg
85
78
  end
86
79
 
87
80
  def template?
88
81
  !!(@original =~ /{{.+}}/)
89
82
  end
90
83
 
91
- def render(h={})
92
- return self unless template?
93
- template = Liquid::Template.parse(self.to_s)
84
+ def render(h = {})
85
+ return self unless template?
86
+
87
+ template = Liquid::Template.parse(to_s)
94
88
  result = template.render(h)
95
89
  update(result) unless result == @original
96
90
  self
97
91
  end
98
92
 
99
- def method_missing(meth,*args,&block)
100
- if meth =~ /^[A-Z]/
101
- ole_obj.send(meth,*args)
93
+ def method_missing(meth, *args, &block)
94
+ if /^[A-Z]/.match?(meth)
95
+ ole_obj.send(meth, *args)
102
96
  else
103
97
  copy = @original.dup
104
- result = copy.send(meth,*args,&block)
98
+ result = copy.send(meth, *args, &block)
105
99
  update(result) unless copy == @original
106
100
  result
107
101
  end
108
102
  end
109
103
 
110
-
111
104
  # def method_missing2(meth,*args,&block)
112
105
  # if meth.to_s =~ /^[A-Z]/
113
106
  # ole_obj.send(meth,*args)
@@ -118,7 +111,5 @@ module Microstation
118
111
  # result
119
112
  # end
120
113
  # end
121
-
122
114
  end
123
-
124
115
  end
@@ -1,9 +1,6 @@
1
1
  module Microstation
2
-
3
2
  module TS
4
-
5
3
  class Attribute
6
-
7
4
  attr_reader :ole_obj
8
5
 
9
6
  # msdTagTypeCharacter 1 (&H1)
@@ -16,26 +13,26 @@ module Microstation
16
13
  1 => String,
17
14
  2 => Integer,
18
15
  3 => Integer,
19
- 4 => Float,
16
+ 4 => Float
20
17
  # 5 => Binary
21
18
  }
22
19
 
23
20
  RUBY_TO_MS = TYPES.invert
24
21
 
25
22
  def self.tag_type(type)
26
- if type.class == Symbol
27
- ruby_type = case type
28
- when :char
29
- String
30
- when :int
31
- Integer
32
- when :float
33
- Float
34
- else
35
- :char
36
- end
23
+ ruby_type = if type.instance_of?(Symbol)
24
+ case type
25
+ when :char
26
+ String
27
+ when :int
28
+ Integer
29
+ when :float
30
+ Float
31
+ else
32
+ :char
33
+ end
37
34
  else
38
- ruby_type = type
35
+ type
39
36
  end
40
37
 
41
38
  RUBY_TO_MS[ruby_type]
@@ -104,9 +101,10 @@ module Microstation
104
101
  end
105
102
 
106
103
  def hidden=(hidden)
107
- bool = hidden ? true :false
104
+ bool = hidden ? true : false
108
105
  @ole_obj.IsHidden = bool
109
106
  end
107
+
110
108
  def prompt
111
109
  @ole_obj.Prompt
112
110
  end
@@ -131,10 +129,8 @@ module Microstation
131
129
  end
132
130
 
133
131
  def ==(other)
134
- @ole_obj.Name == other.ole_obj.Name && @ole_obj.TagSetName == other.ole_obj.TagSetName && @ole_obj.TagType == other.ole_obj.TagType
132
+ @ole_obj.Name == other.ole_obj.Name && @ole_obj.TagSetName == other.ole_obj.TagSetName && @ole_obj.TagType == other.ole_obj.TagType
135
133
  end
136
-
137
134
  end
138
-
139
135
  end
140
136
  end