Sha256: ef41df8d254f6790ec8bffe450abb35a2f55ce38337468c4c2bd9500e0cd3bcb

Contents?: true

Size: 1.65 KB

Versions: 14

Compression:

Stored size: 1.65 KB

Contents

# Utility methods used by Scorekeeper.

module GeneralHelper
  def parse_date(str)
    date = nil
    begin
      date = Chronic.parse(str, :context => :past, :guess => false)
    rescue NameError
      begin
        date = Date.parse(str)
      rescue ArgumentError
      end
    end
    return date
  end
  
  def find_range(date)
    start = nil
    stop = nil
    if date.kind_of? Range then
      start = date.first
      stop = date.last
    elsif date.kind_of? Time then
      start = date.to_date
      stop = date.to_date + 1
    else
      start = date
      stop = date + 1
    end
    return start, stop
  end
  
  def find_person(stem, nick)
    Person.all(:server => server_identifier(stem)).each do |person|
      return person if person.name.downcase == normalize(nick) or person.pseudonyms.collect { |pn| pn.name.downcase }.include? normalize(nick)
    end
    return nil
  end
  
  def find_in_channel(stem, channel, victim)
    stem.channel_members[channel].each do |name, privilege|
      return normalize(name, false) if normalize(name) == normalize(victim)
    end
    return victim
  end

  def normalize(nick, dc=true)
    dc ? nick.downcase.split(/\|/)[0] : nick.split(/\|/)[0]
  end
  
  def authorized?(giver, receiver)
    giver and receiver and giver.authorized? and giver.name != receiver.name
  end
  
  def change_points(stem, channel, giver, receiver, delta, note=nil)
    return if delta.zero?
    chan = Channel.find_or_create :server => server_identifier(stem), :name => channel
    chan.scores.create :giver => giver, :receiver => receiver, :change => delta, :note => note
  end
  
  def server_identifier(stem)
    "#{stem.server}:#{stem.port}"
  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
bougyman-autumn-3.1.1 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.10 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.11 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.3 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.4 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.6 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.7 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.8 lib/skel/leaves/scorekeeper/helpers/general.rb
bougyman-autumn-3.1.9 lib/skel/leaves/scorekeeper/helpers/general.rb
comboy-autumn-3.1 skel/leaves/scorekeeper/helpers/general.rb
autumn-3.1.11 lib/skel/leaves/scorekeeper/helpers/general.rb
autumn-3.1.10 lib/skel/leaves/scorekeeper/helpers/general.rb
autumn-3.1.9 lib/skel/leaves/scorekeeper/helpers/general.rb
autumn-3.1.8 lib/skel/leaves/scorekeeper/helpers/general.rb