Class: HalClient::RepresentationSet

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/hal_client/representation_set.rb

Overview

A collection HAL representations

Instance Method Summary collapse

Constructor Details

#initialize(reprs) ⇒ RepresentationSet

Returns a new instance of RepresentationSet.



8
9
10
# File 'lib/hal_client/representation_set.rb', line 8

def initialize(reprs)
  @reprs = reprs
end

Instance Method Details

#has_related?(link_rel) ⇒ Boolean

Returns true if any member representation contains a link (including embedded links) whose rel is ‘link_rel`.

link_rel - The link rel of interest

Returns:

  • (Boolean)


34
35
36
37
38
39
40
# File 'lib/hal_client/representation_set.rb', line 34

def has_related?(link_rel)
  _ = related link_rel
  true

rescue KeyError
  false
end

#post(data, options = {}) ⇒ Object

Post a ‘Representation` or `String` to the resource.

NOTE: This only works for a single representation.

data - a ‘String` or an object that responds to `#to_hal` options - set of options to pass to `HalClient#post`

Raises:

  • (NotImplementedError)


48
49
50
51
# File 'lib/hal_client/representation_set.rb', line 48

def post(data, options={})
  raise NotImplementedError, "We only posts to singular resources." if count > 1
  first.post(data, options)
end

Returns representations of resources related via the specified

link rel or the specified default value.

name_or_rel - The name of property or link rel of interest options - optional keys and values with which to expand any

templated links that are encountered

default_proc - an option proc that will be called with ‘name`

to produce default value if the specified property or link does not
exist

Raises KeyError if the specified link does not exist

and no default_proc is provided.


26
27
28
# File 'lib/hal_client/representation_set.rb', line 26

def related(link_rel, options={})
  RepresentationSet.new flat_map{|it| it.related(link_rel, options){[]}.to_a }
end