hoe-telicopter 0.1.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.
data/.autotest ADDED
@@ -0,0 +1,23 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'autotest/restart'
4
+
5
+ # Autotest.add_hook :initialize do |at|
6
+ # at.extra_files << "../some/external/dependency.rb"
7
+ #
8
+ # at.libs << ":../some/external"
9
+ #
10
+ # at.add_exception 'vendor'
11
+ #
12
+ # at.add_mapping(/dependency.rb/) do |f, _|
13
+ # at.files_matching(/test_.*rb$/)
14
+ # end
15
+ #
16
+ # %w(TestA TestB).each do |klass|
17
+ # at.extra_class_map[klass] = "test/test_misc.rb"
18
+ # end
19
+ # end
20
+
21
+ # Autotest.add_hook :run_command do |at|
22
+ # system "rake build"
23
+ # end
data/History.txt ADDED
@@ -0,0 +1,6 @@
1
+ === 0.1.0 / 2010-01-22
2
+
3
+ * 1 major enhancement
4
+
5
+ * Birthday!
6
+
data/Manifest.txt ADDED
@@ -0,0 +1,8 @@
1
+ .autotest
2
+ History.txt
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ lib/hoe/email.rb
7
+ lib/hoe/hotelicopter_gemcutter.rb
8
+ lib/hoe/telicopter.rb
data/README.txt ADDED
@@ -0,0 +1,89 @@
1
+ = hoe-telicopter
2
+
3
+ * https://github.com/g1nn13/hoe-telicopter
4
+
5
+ == DESCRIPTION:
6
+
7
+ Hoe plugins providing tasks used by seattle.rb including minitest,
8
+ perforce, and email providing full front-to-back release/annouce
9
+ automation.
10
+
11
+ == FEATURES/PROBLEMS:
12
+
13
+ * hoe/email - automates sending release email.
14
+ * hoe/telicopter - activates all the telicopter plugins.
15
+
16
+ == SYNOPSIS:
17
+
18
+ require 'rubygems'
19
+ require 'hoe'
20
+
21
+ Hoe.plugin :seattlerb
22
+
23
+ Hoe.spec 'blah' do
24
+ developer 'Ryan Davis', 'ryand-ruby@zenspider.com'
25
+
26
+ email_to << 'blah@mailing_list.com'
27
+ end
28
+
29
+ == USING EMAIL PLUGIN:
30
+
31
+ Once you activate the email plugin you should run:
32
+
33
+ % rake config_hoe
34
+
35
+ A new section called email will be created at the bottom of the file.
36
+ Fill this out as appropriate for your email host. An example gmail
37
+ config is below:
38
+
39
+ email:
40
+ user: user.name
41
+ pass: xxxx
42
+ auth: plain
43
+ port: submission
44
+ to:
45
+ - ruby-talk@ruby-lang.org
46
+ host: smtp.gmail.com
47
+
48
+ == REQUIREMENTS:
49
+
50
+ * gemcutter
51
+ * hoe
52
+
53
+ == INSTALL:
54
+
55
+ * sudo gem install hoe-telicopter
56
+
57
+ == DEVELOPERS:
58
+
59
+ After checking out the source, run:
60
+
61
+ $ rake newb
62
+
63
+ This task will install any missing dependencies, run the tests/specs,
64
+ and generate the RDoc.
65
+
66
+ == LICENSE:
67
+
68
+ (The MIT License)
69
+
70
+ Copyright (c) 2010 FIX
71
+
72
+ Permission is hereby granted, free of charge, to any person obtaining
73
+ a copy of this software and associated documentation files (the
74
+ 'Software'), to deal in the Software without restriction, including
75
+ without limitation the rights to use, copy, modify, merge, publish,
76
+ distribute, sublicense, and/or sell copies of the Software, and to
77
+ permit persons to whom the Software is furnished to do so, subject to
78
+ the following conditions:
79
+
80
+ The above copyright notice and this permission notice shall be
81
+ included in all copies or substantial portions of the Software.
82
+
83
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
84
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
85
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
86
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
87
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
88
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
89
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'rubygems'
4
+ require 'hoe'
5
+
6
+ ##
7
+ # we are publishing to gemcutter straight-away with this gem
8
+ Hoe.plugins.delete :rubyforge
9
+
10
+ Hoe.spec 'hoe-telicopter' do
11
+ developer('jim nist', 'jim@hotelicopter.com')
12
+
13
+ # self.rubyforge_name = 'hoe_telicopterx' # if different than 'hoe_telicopter'
14
+ end
15
+
16
+ # vim: syntax=ruby
data/lib/hoe/email.rb ADDED
@@ -0,0 +1,66 @@
1
+ ##
2
+ # code taken from hoe-seattlerb
3
+ #
4
+ module Hoe::Email
5
+
6
+ Hoe::DEFAULT_CONFIG["email"] = {
7
+ "to" => [],
8
+ "user" => nil,
9
+ "pass" => nil,
10
+ "host" => nil,
11
+ "port" => "smtp",
12
+ "auth" => nil,
13
+ "tls" => nil,
14
+ }
15
+
16
+ attr_reader :email_to
17
+
18
+ def initialize_email
19
+ with_config do |config, _|
20
+ @email_to = config["email"]["to"] rescue nil
21
+ end
22
+ end
23
+
24
+ def define_email_tasks
25
+ require 'net/smtp'
26
+ begin
27
+ require 'smtp_tls'
28
+ rescue LoadError
29
+ end
30
+
31
+ # attach to announcements
32
+ task :announce => :send_email
33
+
34
+ desc "Send an announcement email."
35
+ task :send_email do
36
+ warn "sending email"
37
+ message = generate_email :full
38
+
39
+ with_config do |conf, _|
40
+ host = conf["email"]["host"]
41
+ port = conf["email"]["port"]
42
+ user = conf["email"]["user"]
43
+ pass = conf["email"]["pass"]
44
+ auth = conf["email"]["auth"]
45
+ tls = conf["email"]["tls"]
46
+
47
+ port = Socket.getservbyname port unless Integer === port
48
+
49
+ tls = port != 25 if tls.nil?
50
+
51
+ start_args = [Socket.gethostname, user, pass, auth].compact
52
+
53
+ raise 'gem install smtp_tls' if tls and
54
+ not Net::SMTP.method_defined? :starttls
55
+
56
+ smtp = Net::SMTP.new(host, port)
57
+ smtp.set_debug_output $stderr if $DEBUG
58
+ smtp.enable_starttls if tls
59
+ smtp.start(*start_args) do |server|
60
+ server.send_message message, Array(email).first, *email_to
61
+ end
62
+ end
63
+ warn "...done"
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,43 @@
1
+ ##
2
+ # this is used to publish gems for hotelicopter that we have forked from other
3
+ # gems. it adds the 'g1nn13-' prefix to the gem before publishing, leaving the
4
+ # insides of the gem the unchanged as is the current custom.
5
+ #
6
+ # note however, that this custom may change in the near future to support the
7
+ # idea of 'namespaces' in gems. TODO: change this when and if it makes sense.
8
+ #
9
+ # this file is 'based' on the lib/hoe/gemcutter.rb from the hoe gem.
10
+ #
11
+
12
+ require 'rake'
13
+ gem "gemcutter" # lame. gemcutter doesn't have a VERSION const.
14
+
15
+ module Hoe::HotelicopterGemcutter
16
+
17
+ GEM_PREFIX = 'g1nn13'
18
+
19
+ def initialize_hoteliocpter_gemcutter
20
+ version = Gem.loaded_specs['gemcutter'].version
21
+ dependency_target << ['gemcutter', ">= #{version}"]
22
+ end
23
+
24
+ def define_gemcutter_tasks
25
+ desc "Push g1nn13- gem to gemcutter."
26
+ task :release_to_hotelicopter_gemcutter => [:clean, :package, :release_sanity] do
27
+ pkg = "pkg/#{spec.name}-#{spec.version}"
28
+ gems = Dir["#{pkg}*.gem"]
29
+
30
+ gems.each do |g|
31
+ new_file = "#{GEM_PREFIX}-#{g}"
32
+ puts new_file # TODO: remove
33
+ # pre-append the prefix before publishing
34
+ File.rename(g, new_file)
35
+ # TODO - once gemcutter supports command invocation, use it.
36
+ # We could still fail here due to --format executable
37
+ #sh Gem.ruby, "-S", "gem", "push", new_file
38
+ end
39
+ end
40
+
41
+ task :release_to => :release_to_hotelicopter_gemcutter
42
+ end
43
+ end unless defined? Hoe::HotelicopterGemcutter
@@ -0,0 +1,13 @@
1
+ ##
2
+ # all this really does is include the other plugins defined here
3
+ #
4
+
5
+ Hoe.plugin :email, :gemcutter
6
+
7
+ module Hoe::Telicopter
8
+ VERSION = "0.1.0"
9
+
10
+ def define_telicopter_tasks
11
+ # nothing to do
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hoe-telicopter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - jim nist
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-22 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: gemcutter
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.3.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: hoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.5.0
34
+ version:
35
+ description: |-
36
+ Hoe plugins providing tasks used by seattle.rb including minitest,
37
+ perforce, and email providing full front-to-back release/annouce
38
+ automation.
39
+ email:
40
+ - jim@hotelicopter.com
41
+ executables: []
42
+
43
+ extensions: []
44
+
45
+ extra_rdoc_files:
46
+ - History.txt
47
+ - Manifest.txt
48
+ - README.txt
49
+ files:
50
+ - .autotest
51
+ - History.txt
52
+ - Manifest.txt
53
+ - README.txt
54
+ - Rakefile
55
+ - lib/hoe/email.rb
56
+ - lib/hoe/hotelicopter_gemcutter.rb
57
+ - lib/hoe/telicopter.rb
58
+ has_rdoc: true
59
+ homepage: https://github.com/g1nn13/hoe-telicopter
60
+ licenses: []
61
+
62
+ post_install_message:
63
+ rdoc_options:
64
+ - --main
65
+ - README.txt
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: "0"
73
+ version:
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ version:
80
+ requirements: []
81
+
82
+ rubyforge_project: hoe-telicopter
83
+ rubygems_version: 1.3.5
84
+ signing_key:
85
+ specification_version: 3
86
+ summary: Hoe plugins providing tasks used by seattle.rb including minitest, perforce, and email providing full front-to-back release/annouce automation.
87
+ test_files: []
88
+