GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
rails / actionwebservice / Rakefile
100644 147 lines (128 sloc) 4.385 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
require 'rubygems'
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'rake/packagetask'
require 'rake/gempackagetask'
require 'rake/contrib/rubyforgepublisher'
require 'fileutils'
 
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
PKG_NAME = 'actionwebservice'
PKG_VERSION = '0.5.0' + PKG_BUILD
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
 
desc "Default Task"
task :default => [ :test ]
 
 
# Run the unit tests
Rake::TestTask.new { |t|
  t.libs << "test"
  t.test_files = Dir['test/*_test.rb'] + Dir['test/ws/*_test.rb']
  t.verbose = true
}
 
 
# Generate the RDoc documentation
Rake::RDocTask.new { |rdoc|
  rdoc.rdoc_dir = 'doc'
  rdoc.title = "Action Web Service -- Web services for Action Pack"
  rdoc.options << '--line-numbers --inline-source --main README --accessor class_inheritable_option=RW'
  rdoc.rdoc_files.include('README')
  rdoc.rdoc_files.include('CHANGELOG')
  rdoc.rdoc_files.include('lib/action_web_service.rb')
  rdoc.rdoc_files.include('lib/action_web_service/*.rb')
  rdoc.rdoc_files.include('lib/action_web_service/api/*.rb')
  rdoc.rdoc_files.include('lib/action_web_service/client/*.rb')
  rdoc.rdoc_files.include('lib/action_web_service/container/*.rb')
  rdoc.rdoc_files.include('lib/action_web_service/dispatcher/*.rb')
  rdoc.rdoc_files.include('lib/action_web_service/protocol/*.rb')
  rdoc.rdoc_files.include('lib/action_web_service/support/*.rb')
}
 
 
# Create compressed packages
spec = Gem::Specification.new do |s|
  s.platform = Gem::Platform::RUBY
  s.name = PKG_NAME
  s.summary = "Web service support for Action Pack."
  s.description = %q{Adds WSDL/SOAP and XML-RPC web service support to Action Pack}
  s.version = PKG_VERSION
 
  s.author = "Leon Breedt"
  s.email = "bitserf@gmail.com"
  s.rubyforge_project = "aws"
  s.homepage = "http://www.rubyonrails.org"
 
  s.add_dependency('actionpack', '>= 1.5.0' + PKG_BUILD)
  s.add_dependency('activerecord', '>= 1.7.0' + PKG_BUILD)
  s.add_dependency('activesupport', '>= 1.0.0' + PKG_BUILD)
 
  s.has_rdoc = true
  s.requirements << 'none'
  s.require_path = 'lib'
  s.autorequire = 'action_web_service'
 
  s.files = [ "Rakefile", "setup.rb", "README", "TODO", "CHANGELOG", "MIT-LICENSE" ]
  s.files = s.files + Dir.glob( "examples/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
  s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
  s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
end
Rake::GemPackageTask.new(spec) do |p|
  p.gem_spec = spec
  p.need_tar = true
  p.need_zip = true
end
 
 
# Publish beta gem
desc "Publish the API documentation"
task :pgem => [:package] do
  Rake::SshFilePublisher.new("davidhh@comox.textdrive.com", "public_html/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload
  `ssh davidhh@comox.textdrive.com './gemupdate.sh'`
end
 
# Publish documentation
desc "Publish the API documentation"
task :pdoc => [:rdoc] do
  Rake::SshDirPublisher.new("davidhh@comox.textdrive.com", "public_html/aws", "doc").upload
end
 
 
def each_source_file(*args)
  prefix, includes, excludes, open_file = args
  prefix ||= File.dirname(__FILE__)
  open_file = true if open_file.nil?
  includes ||= %w[lib\/action_web_service\.rb$ lib\/action_web_service\/.*\.rb$]
  excludes ||= %w[lib\/action_web_service\/vendor]
  Find.find(prefix) do |file_name|
    next if file_name =~ /\.svn/
    file_name.gsub!(/^\.\//, '')
    continue = false
    includes.each do |inc|
      if file_name.match(/#{inc}/)
        continue = true
        break
      end
    end
    next unless continue
    excludes.each do |exc|
      if file_name.match(/#{exc}/)
        continue = false
        break
      end
    end
    next unless continue
    if open_file
      File.open(file_name) do |f|
        yield file_name, f
      end
    else
      yield file_name
    end
  end
end
 
desc "Count lines of the AWS source code"
task :lines do
  total_lines = total_loc = 0
  puts "Per File:"
  each_source_file do |file_name, f|
    file_lines = file_loc = 0
    while line = f.gets
      file_lines += 1
      next if line =~ /^\s*$/
      next if line =~ /^\s*#/
      file_loc += 1
    end
    puts " #{file_name}: Lines #{file_lines}, LOC #{file_loc}"
    total_lines += file_lines
    total_loc += file_loc
  end
  puts "Total:"
  puts " Lines #{total_lines}, LOC #{total_loc}"
end