Class: Microstation::TS::Attribute

Inherits:
Object
  • Object
show all
Defined in:
lib/microstation/ts/attribute.rb

Constant Summary collapse

TYPES =

msdTagTypeCharacter 1 (&H1) msdTagTypeShortInteger 2 (&H2) msdTagTypeLongInteger 3 (&H3) msdTagTypeDouble 4 (&H4) msdTagTypeBinary 5 (&H5)

{
  1 => String,
  2 => Integer,
  3 => Integer,
  4 => Float,
  #   5 => Binary

}
RUBY_TO_MS =
TYPES.invert

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ole, options = {}) ⇒ Attribute



48
49
50
51
# File 'lib/microstation/ts/attribute.rb', line 48

def initialize(ole, options = {})
  @ole_obj = ole
  @definition = options[:definer]
end

Instance Attribute Details

#ole_objObject (readonly)

Returns the value of attribute ole_obj.



7
8
9
# File 'lib/microstation/ts/attribute.rb', line 7

def ole_obj
  @ole_obj
end

Class Method Details

.tag_type(type) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/microstation/ts/attribute.rb', line 25

def self.tag_type(type)
  if type.class == Symbol
    ruby_type = case type
                when :char
                  String
                when :int
                  Integer
                when :float
                  Float
                else
                  :char
                end
  else
    ruby_type = type
  end

  RUBY_TO_MS[ruby_type]
end

Instance Method Details

#==(other) ⇒ Object



133
134
135
# File 'lib/microstation/ts/attribute.rb', line 133

def ==(other)
  @ole_obj.Name == other.ole_obj.Name  && @ole_obj.TagSetName == other.ole_obj.TagSetName && @ole_obj.TagType == other.ole_obj.TagType
end

#att_typeObject



44
45
46
# File 'lib/microstation/ts/attribute.rb', line 44

def att_type
  TYPES[type]
end

#attrib_optionsObject



122
123
124
125
126
127
# File 'lib/microstation/ts/attribute.rb', line 122

def attrib_options
  options = {}
  options[:default] = default_value if has_default?
  options[:readonly] = true if constant?
  options
end

#closeObject



53
54
55
# File 'lib/microstation/ts/attribute.rb', line 53

def close
  @ole_obj = nil
end

#constant=(constant) ⇒ Object



85
86
87
88
# File 'lib/microstation/ts/attribute.rb', line 85

def constant=(constant)
  bool = constant ? true : false
  @ole_obj.IsConstant = bool
end

#constant?Boolean



81
82
83
# File 'lib/microstation/ts/attribute.rb', line 81

def constant?
  @ole_obj.IsConstant
end

#defaultObject



90
91
92
# File 'lib/microstation/ts/attribute.rb', line 90

def default
  @ole_obj.DefaultValue
end

#default=(val) ⇒ Object



94
95
96
# File 'lib/microstation/ts/attribute.rb', line 94

def default=(val)
  @ole_obj.DefaultValue = val
end

#has_default?Boolean



98
99
100
# File 'lib/microstation/ts/attribute.rb', line 98

def has_default?
  !!default
end

#hidden=(hidden) ⇒ Object



106
107
108
109
# File 'lib/microstation/ts/attribute.rb', line 106

def hidden=(hidden)
  bool =  hidden ? true :false
  @ole_obj.IsHidden = bool
end

#hidden?Boolean



102
103
104
# File 'lib/microstation/ts/attribute.rb', line 102

def hidden?
  @ole_obj.IsHidden
end

#nameObject



61
62
63
# File 'lib/microstation/ts/attribute.rb', line 61

def name
  @ole_obj.name
end

#name=(val) ⇒ Object



65
66
67
# File 'lib/microstation/ts/attribute.rb', line 65

def name=(val)
  @ole_obj.Name = val
end

#options_for_attributeObject



69
70
71
72
73
74
75
# File 'lib/microstation/ts/attribute.rb', line 69

def options_for_attribute
  options = {}
  options[:is_hidden] = true if hidden?
  options[:prompt] = prompt if prompt
  options[:default] = default_value
  options[:readonly] = true if constant?
end

#promptObject



110
111
112
# File 'lib/microstation/ts/attribute.rb', line 110

def prompt
  @ole_obj.Prompt
end

#prompt=(val) ⇒ Object



114
115
116
# File 'lib/microstation/ts/attribute.rb', line 114

def prompt=(val)
  @ole_obj.Prompt = val
end

#tagsetObject



57
58
59
# File 'lib/microstation/ts/attribute.rb', line 57

def tagset
  @definition.tagset if definition
end

#tagset_nameObject



129
130
131
# File 'lib/microstation/ts/attribute.rb', line 129

def tagset_name
  @ole_obj.TagSetName
end

#to_sObject



77
78
79
# File 'lib/microstation/ts/attribute.rb', line 77

def to_s
  "TagDefinition: #{name}"
end

#typeObject



118
119
120
# File 'lib/microstation/ts/attribute.rb', line 118

def type
  TYPES[@ole_obj.TagType]
end