rubyw_helper 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,6 @@ spec/.bacon
7
7
  spec/helper.rb
8
8
  spec/runner
9
9
  spec/spec_rubyw_helper.rb
10
- tasks/ann.rake
11
10
  tasks/autospec.rake
12
11
  tasks/bacon.rake
13
12
  tasks/bones.rake
@@ -3,7 +3,7 @@ require 'exception_string'
3
3
 
4
4
  class RubywHelper
5
5
 
6
- Version = VERSION = '0.1.3'
6
+ Version = VERSION = '0.1.4'
7
7
  def self.version; Version; end
8
8
 
9
9
  app_name = File.basename($0)
@@ -1,5 +1,7 @@
1
+ desc "Run the executable test specifications"
1
2
  task :spec do
2
3
  ruby 'spec/runner'
3
4
  end
4
5
 
6
+ desc "Run the executable test specifications"
5
7
  task :test => :spec
@@ -18,6 +18,9 @@ namespace :gem do
18
18
  PROJ.gem.dependencies.each do |dep|
19
19
  s.add_dependency(*dep)
20
20
  end
21
+ PROJ.gem.development_dependencies.each do |dep|
22
+ s.add_development_dependency(*dep)
23
+ end
21
24
 
22
25
  s.files = PROJ.gem.files
23
26
  s.executables = PROJ.gem.executables.map {|fn| File.basename(fn)}
@@ -114,6 +117,15 @@ namespace :gem do
114
117
  sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
115
118
  end
116
119
 
120
+ file "#{PROJ.name}.gemspec" => PROJ.gem._spec.files do |t|
121
+ open(t.name, 'w') { |f| f.write PROJ.gem._spec.to_ruby }
122
+ end
123
+ CLOBBER.include("#{PROJ.name}.gemspec")
124
+
125
+ desc 'Generate gemspec'
126
+ task :spec => "#{PROJ.name}.gemspec"
127
+ task :release => :spec
128
+
117
129
  end # namespace :gem
118
130
 
119
131
  desc 'Alias to gem:package'
@@ -3,9 +3,11 @@
3
3
  # This file does not define any rake tasks. It is used to load some project
4
4
  # settings if they are not defined by the user.
5
5
 
6
+ PROJ.rdoc.main ||= PROJ.readme_file
7
+ PROJ.rdoc.dir ||= File.join('doc', PROJ.name)
8
+
6
9
  PROJ.rdoc.exclude << "^#{Regexp.escape(PROJ.manifest_file)}$"
7
- PROJ.exclude << ["^#{Regexp.escape(PROJ.ann.file)}$",
8
- "^#{Regexp.escape(PROJ.rdoc.dir)}/",
10
+ PROJ.exclude << ["^#{Regexp.escape(PROJ.rdoc.dir)}/",
9
11
  "^#{Regexp.escape(PROJ.rcov.dir)}/"]
10
12
 
11
13
  flatten_arrays = lambda do |this,os|
@@ -34,6 +36,4 @@ PROJ.gem.files ||=
34
36
 
35
37
  PROJ.gem.executables ||= PROJ.gem.files.find_all {|fn| fn =~ %r/^bin/}
36
38
 
37
- PROJ.rdoc.main ||= PROJ.readme_file
38
-
39
39
  # EOF
@@ -46,7 +46,7 @@ namespace :doc do
46
46
  host = "#{config['username']}@rubyforge.org"
47
47
  remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge.name}/"
48
48
  remote_dir << PROJ.rdoc.remote_dir if PROJ.rdoc.remote_dir
49
- local_dir = PROJ.rdoc.dir
49
+ local_dir = File.dirname(PROJ.rdoc.dir)
50
50
 
51
51
  Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
52
52
  end
