Class: TreeHaver::Backends::Markly::Language

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/tree_haver/backends/markly.rb

Overview

Markly language wrapper

Markly only parses Markdown. This class exists for API compatibility and to pass through Markly-specific options (flags, extensions).

Examples:

language = TreeHaver::Backends::Markly::Language.markdown(
  flags: Markly::DEFAULT | Markly::FOOTNOTES,
  extensions: [:table, :strikethrough]
)
parser.language = language

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = :markdown, flags: nil, extensions: [:table]) ⇒ Language

Create a new Markly language instance

Parameters:

  • name (Symbol) (defaults to: :markdown)

    Language name (should be :markdown)

  • flags (Integer) (defaults to: nil)

    Markly parse flags (default: Markly::DEFAULT)

  • extensions (Array<Symbol>) (defaults to: [:table])

    Extensions to enable (default: [:table])



104
105
106
107
108
109
# File 'lib/tree_haver/backends/markly.rb', line 104

def initialize(name = :markdown, flags: nil, extensions: [:table])
  @name = name.to_sym
  @backend = :markly
  @flags = flags  # Will use Markly::DEFAULT if nil at parse time
  @extensions = extensions
end

Instance Attribute Details

#backendSymbol (readonly)

The backend this language is for

Returns:

  • (Symbol)


89
90
91
# File 'lib/tree_haver/backends/markly.rb', line 89

def backend
  @backend
end

#extensionsArray<Symbol> (readonly)

Markly extensions to enable

Returns:

  • (Array<Symbol>)


97
98
99
# File 'lib/tree_haver/backends/markly.rb', line 97

def extensions
  @extensions
end

#flagsInteger (readonly)

Markly parse flags

Returns:

  • (Integer)


93
94
95
# File 'lib/tree_haver/backends/markly.rb', line 93

def flags
  @flags
end

#nameSymbol (readonly)

The language name (always :markdown for Markly)

Returns:

  • (Symbol)


85
86
87
# File 'lib/tree_haver/backends/markly.rb', line 85

def name
  @name
end

Class Method Details

.markdown(flags: nil, extensions: [:table]) ⇒ Language

Create a Markdown language instance

Parameters:

  • flags (Integer) (defaults to: nil)

    Markly parse flags

  • extensions (Array<Symbol>) (defaults to: [:table])

    Extensions to enable

Returns:



117
118
119
# File 'lib/tree_haver/backends/markly.rb', line 117

def markdown(flags: nil, extensions: [:table])
  new(:markdown, flags: flags, extensions: extensions)
end

Instance Method Details

#<=>(other) ⇒ Object

Comparison for sorting/equality



123
124
125
126
# File 'lib/tree_haver/backends/markly.rb', line 123

def <=>(other)
  return unless other.is_a?(Language)
  name <=> other.name
end

#inspectObject



128
129
130
# File 'lib/tree_haver/backends/markly.rb', line 128

def inspect
  "#<TreeHaver::Backends::Markly::Language name=#{name} flags=#{flags} extensions=#{extensions}>"
end