Class: Microstation::Scan::Criteria

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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_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.



51
52
53
54
55
# File 'lib/microstation/scan/criteria.rb', line 51

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



77
78
79
# File 'lib/microstation/scan/criteria.rb', line 77

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

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app.



35
36
37
# File 'lib/microstation/scan/criteria.rb', line 35

def app
  @app
end

Class Method Details

.create(app) ⇒ Object



44
45
46
47
48
# File 'lib/microstation/scan/criteria.rb', line 44

def self.create(app)
  sc = new(app)
  app.scanners << sc
  sc
end

.create_scanner(app, &block) ⇒ Object



37
38
39
40
41
42
# File 'lib/microstation/scan/criteria.rb', line 37

def self.create_scanner(app,&block)
  sc = create(app)
  return sc unless block
  block.arity < 1 ? sc.instance_eval(&block) : block.call(sc)
  sc
end

Instance Method Details

#closeObject



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

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

#ole_objObject



73
74
75
# File 'lib/microstation/scan/criteria.rb', line 73

def ole_obj
  @ole_obj
end

#resolveObject



57
58
59
60
61
62
63
64
65
# File 'lib/microstation/scan/criteria.rb', line 57

def resolve
  resolve_type_scans
  resolve_class_scans
  resolve_color_scans
  resolve_level_scans
  resolve_linestyle_scans
  resolve_lineweight_scans
  resolve_subtype_scans
end