Class: Craigslist::API::Area

Inherits:
Object
  • Object
show all
Defined in:
lib/craigslist/api/area.rb

Overview

A craigslist area (a city or region), as published by the public reference service.

Defined Under Namespace

Classes: SubArea

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(abbreviation:, description: nil, short_description: nil, hostname: nil, country: nil, region: nil, latitude: nil, longitude: nil, id: nil, subareas: []) ⇒ Area

Returns a new instance of Area.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/craigslist/api/area.rb', line 44

def initialize(abbreviation:, description: nil, short_description: nil,
  hostname: nil, country: nil, region: nil, latitude: nil,
  longitude: nil, id: nil, subareas: [])
  @abbreviation = abbreviation
  @description = description
  @short_description = short_description
  @hostname = hostname
  @country = country
  @region = region
  @latitude = latitude
  @longitude = longitude
  @id = id
  @subareas = subareas.freeze
  freeze
end

Instance Attribute Details

#abbreviationObject (readonly)

Returns the value of attribute abbreviation.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def abbreviation
  @abbreviation
end

#countryObject (readonly)

Returns the value of attribute country.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def country
  @country
end

#descriptionObject (readonly)

Returns the value of attribute description.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def description
  @description
end

#hostnameObject (readonly)

Returns the value of attribute hostname.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def hostname
  @hostname
end

#idObject (readonly)

Returns the value of attribute id.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def id
  @id
end

#latitudeObject (readonly)

Returns the value of attribute latitude.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def latitude
  @latitude
end

#longitudeObject (readonly)

Returns the value of attribute longitude.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def longitude
  @longitude
end

#regionObject (readonly)

Returns the value of attribute region.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def region
  @region
end

#short_descriptionObject (readonly)

Returns the value of attribute short_description.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def short_description
  @short_description
end

#subareasObject (readonly)

Returns the value of attribute subareas.



41
42
43
# File 'lib/craigslist/api/area.rb', line 41

def subareas
  @subareas
end

Class Method Details

.from(hash) ⇒ Area

Parameters:

  • hash (Hash)

    raw payload

Returns:



62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/craigslist/api/area.rb', line 62

def self.from(hash)
  new(
    abbreviation: hash["Abbreviation"],
    description: hash["Description"],
    short_description: hash["ShortDescription"],
    hostname: hash["Hostname"],
    country: hash["Country"],
    region: hash["Region"],
    latitude: hash["Latitude"],
    longitude: hash["Longitude"],
    id: hash["AreaID"],
    subareas: Array(hash["SubAreas"]).map { |sub| SubArea.from(sub) }
  )
end

Instance Method Details

#inspectObject



92
93
94
95
# File 'lib/craigslist/api/area.rb', line 92

def inspect
  "#<#{self.class.name} #{abbreviation.inspect} #{description.inspect} " \
    "subareas=#{subareas.size}>"
end

#subarea(abbreviation) ⇒ SubArea?

Parameters:

  • abbreviation (String)

Returns:



84
85
86
# File 'lib/craigslist/api/area.rb', line 84

def subarea(abbreviation)
  subareas.find { |sub| sub.abbreviation == abbreviation.to_s }
end

#subareas?Boolean

Returns whether a subarea must be supplied when posting here.

Returns:

  • (Boolean)

    whether a subarea must be supplied when posting here



78
79
80
# File 'lib/craigslist/api/area.rb', line 78

def subareas?
  !subareas.empty?
end

#to_sObject



88
89
90
# File 'lib/craigslist/api/area.rb', line 88

def to_s
  abbreviation.to_s
end