entp-astrotrain 0.2.0

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.
Files changed (57) hide show
  1. data/.gitignore +26 -0
  2. data/LICENSE +20 -0
  3. data/README +47 -0
  4. data/Rakefile +145 -0
  5. data/VERSION +1 -0
  6. data/astrotrain.gemspec +96 -0
  7. data/config/sample.rb +12 -0
  8. data/lib/astrotrain/api.rb +53 -0
  9. data/lib/astrotrain/logged_mail.rb +41 -0
  10. data/lib/astrotrain/mapping/http_post.rb +18 -0
  11. data/lib/astrotrain/mapping/jabber.rb +23 -0
  12. data/lib/astrotrain/mapping/transport.rb +55 -0
  13. data/lib/astrotrain/mapping.rb +157 -0
  14. data/lib/astrotrain/message.rb +313 -0
  15. data/lib/astrotrain/tmail.rb +48 -0
  16. data/lib/astrotrain.rb +55 -0
  17. data/lib/vendor/rest-client/README.rdoc +104 -0
  18. data/lib/vendor/rest-client/Rakefile +84 -0
  19. data/lib/vendor/rest-client/bin/restclient +65 -0
  20. data/lib/vendor/rest-client/foo.diff +66 -0
  21. data/lib/vendor/rest-client/lib/rest_client/net_http_ext.rb +21 -0
  22. data/lib/vendor/rest-client/lib/rest_client/payload.rb +185 -0
  23. data/lib/vendor/rest-client/lib/rest_client/request_errors.rb +75 -0
  24. data/lib/vendor/rest-client/lib/rest_client/resource.rb +103 -0
  25. data/lib/vendor/rest-client/lib/rest_client.rb +189 -0
  26. data/lib/vendor/rest-client/rest-client.gemspec +18 -0
  27. data/lib/vendor/rest-client/spec/base.rb +5 -0
  28. data/lib/vendor/rest-client/spec/master_shake.jpg +0 -0
  29. data/lib/vendor/rest-client/spec/payload_spec.rb +71 -0
  30. data/lib/vendor/rest-client/spec/request_errors_spec.rb +44 -0
  31. data/lib/vendor/rest-client/spec/resource_spec.rb +52 -0
  32. data/lib/vendor/rest-client/spec/rest_client_spec.rb +219 -0
  33. data/tasks/doc.thor +149 -0
  34. data/tasks/merb.thor +2020 -0
  35. data/test/api_test.rb +28 -0
  36. data/test/fixtures/apple_multipart.txt +100 -0
  37. data/test/fixtures/basic.txt +14 -0
  38. data/test/fixtures/custom.txt +15 -0
  39. data/test/fixtures/fwd.txt +0 -0
  40. data/test/fixtures/gb2312_encoding.txt +16 -0
  41. data/test/fixtures/gb2312_encoding_invalid.txt +15 -0
  42. data/test/fixtures/html.txt +16 -0
  43. data/test/fixtures/iso-8859-1.txt +13 -0
  44. data/test/fixtures/mapped.txt +13 -0
  45. data/test/fixtures/multipart.txt +213 -0
  46. data/test/fixtures/multipart2.txt +213 -0
  47. data/test/fixtures/multiple.txt +13 -0
  48. data/test/fixtures/multiple_delivered_to.txt +14 -0
  49. data/test/fixtures/multiple_with_body_recipients.txt +15 -0
  50. data/test/fixtures/reply.txt +16 -0
  51. data/test/fixtures/utf-8.txt +13 -0
  52. data/test/logged_mail_test.rb +63 -0
  53. data/test/mapping_test.rb +129 -0
  54. data/test/message_test.rb +424 -0
  55. data/test/test_helper.rb +54 -0
  56. data/test/transport_test.rb +111 -0
  57. metadata +115 -0
