segfault-larch 1.0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/HISTORY +44 -0
- data/LICENSE +280 -0
- data/README.rdoc +273 -0
- data/bin/larch +123 -0
- data/lib/larch.rb +254 -0
- data/lib/larch/config.rb +105 -0
- data/lib/larch/db/account.rb +12 -0
- data/lib/larch/db/mailbox.rb +12 -0
- data/lib/larch/db/message.rb +6 -0
- data/lib/larch/db/migrate/001_create_schema.rb +42 -0
- data/lib/larch/errors.rb +14 -0
- data/lib/larch/imap.rb +343 -0
- data/lib/larch/imap/mailbox.rb +505 -0
- data/lib/larch/logger.rb +50 -0
- data/lib/larch/version.rb +9 -0
- metadata +106 -0
data/lib/larch/logger.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
module Larch
|
2
|
+
|
3
|
+
class Logger
|
4
|
+
attr_reader :level, :output
|
5
|
+
|
6
|
+
LEVELS = {
|
7
|
+
:fatal => 0,
|
8
|
+
:error => 1,
|
9
|
+
:warn => 2,
|
10
|
+
:info => 3,
|
11
|
+
:debug => 4,
|
12
|
+
:insane => 5
|
13
|
+
}
|
14
|
+
|
15
|
+
def initialize(level = :info, output = $stdout)
|
16
|
+
self.level = level.to_sym
|
17
|
+
self.output = output
|
18
|
+
end
|
19
|
+
|
20
|
+
def const_missing(name)
|
21
|
+
return LEVELS[name] if LEVELS.key?(name)
|
22
|
+
raise NameError, "uninitialized constant: #{name}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def method_missing(name, *args)
|
26
|
+
return log(name, *args) if LEVELS.key?(name)
|
27
|
+
raise NoMethodError, "undefined method: #{name}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def level=(level)
|
31
|
+
raise ArgumentError, "invalid log level: #{level}" unless LEVELS.key?(level)
|
32
|
+
@level = level
|
33
|
+
end
|
34
|
+
|
35
|
+
def log(level, msg)
|
36
|
+
return true if LEVELS[level] > LEVELS[@level] || msg.nil? || msg.empty?
|
37
|
+
@output.puts "[#{Time.new.strftime('%b %d %H:%M:%S')}] [#{level}] #{msg}"
|
38
|
+
true
|
39
|
+
|
40
|
+
rescue => e
|
41
|
+
false
|
42
|
+
end
|
43
|
+
|
44
|
+
def output=(output)
|
45
|
+
raise ArgumentError, "output must be an instance of class IO" unless output.is_a?(IO)
|
46
|
+
@output = output
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module Larch
|
2
|
+
APP_NAME = 'Larch'
|
3
|
+
APP_VERSION = '1.0.2.3'
|
4
|
+
APP_AUTHOR = 'Ryan Grove'
|
5
|
+
APP_EMAIL = 'ryan@wonko.com'
|
6
|
+
APP_URL = 'http://github.com/rgrove/larch/'
|
7
|
+
APP_COPYRIGHT = 'Copyright (c) 2009 Ryan Grove <ryan@wonko.com>. All ' <<
|
8
|
+
'rights reserved.'
|
9
|
+
end
|
metadata
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: segfault-larch
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ryan Grove
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-08-22 00:00:00 -07:00
|
13
|
+
default_executable: larch
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: highline
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ~>
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.5.0
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sequel
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.3.0
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: sqlite3-ruby
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.2.5
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: trollop
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "1.13"
|
54
|
+
version:
|
55
|
+
description:
|
56
|
+
email: ryan@wonko.com
|
57
|
+
executables:
|
58
|
+
- larch
|
59
|
+
extensions: []
|
60
|
+
|
61
|
+
extra_rdoc_files: []
|
62
|
+
|
63
|
+
files:
|
64
|
+
- HISTORY
|
65
|
+
- LICENSE
|
66
|
+
- README.rdoc
|
67
|
+
- bin/larch
|
68
|
+
- lib/larch/config.rb
|
69
|
+
- lib/larch/db/account.rb
|
70
|
+
- lib/larch/db/mailbox.rb
|
71
|
+
- lib/larch/db/message.rb
|
72
|
+
- lib/larch/db/migrate/001_create_schema.rb
|
73
|
+
- lib/larch/errors.rb
|
74
|
+
- lib/larch/imap/mailbox.rb
|
75
|
+
- lib/larch/imap.rb
|
76
|
+
- lib/larch/logger.rb
|
77
|
+
- lib/larch/version.rb
|
78
|
+
- lib/larch.rb
|
79
|
+
has_rdoc: false
|
80
|
+
homepage: http://github.com/rgrove/larch/
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 1.8.6
|
91
|
+
version:
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: "0"
|
97
|
+
version:
|
98
|
+
requirements: []
|
99
|
+
|
100
|
+
rubyforge_project:
|
101
|
+
rubygems_version: 1.2.0
|
102
|
+
signing_key:
|
103
|
+
specification_version: 3
|
104
|
+
summary: Larch syncs messages from one IMAP server to another. Awesomely.
|
105
|
+
test_files: []
|
106
|
+
|