methodchain 0.2.0 → 0.2.1

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/rakefile CHANGED
@@ -1,9 +1,48 @@
1
1
  project = "methodchain"
2
- desc "test"
3
- task :test do
2
+
3
+ def exit_msg(msg, code=1)
4
+ puts msg
5
+ exit(code)
6
+ end
7
+ def run command
8
+ res = `#{command}`
9
+ exit_msg res, $?.exitstatus if $?.exitstatus != 0
10
+ res
11
+ end
12
+ def __DIR__; "#{File.dirname(__FILE__)}" end
13
+ class IO
14
+ def self.write( file, str )
15
+ self.open( file, 'w' ) { |fh| fh.print str }
16
+ end
17
+ def self.read_write( file, write_file=file )
18
+ self.write(write_file, (yield( self.read( file ))))
19
+ end
20
+ end
21
+
22
+ desc "test run all tests"
23
+ task :test => [:spec, 'readme:test']
24
+
25
+ desc "run specs"
26
+ task :spec do
4
27
  Dir[ 'spec/*' ].each do |file|
5
- puts `spec #{file}`
6
- exit $?.exitstatus if $?.exitstatus != 0
28
+ (puts (run "spec #{file}"))
29
+ end
30
+ end
31
+
32
+ require 'rubygems'
33
+ require 'spec/rake/spectask'
34
+ desc "Run all examples with RCov"
35
+ Spec::Rake::SpecTask.new('rcov') do |t|
36
+ t.spec_files = ['spec/*.rb']
37
+ t.rcov = true
38
+ t.rcov_opts = ['--exclude', 'spec']
39
+ end
40
+
41
+ namespace :rcov do
42
+ require 'spec/rake/verify_rcov'
43
+ RCov::VerifyTask.new(:verify => :spec) do |t|
44
+ t.threshold = 100 # Make sure you have rcov 0.7 or higher!
45
+ t.index_html = 'coverage/lib-methodchain-not_included_rb.html'
7
46
  end
8
47
  end
9
48
 
@@ -12,7 +51,8 @@ task :release => [:rdoc,:package] do
12
51
  Dir.chdir('pkg') do
13
52
  release = Dir['*.gem'].sort_by {|file| File.mtime(file)}.last
14
53
  release =~ /^[^-]+-([.0-9]+).gem$/
15
- `rubyforge login && rubyforge add_release #{project} #{project} #$1 #{release}`
54
+ puts `rubyforge login && rubyforge add_release #{project} #{project} #$1 #{release}`
55
+ puts $?.exitstatus
16
56
  end
17
57
  end
18
58
 
@@ -23,17 +63,42 @@ end
23
63
 
24
64
  namespace :readme do
25
65
  desc "create html for website using coderay, use --silent option"
26
- task :html => :rdoc do
66
+ task :html do
67
+ rm_rf 'doc'
68
+ `rdoc --quiet README`
27
69
  require 'hpricot'
28
70
  doc = open( 'doc/files/README.html' ) { |f| Hpricot(f) }
29
71
  # find example code
30
- doc.at('#description').search('pre').
31
- select {|elem| elem.inner_html =~ /class |module /}.each do |ex|
72
+ doc.at('#description').search('pre').each do |ex|
73
+ #select {|elem| elem.inner_html =~ /class |module /}.each do |ex|
32
74
  # add coderay and undo what rdoc has done in the example code
33
75
  ex.swap("<coderay lang='ruby'>#{ex.inner_html.gsub('&quot;', '"').gsub('&gt;','>')}</coderay>")
34
76
  end
35
77
  puts doc.at('#description').to_html
36
78
  end
79
+
80
+ # run README through xmp
81
+ desc "run README code through xmp filter"
82
+ task :test do
83
+ # grab example code from README
84
+ tmpdir = __DIR__ + '/tmp'
85
+ mkdir tmpdir unless File.directory? tmpdir
86
+ example_file = "#{File.expand_path(tmpdir)}/example.rb"
87
+
88
+ File.write(example_file, (
89
+ File.read("#{__DIR__}/lib/methodchain/not_included.rb") <<
90
+ "class Object; include MethodChain end\n" <<
91
+ File.readlines('README').grep(/^ / ).
92
+ reject {|l| l =~ /^\s*require/ or l.include?('Error')}.
93
+ join ))
94
+
95
+ command = "ruby ../bin/xmpfilter -c #{example_file}"
96
+ Dir.chdir '/home/greg/src/head/lib' do
97
+ run "#{command}"
98
+ end
99
+ rm_rf 'tmp'
100
+ puts "README code successfully evaluated"
101
+ end
37
102
  end
38
103
 
39
104
  require 'rubygems'
@@ -42,7 +107,7 @@ require 'rake/gempackagetask'
42
107
  spec = Gem::Specification.new do |s|
43
108
  s.name = project
44
109
  s.rubyforge_project = project
45
- s.version = "0.2.0"
110
+ s.version = "0.2.1"
46
111
  s.author = "Greg Weber"
47
112
  s.email = "greg@gregweber.info"
48
113
  s.homepage = "http://projects.gregweber.info/#{project}"
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: methodchain
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.0
7
- date: 2008-03-09 00:00:00 -06:00
6
+ version: 0.2.1
7
+ date: 2008-03-10 00:00:00 -05:00
8
8
  summary: convenience methods for method chaining
9
9
  require_paths:
10
10
  - lib
@@ -35,6 +35,7 @@ files:
35
35
  - ./spec
36
36
  - ./README
37
37
  - ./rakefile
38
+ - ./coverage
38
39
  - doc/files
39
40
  - doc/index.html
40
41
  - doc/rdoc-style.css
@@ -45,11 +46,16 @@ files:
45
46
  - doc/classes
46
47
  - lib/methodchain
47
48
  - lib/methodchain.rb
49
+ - pkg/methodchain-0.2.0.gem
48
50
  - pkg/methodchain-0.0.1.gem
49
51
  - pkg/methodchain-0.0.3.gem
50
52
  - pkg/methodchain-0.0.5.gem
51
53
  - pkg/methodchain-0.1.0.gem
52
54
  - spec/methodchain_spec.rb
55
+ - coverage/lib-methodchain_rb.html
56
+ - coverage/index.html
57
+ - coverage/-var-lib-gems-1_8-gems-rcov-0_8_0_2-lib-rcov_rb.html
58
+ - coverage/lib-methodchain-not_included_rb.html
53
59
  - README
54
60
  test_files: []
55
61