Class: Microstation::Scan::Criteria

Inherits:
Object
  • Object
show all
Includes:
Color, Klass, Level, LineStyle, LineWeight, Range, Subtype, Type
Defined in:
lib/microstation/scan/criteria.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Range

#include_within_range, #range_from_points

Methods included from Subtype

#include_subtype, #reset_ole_subtypes, #reset_subtypes, #resolve_subtype_scans, #subtype_inclusions

Methods included from LineWeight

#include_lineweight, #lineweight_inclusions, #reset_lineweights, #reset_ole_lineweights, #resolve_lineweight_scans

Methods included from LineStyle

#include_linestyle, #linestyle_inclusions, #linestyles, #reset_linestyles, #reset_ole_linestyles, #resolve_linestyle_scans

Methods included from Color

#color_inclusions, #include_color, #reset_colors, #reset_ole_colors, #resolve_color_scans

Methods included from Level

#include_level, #level_inclusions, #reset_levels, #reset_ole_levels, #resolve_level_scans

Methods included from Type

#include_cell_header, #include_cells, #include_dimensions, #include_lines, #include_shared_cell, #include_solids, #include_tags, #include_text, #include_text_nodes, #include_textual, #include_type, #reset_ole_types, #reset_types, #resolve_type_scans, #type_inclusions

Methods included from Klass

#class_inclusions, #include_class, #reset_classes, #reset_ole_classes, #resolve_class_scans

Constructor Details

#initialize(app) ⇒ Criteria

Returns a new instance of Criteria.



47
48
49
50
51
# File 'lib/microstation/scan/criteria.rb', line 47

def initialize(app)
  @app = app
  @ole_obj = @app.create_ole_scan_criteria
  @app.load_constants unless defined? ::Microstation::MSD
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object



68
69
70
# File 'lib/microstation/scan/criteria.rb', line 68

def method_missing(method, *args)
  @ole_obj.send(method, *args)
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app.



30
31
32
# File 'lib/microstation/scan/criteria.rb', line 30

def app
  @app
end

#ole_objObject (readonly)

Returns the value of attribute ole_obj.



30
31
32
# File 'lib/microstation/scan/criteria.rb', line 30

def ole_obj
  @ole_obj
end

Class Method Details

.create(name = nil, app) ⇒ Object



40
41
42
43
44
45
# File 'lib/microstation/scan/criteria.rb', line 40

def self.create(name = nil, app)
  sc = new(app)
  name = "anon#{app.scanners.size + 1}" if name.nil?
  app.scanners[name] = sc
  sc
end

.create_scanner(name = nil, app, &block) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/microstation/scan/criteria.rb', line 32

def self.create_scanner(name = nil, app, &block)
  sc = create(name, app)
  return sc unless block

  (block.arity < 1) ? sc.instance_eval(&block) : block.call(sc)
  sc
end

Instance Method Details

#closeObject



63
64
65
66
# File 'lib/microstation/scan/criteria.rb', line 63

def close
  @app.scanners.delete(self) if @app
  @ole_obj = nil
end

#resolveObject



53
54
55
56
57
58
59
60
61
# File 'lib/microstation/scan/criteria.rb', line 53

def resolve
  resolve_type_scans
  resolve_class_scans
  resolve_color_scans
  resolve_level_scans
  resolve_linestyle_scans
  resolve_lineweight_scans
  resolve_subtype_scans
end