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

Returns a new instance of Attribute.



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

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

Instance Attribute Details

#ole_objObject (readonly)

Returns the value of attribute ole_obj.



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

def ole_obj
  @ole_obj
end

Class Method Details

.tag_type(type) ⇒ Object



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

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



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

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



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

def att_type
  TYPES[type]
end

#attrib_optionsObject



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

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

#closeObject



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

def close
  @ole_obj = nil
end

#constant=(constant) ⇒ Object



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

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

#constant?Boolean

Returns:

  • (Boolean)


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

def constant?
  @ole_obj.IsConstant
end

#defaultObject



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

def default
  @ole_obj.DefaultValue
end

#default=(val) ⇒ Object



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

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

#has_default?Boolean

Returns:

  • (Boolean)


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

def has_default?
  !!default
end

#hidden=(hidden) ⇒ Object



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

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

#hidden?Boolean

Returns:

  • (Boolean)


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

def hidden?
  @ole_obj.IsHidden
end

#nameObject



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

def name
  @ole_obj.name
end

#name=(val) ⇒ Object



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

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

#options_for_attributeObject



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

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



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

def prompt
  @ole_obj.Prompt
end

#prompt=(val) ⇒ Object



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

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

#tagsetObject



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

def tagset
  @definition.tagset if definition
end

#tagset_nameObject



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

def tagset_name
  @ole_obj.TagSetName
end

#to_sObject



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

def to_s
  "TagDefinition: #{name}"
end

#typeObject



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

def type
  TYPES[@ole_obj.TagType]
end