Class: Roo::Link

Inherits:
String
  • Object
show all
Defined in:
lib/roo/link.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(href = '', text = href) ⇒ Link

Returns a new instance of Link.


25
26
27
28
# File 'lib/roo/link.rb', line 25

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

Instance Attribute Details

#hrefObject (readonly) Also known as: url

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.).

22
23
24
# File 'lib/roo/link.rb', line 22

def href
  @href
end

Instance Method Details

#to_uriObject


30
31
32
# File 'lib/roo/link.rb', line 30

def to_uri
  URI.parse href
end