microstation 0.8.6 → 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 -45
  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 +53 -68
  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 +26 -12
@@ -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