Sha256: e21e5f2d54870f7318d205fbb2adbec716c5ea33d4e7982425e7899ebdc89873

Contents?: true

Size: 1.14 KB

Versions: 3

Compression:

Stored size: 1.14 KB

Contents

require 'equalizer'
require 'twitter/identity'

module Twitter
  class Place < Twitter::Identity
    # @return [Hash]
    attr_reader :attributes
    # @return [String]
    attr_reader :country, :full_name, :name
    alias_method :woe_id, :id
    alias_method :woeid, :id
    object_attr_reader :GeoFactory, :bounding_box
    object_attr_reader :Place, :contained_within
    alias_method :contained?, :contained_within?
    uri_attr_reader :uri

    # Initializes a new place
    #
    # @param attrs [Hash]
    # @raise [ArgumentError] Error raised when supplied argument is missing a :woeid key.
    # @return [Twitter::Place]
    def initialize(attrs = {})
      attrs[:id] ||= attrs.fetch(:woeid)
      super
    end

    # @return [String]
    def country_code
      @attrs[:country_code] || @attrs[:countryCode] # rubocop:disable SymbolName
    end
    memoize :country_code

    # @return [Integer]
    def parent_id
      @attrs[:parentid]
    end
    memoize :parent_id

    # @return [String]
    def place_type
      @attrs[:place_type] || @attrs[:placeType] && @attrs[:placeType][:name] # rubocop:disable SymbolName
    end
    memoize :place_type
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
twitter-5.14.0 lib/twitter/place.rb
twitter-5.13.0 lib/twitter/place.rb
twitter-5.12.0 lib/twitter/place.rb