@@ -18,7 +18,8 @@ PROJ = OpenStruct.new(
18
18
  :email => nil,
19
19
  :url => "\000",
20
20
  :version => ENV['VERSION'] || '0.0.0',
21
- :exclude => %w(tmp$ bak$ ~$ CVS \.svn/ \.git/ ^pkg/),
21
+ :exclude => %w(tmp$ bak$ ~$ CVS \.git/ \.hg/ \.svn/ ^pkg/ ^doc/ \.DS_Store
22
+ \.hgignore \.gitignore \.dotest \.swp$ .*\.gemspec$),
22
23
  :release_name => ENV['RELEASE'],
23
24
 
24
25
  # System Defaults
@@ -28,26 +29,10 @@ PROJ = OpenStruct.new(
28
29
  :manifest_file => 'Manifest.txt',
29
30
  :readme_file => 'README.rdoc',
30
31
 
31
- # Announce
32
- :ann => OpenStruct.new(
33
- :file => 'announcement.txt',
34
- :text => nil,
35
- :paragraphs => [],
36
- :email => {
37
- :from => nil,
38
- :to => %w(ruby-talk@ruby-lang.org),
39
- :server => 'localhost',
40
- :port => 25,
41
- :domain => ENV['HOSTNAME'],
42
- :acct => nil,
43
- :passwd => nil,
44
- :authtype => :plain
45
- }
46
- ),
47
-
48
32
  # Gem Packaging
49
33
  :gem => OpenStruct.new(
50
34
  :dependencies => [],
35
+ :development_dependencies => ['rake', 'bones', 'bacon'],
51
36
  :executables => nil,
52
37
  :extensions => FileList['ext/**/extconf.rb'],
53
38
  :files => nil,
@@ -59,7 +44,7 @@ PROJ = OpenStruct.new(
59
44
  # File Annotations
60
45
  :notes => OpenStruct.new(
61
46
  :exclude => %w(^tasks/setup\.rb$),
62
- :extensions => %w(.txt .rb .erb) << '',
47
+ :extensions => %w(.txt .rb .erb .rdoc) << '',
63
48
  :tags => %w(FIXME OPTIMIZE TODO)
64
49
  ),
65
50
 
@@ -77,7 +62,7 @@ PROJ = OpenStruct.new(
77
62
  :include => %w(^lib/ ^bin/ ^ext/ \.txt$ \.rdoc$),
78
63
  :exclude => %w(extconf\.rb$),
79
64
  :main => nil,
80
- :dir => 'doc',
65
+ :dir => nil,
81
66
  :remote_dir => nil
82
67
  ),
83
68
 
@@ -86,25 +71,10 @@ PROJ = OpenStruct.new(
86
71
  :name => "\000"
87
72
  ),
88
73
 
89
- # Rspec
90
- :spec => OpenStruct.new(
91
- :files => FileList['spec/**/*_spec.rb'],
92
- :opts => []
93
- ),
94
-
95
- # Subversion Repository
96
- :svn => OpenStruct.new(
97
- :root => nil,
98
- :path => '',
99
- :trunk => 'trunk',
100
- :tags => 'tags',
101
- :branches => 'branches'
102
- ),
103
-
104
- # Test::Unit
74
+ # Tests
105
75
  :test => OpenStruct.new(
106
- :files => FileList['test/**/test_*.rb'],
107
- :file => 'test/all.rb',
76
+ :files => FileList['{test,spec}/{{test,spec}_*.rb,*_spec.rb}'],
77
+ :file => '',
108
78
  :opts => []
109
79
  )
110
80
  )
@@ -166,7 +136,7 @@ HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and
166
136
  # specified.
167
137
  #
168
138
  # changes = paragraphs_of('History.txt', 0..1).join("\n\n")
169
- # summary, *description = paragraphs_of('README.txt', 3, 3..8)
139
+ # summary, *description = paragraphs_of('README.rdoc', 3, 3..8)
170
140
  #
171
141
  def paragraphs_of( path, *paragraphs )
172
142
  title = String === paragraphs.first ? paragraphs.shift : nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyw_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Tucker
@@ -22,6 +22,36 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: "0"
24
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: bones
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: bacon
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
25
55
  description: A simple redirector for use when you just want to safely redirect stdio. Simply encapsulates a few different safety mechanisms when redirecting stdio, with the primary goal of making it easier to write apps that run under rubyw.exe, where ruby loads with stdio closed. Whilst the primary intention for use is under win32, and was actually developed as an external helper for specifically win32-service usage, this gem may be useful to some other folks on other platforms. It is not win32 specific.
26
56
  email: raggi@rubyforge.org
27
57
  executables: []
@@ -41,7 +71,6 @@ files:
41
71
  - spec/helper.rb
42
72
  - spec/runner
43
73
  - spec/spec_rubyw_helper.rb
44
- - tasks/ann.rake
45
74
  - tasks/autospec.rake
46
75
  - tasks/bacon.rake
47
76
  - tasks/bones.rake
@@ -80,5 +109,5 @@ rubygems_version: 1.3.1
80
109
  signing_key:
81
110
  specification_version: 2
82
111
  summary: A simple redirector for use when you just want to safely redirect stdio
83
- test_files: []
84
-
112
+ test_files:
113
+ - spec/spec_rubyw_helper.rb
@@ -1,81 +0,0 @@
1
- # $Id$
2
-
3
- begin
4
- require 'bones/smtp_tls'
5
- rescue LoadError
6
- require 'net/smtp'
7
- end
8
- require 'time'
9
-
10
- namespace :ann do
11
-
12
- # A prerequisites task that all other tasks depend upon
13
- task :prereqs
14
-
15
- file PROJ.ann.file do
16
- ann = PROJ.ann
17
- puts "Generating #{ann.file}"
18
- File.open(ann.file,'w') do |fd|
19
- fd.puts("#{PROJ.name} version #{PROJ.version}")
20
- fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
21
- fd.puts(" #{PROJ.url}") if PROJ.url.valid?
22
- fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
23
- fd.puts
24
- fd.puts("== DESCRIPTION")
25
- fd.puts
26
- fd.puts(PROJ.description)
27
- fd.puts
28
- fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
29
- fd.puts
30
- ann.paragraphs.each do |p|
31
- fd.puts "== #{p.upcase}"
32
- fd.puts
33
- fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
34
- fd.puts
35
- end
36
- fd.puts ann.text if ann.text
37
- end
38
- end
39
-
40
- desc "Create an announcement file"
41
- task :announcement => ['ann:prereqs', PROJ.ann.file]
42
-
43
- desc "Send an email announcement"
44
- task :email => ['ann:prereqs', PROJ.ann.file] do
45
- ann = PROJ.ann
46
- from = ann.email[:from] || PROJ.email
47
- to = Array(ann.email[:to])
48
-
49
- ### build a mail header for RFC 822
50
- rfc822msg = "From: #{from}\n"
51
- rfc822msg << "To: #{to.join(',')}\n"
52
- rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
53
- rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
54
- rfc822msg << "\n"
55
- rfc822msg << "Date: #{Time.new.rfc822}\n"
56
- rfc822msg << "Message-Id: "
57
- rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
58
- rfc822msg << File.read(ann.file)
59
-
60
- params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
61
- ann.email[key]
62
- end
63
-
64
- params[3] = PROJ.email if params[3].nil?
65
-
66
- if params[4].nil?
67
- STDOUT.write "Please enter your e-mail password (#{params[3]}): "
68
- params[4] = STDIN.gets.chomp
69
- end
70
-
71
- ### send email
72
- Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
73
- end
74
- end # namespace :ann
75
-
76
- desc 'Alias to ann:announcement'
77
- task :ann => 'ann:announcement'
78
-
79
- CLOBBER << PROJ.ann.file
80
-
81
- # EOF