class Tw::Conf

Constants

REQUIRE_VERSION

Public Class Methods

[](key) click to toggle source
# File lib/tw/conf.rb, line 15
def self.[](key)
  ENV[key] || conf[key]
end
[]=(key,value) click to toggle source
# File lib/tw/conf.rb, line 19
def self.[]=(key,value)
  conf[key] = value
end
conf() click to toggle source
# File lib/tw/conf.rb, line 31
def self.conf
  @@conf ||= (
              res = default
              if File.exist? self.conf_file
                begin
                  data = nil
                  self.open_conf_file do |f|
                    data = YAML::load f.read
                  end
                  if data['version'] < REQUIRE_VERSION
                    puts "This is tw version #{Tw::VERSION}."
                    puts "Your config file is old ("+data['version']+"). Reset tw settings?"
                    puts "[Y/n]"
                    res = data if STDIN.gets =~ /^n/i
                  else
                    res = data
                  end
                rescue => e
                  STDERR.puts e
                  File.delete self.conf_file
                end
              end
              res
              )
end
conf_file() click to toggle source
# File lib/tw/conf.rb, line 23
def self.conf_file
  @@conf_file ||= "#{ENV['HOME']}/.tw.yml"
end
conf_file=(fpath) click to toggle source
# File lib/tw/conf.rb, line 27
def self.conf_file=(fpath)
  @@conf_file = fpath
end
default() click to toggle source
# File lib/tw/conf.rb, line 5
def self.default
  {
    'version' => Tw::VERSION,
    'consumer_key' => 'AYhhkOC8H2yTZyelz3uw',
    'consumer_secret' => '28Ba8YyFDSPgoCYAmH5ANqOmT6qVS8gIhKnUiDbIpU',
    'default_user' => nil,
    'users' => {}
  }
end
save() click to toggle source
# File lib/tw/conf.rb, line 61
def self.save
  open_conf_file('w+') do |f|
    f.write conf.to_yaml
  end
end
to_yaml() click to toggle source
# File lib/tw/conf.rb, line 57
def self.to_yaml
  self.conf.to_yaml
end
update_twitter_config(force_update=false) click to toggle source
# File lib/tw/conf.rb, line 67
def self.update_twitter_config(force_update=false)
  if self['twitter_config'].kind_of? Hash and
      self['twitter_config']['last_updated_at']+60*60*24 > Time.now.to_i and
      !force_update
    return
  end
  self['twitter_config'] = {}
  self['twitter_config']['short_url_length'] = Tw::Client.client.configuration.short_url_length
  self['twitter_config']['short_url_length_https'] = Tw::Client.client.configuration.short_url_length_https
  self['twitter_config']['last_updated_at'] = Time.now.to_i
  self.save
end

Private Class Methods

open_conf_file(opt=nil) { |open(conf_file, opt)| ... } click to toggle source
# File lib/tw/conf.rb, line 81
def self.open_conf_file(opt=nil, &block)
  if block_given?
    yield open(self.conf_file, opt)
  else
    return open(self.conf_file, opt)
  end
  File.chmod 0600, self.conf_file if File.exist? self.conf_file
end