Sha256: bdcf596775336bb6996dd3caac6587c942b9d944ee71520c07e653d8379fc979

Contents?: true

Size: 1.95 KB

Versions: 9

Compression:

Stored size: 1.95 KB

Contents

# -*- encoding : utf-8 -*-
class Card; module Set; class All
# Set: All cards (NestEditor)
#
#! no set module

module NestEditor;
def self.source_location; "/Users/ethan/dev/decko/gem/card/mod/edit/set/all/nest_editor/nest_parser.rb"; end
# Extracts all information needed to generate the nest editor form
# from a nest syntax string
class NestParser
  attr_reader :name, :options, :item_options, :raw

  def self.new nest_string, default_view, default_item_view
    return super if nest_string.is_a? String

    OpenStruct.new(name: "", field?: true,
                   options: [[:view, default_view]], item_options: [],
                   raw: "{{+|view: #{default_view}}}")
  end

  def field?
    @field
  end

  def initialize nest_string, _default_view, default_item_view
    @raw = nest_string
    @default_item_view = default_item_view
    nest = Card::Content::Chunk::Nest.new nest_string, nil
    init_name nest.name
    extract_item_options nest.options
    @options = extract_options nest.options
  end

  private

  def init_name name
    @field = name.to_name.simple_relative?
    @name = @field ? name.to_s[1..-1] : name
  end

  def extract_options options
    Card::Set::All::NestEditor::NEST_OPTIONS.each_with_object([]) do |key, res|
      next unless options[key]

      if key.in? %i[show hide]
        values = Card::View.normalize_list(options[key])
        res.concat(values.map { |val| [key, val] })
      else
        res << [key, options[key]]
      end
    end
  end

  def extract_item_options options
    @item_options = []
    item_options = options[:items]
    while item_options
      next_item_options = item_options[:items]
      @item_options << extract_options(item_options)
      item_options = next_item_options
    end
    # @item_options << default_item_options
  end

  def default_item_options
    [:view, @default_item_view]
  end
end
end;end;end;end;
# ~~ generated from /Users/ethan/dev/decko/gem/card/mod/edit/set/all/nest_editor/nest_parser.rb ~~

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
card-1.99.4 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.99.3 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.99.2 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.99.1 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.99.0 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.98.3 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.98.2 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.98.1 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb
card-1.98.0 tmpsets/set/mod023-edit/all/nest_editor/nest_parser.rb