podgraph 0.0.5 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/NEWS CHANGED
@@ -1,5 +1,12 @@
1
1
  -*- text -*-
2
2
 
3
+ 0.1.5
4
+ -----
5
+
6
+ Fri Apr 29 00:31:16 EEST 2011
7
+
8
+ - Added '--to' & '--from' command line options.
9
+
3
10
  0.0.5
4
11
  -----
5
12
 
data/README.rdoc CHANGED
@@ -5,7 +5,7 @@ posterous.com.
5
5
 
6
6
  = Synopsis
7
7
 
8
- podgraph [-Sv] [-m ARG] [file.html]
8
+ podgraph [options] [file.html]
9
9
 
10
10
  = Description
11
11
 
@@ -15,9 +15,11 @@ local MTA.
15
15
 
16
16
  The options are as follows:
17
17
 
18
- -v Be more verbose.
19
- -S Don't send, just dump the mail to stdout.
20
- -m ARG 1 of modes: related, mixed.
18
+ -v Be more verbose.
19
+ -S Don't send, just dump the mail to stdout.
20
+ -m ARG 1 of modes: related, mixed.
21
+ --from EMAIL 'From' address
22
+ --to EMAIL 'To' address
21
23
 
22
24
  The file is supposed to be a XHTML generated by python's docutils from
23
25
  reStructuredText. The idea is:
@@ -54,6 +56,8 @@ example:
54
56
  :to: post@posterous.com
55
57
  :from: me@example.org
56
58
 
59
+ ('--to' & '--from' command line options override values in config.yaml.)
60
+
57
61
  Start writing a .rest file:
58
62
 
59
63
  % emacsclient 0001.rest &
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # -*-ruby-*-
2
+
1
3
  require 'rake'
2
4
  require 'rake/gempackagetask'
3
5
  require 'rake/clean'
@@ -23,7 +25,7 @@ spec = Gem::Specification.new do |s|
23
25
  s.test_files = FileList['test/test_*.rb']
24
26
  s.rdoc_options << '-m' << 'Podgraph'
25
27
 
26
- s.add_dependency('mail', '~> 2.2.17')
28
+ s.add_dependency('mail', '~> 2.3.0')
27
29
  s.add_development_dependency('git', '>= 1.2.5')
28
30
  end
29
31
 
data/TODO CHANGED
@@ -1,8 +1,5 @@
1
1
  -*-org-*-
2
2
 
3
- * 0.1.0
4
- - CL options for email
5
-
6
3
  * 0.0.1
7
4
 
8
5
  + rewrite README.rdoc to make it look more like a manpage
data/bin/podgraph CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env ruby19
1
+ #!/usr/bin/env ruby
2
2
  # -*- ruby -*-
3
3
 
4
4
  require_relative '../lib/podgraph/posterous'
@@ -15,23 +15,36 @@ $conf[:from] = nil
15
15
  $conf[:banner] = "#{File.basename($0)} [options] [file.html]\nType 'ri #{Podgraph::Meta::NAME.capitalize}' for the help."
16
16
  $conf[:input] = nil
17
17
 
18
- def mailconfig_load()
18
+ def mailconfig_load
19
19
  begin
20
20
  myconf = YAML.load_file($conf[:mailconfig])
21
21
  rescue
22
22
  abort("cannot parse #{$conf[:mailconfig]} in the current directory")
23
23
  end
24
24
  %w(to from).each { |i|
25
- Trestle.errx(1, "missing #{i} in #{$conf[:mailconfig]}") if ! myconf.key?(i.to_sym)
25
+ if ! $conf[i.to_sym]
26
+ Trestle.errx(1, "missing #{i} in #{$conf[:mailconfig]}") if ! myconf.key?(i.to_sym)
27
+ $conf[i.to_sym] = myconf[i.to_sym]
28
+ end
26
29
  }
27
- $conf.merge!(myconf)
28
30
  end
29
31
 
32
+ def mail_addr_valid?(t)
33
+ return false if t =~ /^\s*$/ # why Mail::Address doesn't handle this?
34
+ begin
35
+ Mail::Address.new t
36
+ rescue
37
+ return false
38
+ end
39
+ return true
40
+ end
30
41
 
31
42
  # ---
32
43
 
33
44
  u.config_parse(['foobar']) {|src|
34
45
  o = u.cl_parse(src) # create an OptionParser object
46
+ o.on('--from EMAIL', "'From' address") { |v| $conf[:from] = v if mail_addr_valid?(v) }
47
+ o.on('--to EMAIL', "'To' address") { |v| $conf[:to] = v if mail_addr_valid?(v) }
35
48
  o.on('-c ARG', "Use another configuration file instead of",
36
49
  $conf[:mailconfig]) { |v| $conf[:mailconfig] = v }
37
50
  o.on('-S', "Don't send, just dump the mail to stdout") { |v| $conf[:send?] = false }
@@ -39,8 +52,10 @@ u.config_parse(['foobar']) {|src|
39
52
  u.cl_parse(src, o) # run cl parser
40
53
  }
41
54
 
55
+ #pp $conf
56
+
42
57
  ARGV.size < 1 ? $conf[:input] = STDIN : $conf[:input] = ARGV[0]
43
- mailconfig_load
58
+ mailconfig_load if (!$conf[:from] || !$conf[:to])
44
59
 
45
60
  begin
46
61
  p = Podgraph::Posterous.new(u, $conf[:input], $conf[:to], $conf[:from], $conf[:mode])
data/lib/podgraph/meta.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Podgraph
2
2
  module Meta
3
3
  NAME = 'podgraph'
4
- VERSION = '0.0.5'
4
+ VERSION = '0.1.5'
5
5
  AUTHOR = 'Alexander Gromnitsky'
6
6
  EMAIL = 'alexander.gromnitsky@gmail.com'
7
7
  HOMEPAGE = 'http://github.com/gromnitsky/' + NAME
data/test/test_mime.rb CHANGED
@@ -69,7 +69,7 @@ class TestMime < MiniTest::Unit::TestCase
69
69
 
70
70
  # NOTE: run
71
71
  #
72
- # ../bin/podgraph -S simple.html | grep -v -e ^To: -e '^Date:' -e ^Message-ID: -e '^user-agent:'|md5
72
+ # ../bin/podgraph -S simple.html | grep -i -v -e ^To: -e '^Date:' -e ^Message-ID: -e '^user-agent:'|md5
73
73
  #
74
74
  # to get a new hash for this test.
75
75
  def test_simple
@@ -78,10 +78,10 @@ class TestMime < MiniTest::Unit::TestCase
78
78
  mail.sub!(/^Date: .+$\n/, '')
79
79
  mail.sub!(/^To: .+$\n/, '')
80
80
  mail.sub!(/^Message-ID: .+$\n/, '')
81
- mail.sub!(/^user-agent: .+$\n/, '')
81
+ mail.sub!(/^User-Agent: .+$\n/, '')
82
82
  # p mail
83
83
  # puts mail
84
- assert_equal('c7ac3a5797496efd323c7017c4516cb1',
84
+ assert_equal('54c07d54f21efd28cc4634bd6b61efaf',
85
85
  Digest::MD5.hexdigest(mail + "\n"))
86
86
  end
87
87
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: podgraph
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.5
5
+ version: 0.1.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Alexander Gromnitsky
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-18 00:00:00 Z
13
+ date: 2011-04-28 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mail
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 2.2.17
23
+ version: 2.3.0
24
24
  type: :runtime
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency