entp-astrotrain 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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