Class: Bitch
- Inherits:
-
Object
- Object
- Bitch
- Defined in:
- lib/bitch.rb
Class Method Summary collapse
- .compose {|composition| ... } ⇒ Object
- .create(name, params = {}) ⇒ Object
-
.template(name) {|| ... } ⇒ Object
Class methods.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #[]=(name, value) ⇒ Object
- #add(name, object) ⇒ Object
- #bit_string ⇒ Object
- #bits(name, params = {}) ⇒ Object
- #bring(name, params = {}) ⇒ Object
- #get_bits ⇒ Object
- #hex_string ⇒ Object
-
#integer ⇒ Object
Object methods.
- #oct_string ⇒ Object
Class Method Details
.compose {|composition| ... } ⇒ Object
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
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_string ⇒ Object
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_bits ⇒ Object
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_string ⇒ Object
28 |
# File 'lib/bitch.rb', line 28 def hex_string; get_bits.hex_string end |
#integer ⇒ Object
Object methods
26 |
# File 'lib/bitch.rb', line 26 def integer; get_bits.integer end |
#oct_string ⇒ Object
29 |
# File 'lib/bitch.rb', line 29 def oct_string; get_bits.oct_string end |