Class: Mxrb::Dsl::MenuBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/dsl/builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ MenuBuilder

Returns a new instance of MenuBuilder.



1026
1027
1028
1029
1030
# File 'lib/mxrb/dsl/builder.rb', line 1026

def initialize(name)
  @name  = name.to_s
  @items = []
  @deep_structure = nil
end

Instance Method Details

#bson_binary(base64, subtype: :generic) ⇒ Object



1038
1039
1040
# File 'lib/mxrb/dsl/builder.rb', line 1038

def bson_binary(base64, subtype: :generic)
  BSON::Binary.new(Base64.strict_decode64(base64), subtype.to_sym)
end

#deep_structure(value) ⇒ Object

Raises:

  • (ArgumentError)


1032
1033
1034
1035
1036
# File 'lib/mxrb/dsl/builder.rb', line 1032

def deep_structure(value)
  raise ArgumentError, "deep_structure requires a Hash" unless value.is_a?(Hash)

  @deep_structure = value
end

#item(caption, page: nil, &block) ⇒ Object



1042
1043
1044
1045
1046
# File 'lib/mxrb/dsl/builder.rb', line 1042

def item(caption, page: nil, &block)
  child = self.class.new(caption)
  child.instance_eval(&block) if block
  @items << { caption: caption.to_s, page: page&.to_s, items: child.items }.compact
end

#itemsObject



1048
# File 'lib/mxrb/dsl/builder.rb', line 1048

def items = @items

#to_hObject



1050
1051
1052
# File 'lib/mxrb/dsl/builder.rb', line 1050

def to_h
  { name: @name, items: @items, deep_structure: @deep_structure }
end