Sha256: b09efbb59458e5cdb969e3733817ae4234f1b5b97f26eece024a4f3ab5448977

Contents?: true

Size: 1.21 KB

Versions: 18

Compression:

Stored size: 1.21 KB

Contents

require 'uri'

module Roo
  class Link < String
    # FIXME: Roo::Link inherits from String. A link cell is_a?(Roo::Link). **It is
    #        the only situation where a cells `value` is always a String**. Link
    #        cells have a nifty `to_uri` method, but this method isn't easily
    #        reached. (e.g. `sheet.sheet_for(nil).cells[[row,column]]).value.to_uri`;
    #        `sheet.hyperlink(row, column)` doesn't use `to_uri`).
    #
    #        1. Add different types of links (String, Numeric, Date, DateTime, etc.)
    #        2. Remove Roo::Link.
    #        3. Don't inherit the string and pass the cell's value.
    #
    #        I don't know the historical reasons for the Roo::Link, but right now
    #        it seems uneccessary. I'm in favor of keeping it just in case.
    #
    #        I'm also in favor of passing the cell's value to Roo::Link. The
    #        cell.value's class would still be Roo::Link, but the value itself
    #        would depend on what type of cell it is (Numeric, Date, etc.).
    #
    attr_reader :href
    alias_method :url, :href

    def initialize(href = '', text = href)
      super(text)
      @href = href
    end

    def to_uri
      URI.parse href
    end
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
roo-2.10.1 lib/roo/link.rb
roo-2.10.0 lib/roo/link.rb
roo-2.9.0 lib/roo/link.rb
ruh-roo-3.0.1 lib/roo/link.rb
roo-2.8.3 lib/roo/link.rb
roo-2.8.2 lib/roo/link.rb
roo-2.8.1 lib/roo/link.rb
roo-2.8.0 lib/roo/link.rb
roo-2.7.1 lib/roo/link.rb
roo-2.7.0 lib/roo/link.rb
roo-2.6.0 lib/roo/link.rb
roo-2.5.1 lib/roo/link.rb
roo-2.5.0 lib/roo/link.rb
roo-2.4.0 lib/roo/link.rb
roo-2.3.2 lib/roo/link.rb
roo-2.3.1 lib/roo/link.rb
roo-2.3.0 lib/roo/link.rb
roo-2.2.0 lib/roo/link.rb