Sha256: 85168de22060f94bd770c5cae2c5fe3dc75b3c5d32e61badbe591c8b375c1e8d

Contents?: true

Size: 920 Bytes

Versions: 19

Compression:

Stored size: 920 Bytes

Contents

# frozen_string_literal: true

module Vedeu

  module Coercers

    # Provides the mechanism to convert a value into a
    # {Vedeu::Editor::Lines}.
    #
    # @api private
    #
    class EditorLines < Vedeu::Coercers::Coercer

      # @macro raise_fatal
      # @return [Vedeu::Editor::Lines]
      def coerce
        if coerced?
          klass.new(value.lines)

        elsif array?(value)
          collection = value.map do |line|
            Vedeu::Editor::Line.coerce(line)
          end

          klass.new(collection)

        elsif string?(value)
          collection = value.lines.map(&:chomp).map do |line|
            Vedeu::Editor::Line.coerce(line)
          end

          klass.new(collection)

        else
          klass.new

        end
      end

      private

      # @return [Class]
      def klass
        Vedeu::Editor::Lines
      end

    end # EditorLines

  end # Coercers

end # Vedeu

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
vedeu-0.8.32 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.31 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.30 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.29 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.28 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.27 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.26 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.25 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.24 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.23 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.22 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.21 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.20 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.19 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.18 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.17 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.16 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.15 lib/vedeu/coercers/editor_lines.rb
vedeu-0.8.14 lib/vedeu/coercers/editor_lines.rb