colincasey-sequel 2.10.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/CHANGELOG +2190 -0
- data/COPYING +19 -0
- data/README.rdoc +670 -0
- data/Rakefile +172 -0
- data/bin/sequel +104 -0
- metadata +64 -0
data/Rakefile
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
require "rake"
|
2
|
+
require "rake/clean"
|
3
|
+
require "rake/gempackagetask"
|
4
|
+
require "spec/rake/spectask"
|
5
|
+
begin
|
6
|
+
require "hanna/rdoctask"
|
7
|
+
rescue LoadError
|
8
|
+
require "rake/rdoctask"
|
9
|
+
end
|
10
|
+
require "fileutils"
|
11
|
+
require "lib/sequel_core/version"
|
12
|
+
|
13
|
+
include FileUtils
|
14
|
+
|
15
|
+
NAME = 'sequel'
|
16
|
+
VERS = Sequel.version
|
17
|
+
CLEAN.include ["**/.*.sw?", "pkg", ".config", "rdoc", "coverage", "www/public/*.html"]
|
18
|
+
RDOC_OPTS = ["--quiet", "--line-numbers", "--inline-source", '--title', \
|
19
|
+
'Sequel: The Database Toolkit for Ruby', '--main', 'README.rdoc']
|
20
|
+
|
21
|
+
# Gem Packaging and Release
|
22
|
+
|
23
|
+
desc "Packages sequel"
|
24
|
+
task :package=>[:clean]
|
25
|
+
spec = Gem::Specification.new do |s|
|
26
|
+
s.name = NAME
|
27
|
+
s.rubyforge_project = 'sequel'
|
28
|
+
s.version = VERS
|
29
|
+
s.platform = Gem::Platform::RUBY
|
30
|
+
s.has_rdoc = true
|
31
|
+
s.extra_rdoc_files = ["README.rdoc", "CHANGELOG", "COPYING"] + Dir["doc/*.rdoc"] + Dir['doc/release_notes/*.txt']
|
32
|
+
s.rdoc_options += RDOC_OPTS
|
33
|
+
s.summary = "The Database Toolkit for Ruby"
|
34
|
+
s.description = s.summary
|
35
|
+
s.author = "Jeremy Evans"
|
36
|
+
s.email = "code@jeremyevans.net"
|
37
|
+
s.homepage = "http://sequel.rubyforge.org"
|
38
|
+
s.required_ruby_version = ">= 1.8.4"
|
39
|
+
s.files = %w(COPYING CHANGELOG README.rdoc Rakefile) + Dir.glob("{bin,doc,spec,lib}/**/*")
|
40
|
+
s.require_path = "lib"
|
41
|
+
s.bindir = 'bin'
|
42
|
+
s.executables << 'sequel'
|
43
|
+
end
|
44
|
+
Rake::GemPackageTask.new(spec) do |p|
|
45
|
+
p.need_tar = true
|
46
|
+
p.gem_spec = spec
|
47
|
+
end
|
48
|
+
|
49
|
+
desc "Install sequel gem"
|
50
|
+
task :install=>[:package] do
|
51
|
+
sh %{sudo gem install pkg/#{NAME}-#{VERS} --local}
|
52
|
+
end
|
53
|
+
|
54
|
+
desc "Install sequel gem without RDoc"
|
55
|
+
task :install_no_docs=>[:package] do
|
56
|
+
sh %{sudo gem install pkg/#{NAME}-#{VERS} --no-rdoc --no-ri --local}
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Uninstall sequel gem"
|
60
|
+
task :uninstall=>[:clean] do
|
61
|
+
sh %{sudo gem uninstall #{NAME}}
|
62
|
+
end
|
63
|
+
|
64
|
+
desc "Upload sequel and sequel_core gems to rubyforge"
|
65
|
+
task :release=>[:package] do
|
66
|
+
sh %{rubyforge login}
|
67
|
+
sh %{rubyforge add_release sequel #{NAME} #{VERS} pkg/#{NAME}-#{VERS}.tgz}
|
68
|
+
sh %{rubyforge add_file sequel #{NAME} #{VERS} pkg/#{NAME}-#{VERS}.gem}
|
69
|
+
end
|
70
|
+
|
71
|
+
### RDoc
|
72
|
+
|
73
|
+
Rake::RDocTask.new do |rdoc|
|
74
|
+
rdoc.rdoc_dir = "rdoc"
|
75
|
+
rdoc.options += RDOC_OPTS
|
76
|
+
rdoc.rdoc_files.add %w"README.rdoc CHANGELOG COPYING lib/**/*.rb doc/*.rdoc doc/release_notes/*.txt"
|
77
|
+
end
|
78
|
+
|
79
|
+
### Website
|
80
|
+
|
81
|
+
desc "Update Non-RDoc section of sequel.rubyforge.org"
|
82
|
+
task :website_base do
|
83
|
+
sh %{www/make_www.rb}
|
84
|
+
sh %{scp -r www/public/* rubyforge.org:/var/www/gforge-projects/sequel/}
|
85
|
+
end
|
86
|
+
|
87
|
+
desc "Update RDoc section of sequel.rubyforge.org"
|
88
|
+
task :website_rdoc=>[:rerdoc] do
|
89
|
+
sh %{scp -r rdoc/* rubyforge.org:/var/www/gforge-projects/sequel/rdoc/}
|
90
|
+
end
|
91
|
+
|
92
|
+
desc "Update sequel.rubyforge.org"
|
93
|
+
task :website=>[:website_base, :website_rdoc]
|
94
|
+
|
95
|
+
### Specs
|
96
|
+
|
97
|
+
lib_dir = File.join(File.dirname(__FILE__), 'lib')
|
98
|
+
fixRUBYLIB = Proc.new{ENV['RUBYLIB'] ? (ENV['RUBYLIB'] += ":#{lib_dir}") : (ENV['RUBYLIB'] = lib_dir)}
|
99
|
+
sequel_core_specs = "spec/sequel_core/*_spec.rb"
|
100
|
+
sequel_model_specs = "spec/sequel_model/*_spec.rb"
|
101
|
+
spec_opts = proc{File.read("spec/spec.opts").split("\n")}
|
102
|
+
rcov_opts = proc{File.read("spec/rcov.opts").split("\n")}
|
103
|
+
|
104
|
+
desc "Run core and model specs with coverage"
|
105
|
+
Spec::Rake::SpecTask.new("spec_coverage") do |t|
|
106
|
+
fixRUBYLIB.call
|
107
|
+
t.spec_files = FileList[sequel_core_specs, sequel_model_specs]
|
108
|
+
t.spec_opts = spec_opts.call
|
109
|
+
t.rcov_opts = rcov_opts.call
|
110
|
+
t.rcov = true
|
111
|
+
end
|
112
|
+
|
113
|
+
desc "Run core and model specs"
|
114
|
+
task :default => [:spec]
|
115
|
+
Spec::Rake::SpecTask.new("spec") do |t|
|
116
|
+
fixRUBYLIB.call
|
117
|
+
t.spec_files = FileList[sequel_core_specs, sequel_model_specs]
|
118
|
+
t.spec_opts = spec_opts.call
|
119
|
+
end
|
120
|
+
|
121
|
+
desc "Run core specs"
|
122
|
+
Spec::Rake::SpecTask.new("spec_core") do |t|
|
123
|
+
fixRUBYLIB.call
|
124
|
+
t.spec_files = FileList[sequel_core_specs]
|
125
|
+
t.spec_opts = spec_opts.call
|
126
|
+
end
|
127
|
+
|
128
|
+
desc "Run model specs"
|
129
|
+
Spec::Rake::SpecTask.new("spec_model") do |t|
|
130
|
+
fixRUBYLIB.call
|
131
|
+
t.spec_files = FileList[sequel_model_specs]
|
132
|
+
t.spec_opts = spec_opts.call
|
133
|
+
end
|
134
|
+
|
135
|
+
desc "Run integration tests"
|
136
|
+
Spec::Rake::SpecTask.new("integration") do |t|
|
137
|
+
fixRUBYLIB.call
|
138
|
+
t.spec_files = FileList["spec/integration/*_test.rb"]
|
139
|
+
t.spec_opts = spec_opts.call
|
140
|
+
end
|
141
|
+
|
142
|
+
%w'postgres sqlite mysql informix oracle ado'.each do |adapter|
|
143
|
+
desc "Run #{adapter} specs without coverage"
|
144
|
+
Spec::Rake::SpecTask.new("spec_#{adapter}") do |t|
|
145
|
+
t.spec_files = ["spec/adapters/#{adapter}_spec.rb"]
|
146
|
+
t.spec_opts = spec_opts.call
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
desc "check documentation coverage"
|
151
|
+
task :dcov do
|
152
|
+
sh %{find lib -name '*.rb' | xargs dcov}
|
153
|
+
end
|
154
|
+
|
155
|
+
### Statistics
|
156
|
+
|
157
|
+
STATS_DIRECTORIES = [
|
158
|
+
%w(Code lib/),
|
159
|
+
%w(Spec spec),
|
160
|
+
].collect { |name, dir| [ name, "./#{dir}" ] }.select { |name, dir| File.directory?(dir) }
|
161
|
+
|
162
|
+
desc "Report code statistics (KLOCs, etc) from the application"
|
163
|
+
task :stats do
|
164
|
+
require "extra/stats"
|
165
|
+
verbose = true
|
166
|
+
CodeStatistics.new(*STATS_DIRECTORIES).to_s
|
167
|
+
end
|
168
|
+
|
169
|
+
desc "Print Sequel version"
|
170
|
+
task :version do
|
171
|
+
puts VERS
|
172
|
+
end
|
data/bin/sequel
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'optparse'
|
5
|
+
require 'sequel'
|
6
|
+
|
7
|
+
db_opts = {}
|
8
|
+
echo = nil
|
9
|
+
env = nil
|
10
|
+
logfile = nil
|
11
|
+
migrate_dir = nil
|
12
|
+
migrate_ver = nil
|
13
|
+
load_dir = nil
|
14
|
+
|
15
|
+
opts = OptionParser.new do |opts|
|
16
|
+
opts.banner = "Sequel: The Database Toolkit for Ruby"
|
17
|
+
opts.define_head "Usage: sequel <uri|path> [options]"
|
18
|
+
opts.separator ""
|
19
|
+
opts.separator "Examples:"
|
20
|
+
opts.separator " sequel sqlite://blog.db"
|
21
|
+
opts.separator " sequel postgres://localhost/my_blog"
|
22
|
+
opts.separator " sequel config/database.yml"
|
23
|
+
opts.separator ""
|
24
|
+
opts.separator "For more information see http://sequel.rubyforge.org"
|
25
|
+
opts.separator ""
|
26
|
+
opts.separator "Options:"
|
27
|
+
|
28
|
+
opts.on_tail("-?", "--help", "Show this message") do
|
29
|
+
puts opts
|
30
|
+
exit
|
31
|
+
end
|
32
|
+
|
33
|
+
opts.on("-e", "--env ENV", "use environment config for database") do |v|
|
34
|
+
env = v
|
35
|
+
end
|
36
|
+
|
37
|
+
opts.on("-E", "--echo", "echo SQL statements") do
|
38
|
+
echo = true
|
39
|
+
end
|
40
|
+
|
41
|
+
opts.on("-l", "--log logfile", "log SQL statements to log file") do |v|
|
42
|
+
logfile = v
|
43
|
+
end
|
44
|
+
|
45
|
+
opts.on("-L", "--load-dir DIR", "loads all *.rb from specifed directory") do |v|
|
46
|
+
load_dir = v
|
47
|
+
end
|
48
|
+
|
49
|
+
opts.on("-m", "--migrate-directory DIR", "run the migrations in directory") do |v|
|
50
|
+
migrate_dir = v
|
51
|
+
end
|
52
|
+
|
53
|
+
opts.on("-M", "--migrate-version VER", "migrate the database to version given") do |v|
|
54
|
+
migrate_ver = Integer(v)
|
55
|
+
end
|
56
|
+
|
57
|
+
opts.on_tail("-v", "--version", "Show version") do
|
58
|
+
puts "sequel #{Sequel.version}"
|
59
|
+
exit
|
60
|
+
end
|
61
|
+
end
|
62
|
+
opts.parse!
|
63
|
+
|
64
|
+
db = ARGV.shift
|
65
|
+
|
66
|
+
if db.blank?
|
67
|
+
puts opts
|
68
|
+
exit 1
|
69
|
+
end
|
70
|
+
|
71
|
+
if logfile || echo
|
72
|
+
require 'logger'
|
73
|
+
db_opts[:loggers] = []
|
74
|
+
db_opts[:loggers] << Logger.new(logfile) if logfile
|
75
|
+
db_opts[:loggers] << Logger.new($stdout) if echo
|
76
|
+
end
|
77
|
+
|
78
|
+
if File.exist?(db)
|
79
|
+
require 'yaml'
|
80
|
+
env ||= "development"
|
81
|
+
db_config = YAML.load_file(db)
|
82
|
+
db_config = db_config[env] || db_config[env.to_sym] || db_config
|
83
|
+
db_config.each{|(k,v)| db_config[k.to_sym] = db_config.delete(k)}
|
84
|
+
db_config.merge!(db_opts)
|
85
|
+
end
|
86
|
+
|
87
|
+
begin
|
88
|
+
DB = Sequel.connect(*(db_config ? [db_config] : [db, db_opts]))
|
89
|
+
DB.test_connection
|
90
|
+
if migrate_dir
|
91
|
+
Sequel::Migrator.apply(DB, migrate_dir, migrate_ver)
|
92
|
+
exit
|
93
|
+
end
|
94
|
+
rescue => e
|
95
|
+
puts "#{e.class}: #{e.message}"
|
96
|
+
puts e.backtrace.first
|
97
|
+
exit 1
|
98
|
+
end
|
99
|
+
|
100
|
+
Dir["#{load_dir}/**/*.rb"].each{|f| load(f)} if load_dir
|
101
|
+
|
102
|
+
require 'irb'
|
103
|
+
puts "Your database is stored in DB..."
|
104
|
+
IRB.start
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: colincasey-sequel
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.10.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeremy Evans
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-02-13 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: The Database Toolkit for Ruby
|
17
|
+
email: code@jeremyevans.net
|
18
|
+
executables:
|
19
|
+
- sequel
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.rdoc
|
24
|
+
- CHANGELOG
|
25
|
+
- COPYING
|
26
|
+
files:
|
27
|
+
- COPYING
|
28
|
+
- CHANGELOG
|
29
|
+
- README.rdoc
|
30
|
+
- Rakefile
|
31
|
+
has_rdoc: true
|
32
|
+
homepage: http://sequel.rubyforge.org
|
33
|
+
post_install_message:
|
34
|
+
rdoc_options:
|
35
|
+
- --quiet
|
36
|
+
- --line-numbers
|
37
|
+
- --inline-source
|
38
|
+
- --title
|
39
|
+
- "Sequel: The Database Toolkit for Ruby"
|
40
|
+
- --main
|
41
|
+
- README.rdoc
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.8.4
|
49
|
+
version:
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: "0"
|
55
|
+
version:
|
56
|
+
requirements: []
|
57
|
+
|
58
|
+
rubyforge_project: sequel
|
59
|
+
rubygems_version: 1.2.0
|
60
|
+
signing_key:
|
61
|
+
specification_version: 2
|
62
|
+
summary: The Database Toolkit for Ruby
|
63
|
+
test_files: []
|
64
|
+
|