data/tasks/doc.thor ADDED
@@ -0,0 +1,149 @@
1
+ $: << File.join("doc")
2
+ require 'rubygems'
3
+ require 'rdoc/rdoc'
4
+ require 'fileutils'
5
+ require 'erb'
6
+
7
+ module Merb
8
+
9
+ class GemNotFoundException < Exception
10
+ end
11
+
12
+ module DocMethods
13
+ def setup_gem_path
14
+ if File.directory?(gems_dir = File.join(File.dirname(__FILE__), 'gems'))
15
+ $BUNDLE = true; Gem.clear_paths; Gem.path.unshift(gems_dir)
16
+ end
17
+ end
18
+
19
+ def get_more
20
+ libs = []
21
+ more_library = find_library("merb-more")
22
+ File.open("#{more_library}/lib/merb-more.rb").read.each_line do |line|
23
+ if line['require']
24
+ libs << line.gsub("require '", '').gsub("'\n", '')
25
+ end
26
+ end
27
+ return libs
28
+ end
29
+
30
+ def generate_documentation(file_list, destination, arguments = [])
31
+ output_dir = File.join("/../doc", "rdoc", destination)
32
+ FileUtils.rm_rf(output_dir)
33
+
34
+ arguments += [
35
+ "--fmt", "merb",
36
+ "--op", output_dir
37
+ ]
38
+ RDoc::RDoc.new.document(arguments + file_list)
39
+ AdvancedDoc.new.index
40
+ end
41
+
42
+ def find_library(directory_snippet)
43
+ gem_dir = nil
44
+ Gem.path.find do |path|
45
+ dir = Dir.glob("#{path}/gems/#{directory_snippet}*")
46
+ dir.empty? ? false : gem_dir = dir.last
47
+ end
48
+ raise GemNotFoundException if gem_dir.nil?
49
+ return gem_dir
50
+ end
51
+
52
+ def get_file_list(directory_snippet)
53
+ gem_dir = find_library(directory_snippet)
54
+ files = Dir.glob("#{gem_dir}/**/lib/**/*.rb")
55
+ files += ["#{gem_dir}/README"] if File.exists?("#{gem_dir}/README")
56
+ return files
57
+ end
58
+ end
59
+
60
+ class AdvancedDoc < Thor
61
+
62
+ group 'core'
63
+ include DocMethods
64
+
65
+ def initialize
66
+ super
67
+ setup_gem_path
68
+ end
69
+
70
+ desc 'index', "Regenerate the index file for your framework documentation"
71
+ def index
72
+ @directories = Dir.entries(File.join(File.dirname(__FILE__) + "/../", "doc", "rdoc"))
73
+ @directories.delete(".")
74
+ @directories.delete("..")
75
+ @directories.delete("generators")
76
+ @directories.delete("index.html")
77
+ index_template = File.read(File.join("doc", "rdoc", "generators", "template", "merb", "index.html.erb"))
78
+
79
+ File.open(File.join("doc", "rdoc", "index.html"), "w") do |file|
80
+ file.write(ERB.new(index_template).result(binding))
81
+ end
82
+ end
83
+
84
+ desc 'plugins', 'Generate the rdoc for each merb-plugins seperatly'
85
+ def plugins
86
+ libs = ["merb_activerecord", "merb_builder", "merb_jquery", "merb_laszlo", "merb_parts", "merb_screw_unit", "merb_sequel", "merb_stories", "merb_test_unit"]
87
+
88
+ libs.each do |lib|
89
+ options[:gem] = lib
90
+ gem
91
+ end
92
+ end
93
+
94
+ desc 'more', 'Generate the rdoc for each merb-more gem seperatly'
95
+ def more
96
+ libs = get_more
97
+ libs.each do |lib|
98
+ options[:gem] = lib
99
+ gem
100
+ end
101
+ end
102
+
103
+ desc 'core', 'Generate the rdoc for merb-core'
104
+ def core
105
+ options[:gem] = "merb-core"
106
+ gem
107
+ end
108
+
109
+ desc 'gem', 'Generate the rdoc for a specific gem'
110
+ method_options "--gem" => :required
111
+ def gem
112
+ file_list = get_file_list(options[:gem])
113
+ readme = File.join(find_library("merb-core"), "README")
114
+ generate_documentation(file_list, options[:gem], ["-m", readme])
115
+ rescue GemNotFoundException
116
+ puts "Can not find the gem in the gem path #{options[:gem]}"
117
+ end
118
+
119
+ end
120
+
121
+ class Doc < Thor
122
+
123
+ include DocMethods
124
+
125
+ def initialize
126
+ super
127
+ setup_gem_path
128
+
129
+ end
130
+
131
+ desc 'stack', 'Generate the rdoc for merb-core, merb-more merged together'
132
+ def stack
133
+ libs = ["merb"]
134
+
135
+ file_list = []
136
+ libs.each do |gem_name|
137
+ begin
138
+ file_list += get_file_list(gem_name)
139
+ rescue GemNotFoundException
140
+ puts "Could not find #{gem_name} in #{Gem.path}. Continuing with out it."
141
+ end
142
+ end
143
+ readme = File.join(find_library("merb"), "README")
144
+ generate_documentation(file_list, "stack", ["-m", readme])
145
+ end
146
+
147
+ end
148
+
149
+ end