Sha256: 2924e3dd8b997816d22faf31645c2e279f2cfc495cabbdaf70afbfd8361ae0c0

Contents?: true

Size: 1.15 KB

Versions: 9

Compression:

Stored size: 1.15 KB

Contents

# -*- encoding : utf-8 -*-

class Card
  class Content
    module Chunk
      class Reference < Abstract
        attr_writer :referee_name
        attr_accessor :name

        def referee_name
          return if name.nil?

          @referee_name ||= referee_raw_name
          @referee_name = @referee_name.absolute_name card.name
        rescue Card::Error::NotFound
          # do not break on missing id/codename references.
        end

        def referee_raw_name
          Name[render_obj(name)]
        end

        def referee_card
          @referee_card ||= referee_name && Card.fetch(referee_name)
        end

        private

        def replace_name_reference old_name, new_name
          @referee_card = nil
          @referee_name = nil
          if name.is_a? Content
            name.find_chunks(:Reference).each do |chunk|
              chunk.replace_reference old_name, new_name
            end
          else
            @name = name.to_name.swap old_name, new_name
          end
        end

        def render_obj raw
          return raw unless format && raw.is_a?(Content)

          format.process_content raw
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
card-mod-content-0.13.4 lib/card/content/chunk/reference.rb
card-mod-content-0.13.3 lib/card/content/chunk/reference.rb
card-mod-content-0.13.2 lib/card/content/chunk/reference.rb
card-mod-content-0.13.1 lib/card/content/chunk/reference.rb
card-mod-content-0.13.0 lib/card/content/chunk/reference.rb
card-mod-content-0.11.7 lib/card/content/chunk/reference.rb
card-mod-content-0.12.0 lib/card/content/chunk/reference.rb
card-mod-content-0.11.6 lib/card/content/chunk/reference.rb
card-mod-content-0.11.5 lib/card/content/chunk/reference.rb