module Bait

Constants

VERSION

Public Class Methods

add_subscriber(stream) click to toggle source
# File lib/bait/pubsub.rb, line 6
def add_subscriber stream
  @@Subscribers << stream
end
broadcast(*args) click to toggle source
# File lib/bait/pubsub.rb, line 12
def broadcast *args
  @@Subscribers.each do |out|
    out << "data: #{args.to_json}\n\n"
  end
end
console() click to toggle source
# File lib/bait.rb, line 52
def console
  STDOUT
end
db_dir() click to toggle source
# File lib/bait.rb, line 22
def db_dir
  db_dir = File.join storage_dir, "databases"
  FileUtils.mkdir_p db_dir
  db_dir
end
db_file(name) click to toggle source
# File lib/bait.rb, line 28
def db_file name
  yaml_file = File.join db_dir, "#{name}.yaml"
  FileUtils.touch yaml_file
  yaml_file
end
env() click to toggle source
# File lib/bait.rb, line 40
def env
  ENV['RACK_ENV'] ||= 'production'
end
home() click to toggle source
# File lib/bait.rb, line 44
def home
  File.join Etc.getpwuid.dir, '.bait'
end
public() click to toggle source
# File lib/bait.rb, line 48
def public
  Pathname.new(File.join(File.dirname(__FILE__), 'bait', 'public'))
end
remove_subscriber(stream) click to toggle source
# File lib/bait/pubsub.rb, line 9
def remove_subscriber stream
  @@Subscribers.delete stream        
end
storage_dir() click to toggle source
# File lib/bait.rb, line 16
def storage_dir
  path = File.join("#{home}", "#{env}")
  FileUtils.mkdir_p path
  path
end
store() click to toggle source
# File lib/bait.rb, line 34
def store
  @store ||= begin
    Moneta.new :YAML, :file => db_file("main")
  end
end