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.
1057 1058 1059 1060 1061 |
# File 'lib/mxrb/dsl/builder.rb', line 1057 def initialize(name) @name = name.to_s @items = [] @deep_structure = nil end |
Instance Method Details
#bson_binary(base64, subtype: :generic) ⇒ Object
1069 1070 1071 |
# File 'lib/mxrb/dsl/builder.rb', line 1069 def bson_binary(base64, subtype: :generic) BSON::Binary.new(Base64.strict_decode64(base64), subtype.to_sym) end |
#deep_structure(value) ⇒ Object
1063 1064 1065 1066 1067 |
# File 'lib/mxrb/dsl/builder.rb', line 1063 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
1073 1074 1075 1076 1077 |
# File 'lib/mxrb/dsl/builder.rb', line 1073 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
1079 |
# File 'lib/mxrb/dsl/builder.rb', line 1079 def items = @items |
#to_h ⇒ Object
1081 1082 1083 |
# File 'lib/mxrb/dsl/builder.rb', line 1081 def to_h { name: @name, items: @items, deep_structure: @deep_structure } end |