Class: Riak::Link
- Inherits:
-
Object
- Object
- Riak::Link
- Includes:
- Util::Escape, Util::Translation
- Defined in:
- lib/riak/link.rb
Overview
Represents a link from one object to another in Riak
Instance Attribute Summary (collapse)
-
- (String) bucket
The bucket of the related resource.
-
- (String) key
The key of the related resource.
-
- (String) tag
(also: #rel)
The relationship tag (or “rel”) of the other resource to this one.
Class Method Summary (collapse)
-
+ (Array<Link>) parse(header_string)
An array of Riak::Link structs parsed from the header.
Instance Method Summary (collapse)
- - (Object) ==(other)
- - (Boolean) eql?(other)
- - (Object) hash
-
- (Link) initialize(*args)
constructor
A new instance of Link.
- - (Object) inspect
- - (Object) to_s(new_scheme = false)
- - (Object) to_walk_spec
-
- (String) url(new_scheme = false)
The URL (relative or absolute) of the related resource.
- - (Object) url=(value)
Methods included from Util::Escape
#escape, #maybe_escape, #maybe_unescape, #unescape
Methods included from Util::Translation
Constructor Details
- (Link) initialize(url, tag) - (Link) initialize(bucket, key, tag)
A new instance of Link
45 46 47 48 49 50 51 52 |
# File 'lib/riak/link.rb', line 45 def initialize(*args) raise ArgumentError unless (2..3).include?(args.size) if args.size == 2 self.url, @tag = args else @bucket, @key, @tag = args end end |
Instance Attribute Details
- (String) bucket
The bucket of the related resource
18 19 20 |
# File 'lib/riak/link.rb', line 18 def bucket @bucket end |
- (String) key
The key of the related resource
21 22 23 |
# File 'lib/riak/link.rb', line 21 def key @key end |
- (String) tag Also known as: rel
The relationship tag (or "rel") of the other resource to this one
13 14 15 |
# File 'lib/riak/link.rb', line 13 def tag @tag end |
Class Method Details
Instance Method Details
- (Object) ==(other)
87 88 89 |
# File 'lib/riak/link.rb', line 87 def ==(other) other.is_a?(Link) && url == other.url && tag == other.tag end |
- (Boolean) eql?(other)
83 84 85 |
# File 'lib/riak/link.rb', line 83 def eql?(other) self == other end |
- (Object) hash
79 80 81 |
# File 'lib/riak/link.rb', line 79 def hash self.to_s.hash end |
- (Object) inspect
73 |
# File 'lib/riak/link.rb', line 73 def inspect; to_s; end |
- (Object) to_s(new_scheme = false)
75 76 77 |
# File 'lib/riak/link.rb', line 75 def to_s(new_scheme=false) %Q[<#{url(new_scheme)}>; riaktag="#{tag}"] end |
- (Object) to_walk_spec
91 92 93 94 |
# File 'lib/riak/link.rb', line 91 def to_walk_spec raise t("bucket_link_conversion") if tag == "up" || key.nil? WalkSpec.new(:bucket => bucket, :tag => tag) end |
- (String) url(new_scheme = false)
The URL (relative or absolute) of the related resource
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/riak/link.rb', line 55 def url(new_scheme=false) if @bucket if new_scheme "/buckets/#{escape(bucket)}" + (key.blank? ? "" : "/keys/#{escape(key)}") else "/riak/#{escape(bucket)}" + (key.blank? ? "" : "/#{escape(key)}") end else @url end end |
- (Object) url=(value)
67 68 69 70 71 |
# File 'lib/riak/link.rb', line 67 def url=(value) @url = value @bucket = unescape($1) if value =~ %r{^/buckets/([^/]+)/?} || value =~ %r{^/[^/]+/([^/]+)/?} @key = unescape($1) if value =~ %r{^/buckets/[^/]+/keys/([^/]+)/?} || value =~ %r{^/[^/]+/[^/]+/([^/]+)/?} end |