git ssb

0+

dangerousbeans / %aPBe2k3ugtjBr4rrsU1…



Tree: 9c7450a176ba89178fdf1581fd7c98cd693fd993

Files: 9c7450a176ba89178fdf1581fd7c98cd693fd993 / Rakefile

2561 bytesRaw
1gem "rspec"
2require "spec/rake/spectask"
3require 'rake/gempackagetask'
4require 'rake/contrib/rubyforgepublisher'
5require 'rake/clean'
6require 'rake/rdoctask'
7require "benchmark"
8
9PKG_NAME = "bcrypt-ruby"
10PKG_VERSION = "2.0.0"
11PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
12PKG_FILES = FileList[
13 '[A-Z]*',
14 'lib/**/*.rb',
15 'spec/**/*.rb',
16 'ext/*.c',
17 'ext/*.h',
18 'ext/*.rb'
19]
20CLEAN.include(
21 "ext/*.o",
22 "ext/*.bundle",
23 "ext/*.so"
24)
25CLOBBER.include(
26 "doc"
27)
28
29task :default => [:spec]
30
31desc "Run all specs"
32Spec::Rake::SpecTask.new do |t|
33 t.spec_files = FileList['spec/**/*_spec.rb']
34 t.spec_opts = ['--color','--backtrace','--diff']
35 t.rcov = true
36 t.rcov_dir = 'doc/output/coverage'
37 t.rcov_opts = ['--exclude', 'spec\/spec,spec\/.*_spec.rb']
38end
39
40desc "Run all specs and store html output in doc/output/report.html"
41Spec::Rake::SpecTask.new('spec_html') do |t|
42 t.spec_files = FileList['spec/**/*_spec.rb']
43 t.spec_opts = ['--diff','--format html','--backtrace','--out doc/output/report.html']
44end
45
46desc 'Generate RDoc'
47rd = Rake::RDocTask.new do |rdoc|
48 rdoc.rdoc_dir = 'doc/output/rdoc'
49 rdoc.options << '--title' << 'bcrypt-ruby' << '--line-numbers' << '--inline-source' << '--main' << 'README'
50 rdoc.template = ENV['TEMPLATE'] if ENV['TEMPLATE']
51 rdoc.rdoc_files.include('README', 'COPYING', 'CHANGELOG', 'lib/**/*.rb')
52end
53
54spec = Gem::Specification.new do |s|
55 s.name = PKG_NAME
56 s.version = PKG_VERSION
57 s.summary = "OpenBSD's bcrypt() password hashing algorithm."
58 s.description = <<-EOF
59 bcrypt() is a sophisticated and secure hash algorithm designed by The OpenBSD project
60 for hashing passwords. bcrypt-ruby provides a simple, humane wrapper for safely handling
61 passwords.
62 EOF
63
64 s.files = PKG_FILES.to_a
65 s.require_path = 'lib'
66
67 s.has_rdoc = true
68 s.rdoc_options = rd.options
69 s.extra_rdoc_files = rd.rdoc_files.to_a
70
71 s.extensions = FileList["ext/extconf.rb"].to_a
72
73 s.autorequire = 'bcrypt'
74 s.author = ["Coda Hale"]
75 s.email = "coda.hale@gmail.com"
76 s.homepage = "http://bcrypt-ruby.rubyforge.org"
77 s.rubyforge_project = "bcrypt-ruby"
78end
79
80Rake::GemPackageTask.new(spec) do |pkg|
81 pkg.need_zip = true
82 pkg.need_tar = true
83end
84
85task :compile => [:clean] do
86 Dir.chdir('./ext')
87 system "ruby extconf.rb"
88 system "make"
89end
90
91task :benchmark do
92 TESTS = 100
93 TEST_PWD = "this is a test"
94 require "lib/bcrypt"
95 Benchmark.bmbm do |results|
96 4.upto(10) do |n|
97 results.report("cost #{n}:") { TESTS.times { BCrypt::Password.create(TEST_PWD, :cost => n) } }
98 end
99 end
100end
101

Built with git-ssb-web