Sha256: 09cbf903a29cc78d918fb8f903ac70f65c3d6318b62c6e13fa3586e27942d8f8

Contents?: true

Size: 807 Bytes

Versions: 27

Compression:

Stored size: 807 Bytes

Contents

require 'betterdocs/dsl/representer'
require 'betterdocs/dsl/common'
require 'betterdocs/dsl/naming'

class Betterdocs::Dsl::Result::Link < Betterdocs::Dsl::Representer
  extend Tins::DSLAccessor
  include Betterdocs::Dsl::Common
  include Betterdocs::Dsl::Naming

  dsl_accessor :description, 'TODO'

  dsl_accessor :templated, false

  def url(&block)
    if block
      @url = block
    elsif @url
      @url
    else
      raise ArgumentError, 'link requires an URL'
    end
  end

  def assign(result, object)
    assign?(object) or return
    link = {
      'rel'  => name.to_s,
      'href' => object.instance_eval(&url).to_s,
    }
    templated and link['templated'] = true
    result['links'].push(link)
    self
  end

  def add_to_collector(collector)
    collector.links[name] = self
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
betterdocs-0.14.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.13.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.12.5 lib/betterdocs/dsl/result/link.rb
betterdocs-0.12.4 lib/betterdocs/dsl/result/link.rb
betterdocs-0.12.3 lib/betterdocs/dsl/result/link.rb
betterdocs-0.12.2 lib/betterdocs/dsl/result/link.rb
betterdocs-0.12.1 lib/betterdocs/dsl/result/link.rb
betterdocs-0.12.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.11.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.10.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.9.2 lib/betterdocs/dsl/result/link.rb
betterdocs-0.9.1 lib/betterdocs/dsl/result/link.rb
betterdocs-0.9.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.8.1 lib/betterdocs/dsl/result/link.rb
betterdocs-0.8.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.7.1 lib/betterdocs/dsl/result/link.rb
betterdocs-0.7.0 lib/betterdocs/dsl/result/link.rb
betterdocs-0.6.8 lib/betterdocs/dsl/result/link.rb
betterdocs-0.6.7 lib/betterdocs/dsl/result/link.rb
betterdocs-0.6.6 lib/betterdocs/dsl/result/link.rb