Class: Mxrb::Dsl::MenuBuilder
- Inherits:
-
Object
- Object
- Mxrb::Dsl::MenuBuilder
- Defined in:
- lib/mxrb/dsl/builder.rb
Instance Method Summary collapse
- #bson_binary(base64, subtype: :generic) ⇒ Object
- #deep_structure(value) ⇒ Object
-
#initialize(name) ⇒ MenuBuilder
constructor
A new instance of MenuBuilder.
- #item(caption, page: nil, &block) ⇒ Object
- #items ⇒ Object
- #to_h ⇒ Object
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
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 |
#items ⇒ Object
1048 |
# File 'lib/mxrb/dsl/builder.rb', line 1048 def items = @items |
#to_h ⇒ Object
1050 1051 1052 |
# File 'lib/mxrb/dsl/builder.rb', line 1050 def to_h { name: @name, items: @items, deep_structure: @deep_structure } end |