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.
939 940 941 942 943 |
# File 'lib/mxrb/dsl/builder.rb', line 939 def initialize(name) @name = name.to_s @items = [] @deep_structure = nil end |
Instance Method Details
#bson_binary(base64, subtype: :generic) ⇒ Object
951 952 953 |
# File 'lib/mxrb/dsl/builder.rb', line 951 def bson_binary(base64, subtype: :generic) BSON::Binary.new(Base64.strict_decode64(base64), subtype.to_sym) end |
#deep_structure(value) ⇒ Object
945 946 947 948 949 |
# File 'lib/mxrb/dsl/builder.rb', line 945 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
955 956 957 958 959 |
# File 'lib/mxrb/dsl/builder.rb', line 955 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
961 |
# File 'lib/mxrb/dsl/builder.rb', line 961 def items = @items |
#to_h ⇒ Object
963 964 965 |
# File 'lib/mxrb/dsl/builder.rb', line 963 def to_h { name: @name, items: @items, deep_structure: @deep_structure } end |