class EventsJp::EventObject

Public Class Methods

get_events(keyword: nil, limit: nil) click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 6
def self.get_events(keyword: nil, limit: nil)
  results, errors = [], []
  loop do
    results, errors, has_response = access_wrapper(results, errors) do
      opt = merged_option(keyword, results, default_opt)
      convert_response(get(endpoint, opt))
    end
    break if finish_get?(results, has_response, limit)
    sleep(1)
  end

  return [results, errors]
end

Private Class Methods

access_wrapper(results, errors, &block) click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 22
def self.access_wrapper(results, errors, &block)
  results << (tmp = block.call)
  has_response = (tmp.count >= 1)
  return [results.flatten.compact, errors, has_response]
rescue => e
  errors << e.message
  has_response = false
  return [results, errors, has_response]
end
default_opt() click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 72
def self.default_opt
end
endpoint() click to toggle source

インターフェース

# File lib/events_jp/event_object/event_object.rb, line 69
def self.endpoint
end
finish_get?(res, has_response, limit = nil) click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 42
def self.finish_get?(res, has_response, limit = nil)
  return true if limit.to_i > 0 && res.count >= limit
  return true unless has_response
  return false
end
merged_option(keyword, response, option) click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 36
def self.merged_option(keyword, response, option)
  opt = option.dup
  opt.merge!({start: (response.count + 1)})
  keyword ? opt.merge!(keyword: keyword) : opt
end
parse_datetime(dt) click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 64
def self.parse_datetime(dt)
  dt ? DateTime.parse(dt) : nil
end
service_name() click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 32
def self.service_name
  self.name.to_s.downcase.gsub(/^(.*::)/, '')
end
to_basic_hash(h) click to toggle source
# File lib/events_jp/event_object/event_object.rb, line 48
def self.to_basic_hash(h)
  Hashie::Mash.new({ service:     service_name,
                     address:     h[:address],
                     catch:       h[:catch],
                     title:       h[:title],
                     event_url:   h[:event_url],
                     started_at:  parse_datetime(h[:started_at]),
                     ended_at:    parse_datetime(h[:ended_at]),
                     place:       h[:place],
                     lon:         h[:lon].to_f,
                     lat:         h[:lat].to_f,
                     limit:       h[:limit],
                     accepted:    h[:accepted],
                     waiting:     h[:waiting] })
end