Sha256: 84a92f2d31905582747196b25d3221c3d0e74231c071fa79468034274e29ce9b

Contents?: true

Size: 1.77 KB

Versions: 12

Compression:

Stored size: 1.77 KB

Contents

module TheCity

  class UserFamilyList < ApiList

    include Enumerable

    attr_reader :id, :created_at, :external_id

    # Constructor.
    #
    # @param options A hash of options for loading the list.
    # 
    # Options:
    #   :user_id - The ID of the user to load the family members for. (required)
    #   :page - The page number to get.
    #   :reader - The Reader to use to load the data.
    #
    #
    # Examples:
    #   UserFamilyList.new({:user_id => 12345})
    #
    #   UserFamilyList.new({:user_id => 12345, :page => 2})
    #    
    def initialize(options = {}) 
      @options = options
      @options[:page] ||= 1
      @options[:reader] = TheCity::UserFamilyListReader.new(@options) if @options[:reader].nil?
      @json_data = @options[:reader].load_feed 

      @id = @json_data['id']
      @created_at = @json_data['created_at']
      @external_id = @json_data['external_id']
    end
    
    
    # All the famly member names in the list.
    #
    # @return array of names.
    def all_names
      @json_data['family_members'].collect { |user| user['name'] }
    end
    alias :names :all_names
    
    
    # Get the specified family member.
    #
    # @param index The index of the family member to get.
    #
    # @return [UserFamilyMember]
    def [](index)      
      UserFamilyMember.new( @json_data['family_members'][index] ) if @json_data['family_members'][index]
    end


    # This method is needed for Enumerable.
    def each &block
      @json_data['family_members'].each{ |member| yield( UserFamilyMember.new(member) )}
    end    
  
    # Alias the count method
    alias :size :count

    # Checks if the list is empty.
    #
    # @return True on empty, false otherwise.
    def empty?
      @json_data['family_members'].empty?
    end

  end
  
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
the-city-admin-0.7.1 lib/api/user_family_list.rb
the-city-admin-0.7.0 lib/api/user_family_list.rb
the-city-admin-0.6.9 lib/api/user_family_list.rb
the-city-admin-0.6.8 lib/api/user_family_list.rb
the-city-admin-0.6.7 lib/api/user_family_list.rb
the-city-admin-0.6.6 lib/api/user_family_list.rb
the-city-admin-0.6.5 lib/api/user_family_list.rb
the-city-admin-0.6.4 lib/api/user_family_list.rb
the-city-admin-0.6.3 lib/api/user_family_list.rb
the-city-admin-0.6.2 lib/api/user_family_list.rb
the-city-admin-0.6.1 lib/api/user_family_list.rb
the-city-admin-0.6.0 lib/api/user_family_list.rb