Sha256: 055a26cb2c5738fa04b0d8bce4bbfe6f42a2e4b0b4aceed0f731f5331952a002

Contents?: true

Size: 1.53 KB

Versions: 10

Compression:

Stored size: 1.53 KB

Contents

module ChurchCommunityBuilder

  class CampusList

    include Enumerable

    attr_reader :request_data,
                :response_data,
                :service,
                :individuals,
                :count,
                :campus_array,
                :json_data #for debugging
                

    def initialize(json)
      @json_data = json["ccb_api"]
      @request_data = @json_data["request"]
      @response_data = @json_data["response"]
      @service = @response_data["service"] #CCB service type accessed

      @campuses  = @response_data['campuses']

      @count = @campuses["count"].to_i #number of records

      # if @campuses['campus'] is a single item, it will be returned
      # as a Hash, rather than a single element Array, containing the Hash.
      #
      if @campuses["campus"].is_a?(Array)
        @campus_array = @campuses["campus"]
      
      elsif @campuses["campus"].is_a?(Hash)
        @campus_array = []
        @campus_array << @campuses["campus"] #array of each campus
      end

    end

    def all_names
      return [] unless @campus_array
      @campus_array.collect { |campus| campus['name'] }
    end

    def ids
      (@campus_array.collect { |campus| campus['id'] }).uniq
    end

    def [](index)
      Campus.new( @campus_array[index] ) if @campus_array and @campus_array[index]
    end


    # This method is needed for Enumerable.
    def each &block
      @campus_array.each{ |campus| yield( Campus.new(campus) )}
    end


    def empty?
      @campus_array.size == 0 ? true : false
    end

  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
church-community-builder-0.2.2 lib/api/campus_list.rb
church-community-builder-0.2.1 lib/api/campus_list.rb
church-community-builder-0.2.0 lib/api/campus_list.rb
church-community-builder-0.1.6 lib/api/campus_list.rb
church-community-builder-0.1.5 lib/api/campus_list.rb
church-community-builder-0.1.4 lib/api/campus_list.rb
church-community-builder-0.1.3 lib/api/campus_list.rb
church-community-builder-0.1.2 lib/api/campus_list.rb
church-community-builder-0.1.1 lib/api/campus_list.rb
church-community-builder-0.1.0 lib/api/campus_list.rb