Module: DataTypes

Included in:
Sam::Read
Defined in:
lib/germ/data_types.rb

Instance Method Summary collapse

Instance Method Details

#attr_accessor_of_type(name, type = nil) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/germ/data_types.rb', line 2

def attr_accessor_of_type name, type=nil
  send :define_method, name do
    instance_variable_get("@#{name}")
  end
  send :define_method, "#{name}=" do  |v|
    if block_given?
      instance_variable_set "@#{name}", yield(v) 
    else
      if v.respond_to? type
        instance_variable_set "@#{name}", v.send(type)
      else
        raise ArgumentException
      end
    end
  end
end

#attr_array(*names) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/germ/data_types.rb', line 36

def attr_array *names
  names.each do |name|
    attr_accessor_of_type name do |v|
      if block_given?
        yield v
      else
        v.split(//)
      end
    end
  end
end

#attr_integer(*names) ⇒ Object



24
25
26
27
28
# File 'lib/germ/data_types.rb', line 24

def attr_integer *names
  names.each do |name|
    attr_accessor_of_type name, :to_i
  end
end

#attr_string(*names) ⇒ Object



19
20
21
22
23
# File 'lib/germ/data_types.rb', line 19

def attr_string *names
  names.each do |name|
    attr_accessor_of_type name, :to_s
  end
end

#attr_sym(*names) ⇒ Object



30
31
32
33
34
# File 'lib/germ/data_types.rb', line 30

def attr_sym *names
  names.each do |name|
    attr_accessor_of_type name, :to_sym
  end
end