Class: Bitch

Inherits:
Object
  • Object
show all
Defined in:
lib/bitch.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.compose {|composition| ... } ⇒ Object

Yields:

  • (composition)


18
19
20
21
22
# File 'lib/bitch.rb', line 18

def self.compose(&block)
  composition = self.new
  yield composition
  composition
end

.create(name, params = {}) ⇒ Object



13
14
15
16
# File 'lib/bitch.rb', line 13

def self.create(name, params = {})
  params.each_pair { |k,v| templates[name][k] = v }
  templates[name]
end

.template(name) {|| ... } ⇒ Object

Class methods

Yields:

  • ()


7
8
9
10
11
# File 'lib/bitch.rb', line 7

def self.template(name, &block)
  templates[name] = self.new
  yield templates[name]
  nil
end

Instance Method Details

#[](name) ⇒ Object



53
54
55
# File 'lib/bitch.rb', line 53

def [](name)
  fields.select { |field| field.key?(name) }.first.values.first
end

#[]=(name, value) ⇒ Object



57
58
59
60
61
# File 'lib/bitch.rb', line 57

def []=(name, value)
  element_array = fields.select { |field| field.key?(name) }
  element = element_array.first.values.first unless element_array.empty?
  element.set(value) unless element.nil?
end

#add(name, object) ⇒ Object



31
32
33
# File 'lib/bitch.rb', line 31

def add(name, object)
  fields << { name => object.get_bits }
end

#bit_stringObject



27
# File 'lib/bitch.rb', line 27

def bit_string; get_bits.bit_string end

#bits(name, params = {}) ⇒ Object



40
41
42
43
44
# File 'lib/bitch.rb', line 40

def bits(name, params = {})
  value = params.key?(:value) ? params[:value] : 0
  length = params.key?(:length) ? params[:length] : 0
  fields << { name => Bits.new(value, length) }
end

#bring(name, params = {}) ⇒ Object



35
36
37
38
# File 'lib/bitch.rb', line 35

def bring(name, params = {})
  object = Bitch.create(name, params)
  fields << { name => object.get_bits }
end

#get_bitsObject



46
47
48
49
50
51
# File 'lib/bitch.rb', line 46

def get_bits
  fields.inject(nil) do |composed, field|
    bits = field.values.first
    composed ? composed + bits : bits
  end
end

#hex_stringObject



28
# File 'lib/bitch.rb', line 28

def hex_string; get_bits.hex_string end

#integerObject

Object methods



26
# File 'lib/bitch.rb', line 26

def integer; get_bits.integer end

#oct_stringObject



29
# File 'lib/bitch.rb', line 29

def oct_string; get_bits.oct_string end