Class: AudioVision::Post

Inherits:
Base
  • Object
show all
Defined in:
lib/audio_vision/post.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#==, api_path, collection, find

Constructor Details

#initialize(attributes = {}) ⇒ Post



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/audio_vision/post.rb', line 45

def initialize(attributes={})
  @id           = attributes["id"]
  @title        = attributes["title"]
  @teaser       = attributes["teaser"]
  @body         = attributes["body"]
  @thumbnail    = attributes["thumbnail"]
  @byline       = attributes["byline"]
  @public_url   = attributes["public_url"]

  if attributes["category"]
    @category = Category.new(attributes["category"])
  end

  if attributes["published_at"]
    @published_at = Time.parse(attributes["published_at"].to_s)
  end

  @attributions = []
  Array(attributes["attributions"]).each do |json|
    @attributions << Attribution.new(json)
  end

  @assets = []
  Array(attributes["assets"]).each do |json|
    @assets << Asset.new(json)
  end
end

Instance Attribute Details

#assetsObject

Returns the value of attribute assets.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def assets
  @assets
end

#attributionsObject

Returns the value of attribute attributions.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def attributions
  @attributions
end

#bodyObject

Returns the value of attribute body.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def body
  @body
end

#bylineObject

Returns the value of attribute byline.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def 
  @byline
end

#categoryObject

Returns the value of attribute category.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def category
  @category
end

#idObject

Returns the value of attribute id.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def id
  @id
end

#public_urlObject

Returns the value of attribute public_url.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def public_url
  @public_url
end

#published_atObject

Returns the value of attribute published_at.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def published_at
  @published_at
end

#teaserObject

Returns the value of attribute teaser.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def teaser
  @teaser
end

#thumbnailObject

Returns the value of attribute thumbnail.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def thumbnail
  @thumbnail
end

#titleObject

Returns the value of attribute title.



31
32
33
# File 'lib/audio_vision/post.rb', line 31

def title
  @title
end

Class Method Details

.api_namespaceObject



5
6
7
# File 'lib/audio_vision/post.rb', line 5

def api_namespace
  :posts
end

.find_by_url(url) ⇒ Object

Find a Post by its URL. Returns a Post if success, otherwise nil.

Example:

AudioVision::Post.find_by_url(
 "http://audiovision.scpr.org/321/the-night-watch"
)

#=> #<AudioVision::Post>


19
20
21
22
23
24
25
26
27
# File 'lib/audio_vision/post.rb', line 19

def find_by_url(url)
  response = client.get(endpoint("by_url"), :url => url)

  if response.success?
    new(response.body)
  else
    nil
  end
end