Sha256: 132d5dc42f78a2ce420b129d8ae6770d77fb4b9070ca151ada868768a27ce9bc

Contents?: true

Size: 1.74 KB

Versions: 12

Compression:

Stored size: 1.74 KB

Contents

module TheCity

  class WebHookList < ApiList

    include Enumerable

    # Constructor.
    #
    # @param options A hash of options for loading the list.
    # 
    # Options:
    #   :page - The page number to get.
    #   :reader - The Reader to use to load the data.
    #
    #
    # Examples:
    #   WebHookListReader.new
    #
    #   UserSkillList.new({:page => 2})
    #    
    def initialize(options = {}) 
      @options = options
      @options[:page] ||= 1
      @options[:reader] = TheCity::WebHookListReader.new(@options) if @options[:reader].nil?
      @json_data = @options[:reader].load_feed 

      @total_entries = @json_data['total_entries']
      @total_pages = @json_data['total_pages']
      @per_page = @json_data['per_page']
      @current_page = @json_data['current_page']      
    end
    

    # All the web_hooks in the list.
    #
    # @return array of web_hook names.
    def all_web_hooks
      return [] if @json_data['web_hooks'].nil?
      @json_data['web_hooks'].collect { |web_hook| [web_hook['object'], web_hook['event']].join('::') }
    end
    alias :web_hooks :all_web_hooks
        
    
    # Get the specified web hook.
    #
    # @param index The index of the web hook to get.
    #
    # @return [WebHook]
    def [](index)
      WebHook.new( @json_data['web_hooks'][index] ) if @json_data['web_hooks'][index]
    end


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

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

Version data entries

12 entries across 12 versions & 1 rubygems

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