Sha256: 508aa3fb903397c97023eb47ef5b7cd1af46ed1fda2626c08df7926b3283479a

Contents?: true

Size: 618 Bytes

Versions: 1

Compression:

Stored size: 618 Bytes

Contents

module TimeCamp
  class TaskCollection < TimeCamp::ResourceCollection
    def initialize(response)
      filtered_response = response.map{|k, v| v }
      @resources = filtered_response.map{|task| Task.new(task) }
    end

    def self.parse(response)
      return TimeCamp::TaskCollection.collection?(response) ? TaskCollection.new(response) : Task.new(response)
    end

    def self.collection?(response)
      # return true if the response is an array
      # or if all of the keys are strings of digits only
      return response.is_a?(Array) || response.keys.all?{ |key| key.scan(/\D/).blank? }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-timecamp-0.0.2 lib/ruby-timecamp/resources/task_collection.rb