wd_sinatra_sequel 0.0.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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +65 -0
- data/Rakefile +1 -0
- data/lib/wd_sinatra_sequel/db.rake +260 -0
- data/lib/wd_sinatra_sequel/version.rb +3 -0
- data/lib/wd_sinatra_sequel.rb +85 -0
- data/wd_sinatra_sequel.gemspec +23 -0
- metadata +81 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6a11c4dd4ad6e090b7e973a75aed1b3291ee5f4c
|
4
|
+
data.tar.gz: f2fbd979e35b83085d760ab34d06421212444261
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 53f9af3faa63a46792624b7020268e206759022330893dbc4d072d6ee7f89f909931c89eb3b3b4914f32581a282c2398c29b30bd52ad867da2cdc78e8fc01bad
|
7
|
+
data.tar.gz: 05d1475184bed030bb6279c221689862bc74a6b2ab36133c61dc0a65edab02328ed315ee503a8001236f03dffa959390dab9f89e2fdc7fe2597ec666945cc238
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Jack Chu
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# WdSinatraSequel
|
2
|
+
|
3
|
+
A Ruby gem to avoid reinventing the wheel every time you want to use
|
4
|
+
[Sequel](https://github.com/jeremyevans/sequel) in a
|
5
|
+
[WeaselDiesel](https://github.com/mattetti/Weasel-Diesel) app backed by
|
6
|
+
Sinatra ([wd_sinatra](https://github.com/mattetti/wd-sinatra)).
|
7
|
+
|
8
|
+
Use this gem to easily get connected to one or multiple databases and to
|
9
|
+
enjoy some of the common Sequel Rake tasks similar to those in Rails.
|
10
|
+
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
Add this line to your application's Gemfile:
|
15
|
+
|
16
|
+
gem 'wd_sinatra_sequel'
|
17
|
+
|
18
|
+
And then execute:
|
19
|
+
|
20
|
+
$ bundle
|
21
|
+
|
22
|
+
Or install it yourself as:
|
23
|
+
|
24
|
+
$ gem install wd_sinatra_sequel
|
25
|
+
|
26
|
+
|
27
|
+
Don't forget to set a gem dependency for the DB adapter you need.
|
28
|
+
For instance:
|
29
|
+
|
30
|
+
mysql2
|
31
|
+
|
32
|
+
|
33
|
+
## Usage
|
34
|
+
|
35
|
+
Add an Sequel `database.yml` file in your config folder and then require this
|
36
|
+
gem in your `app.rb` file and connect to the DB:
|
37
|
+
|
38
|
+
require 'wd_sinatra_sequel'
|
39
|
+
DB = WdSinatraSequel::DBConnector.set_db_connection
|
40
|
+
|
41
|
+
|
42
|
+
The DB settings can be accessed via:
|
43
|
+
|
44
|
+
DBConnector::DB_CONFIG[RACK_ENV]
|
45
|
+
|
46
|
+
## Rake tasks
|
47
|
+
|
48
|
+
A Rake task file is also provided so you can load Sequel specific
|
49
|
+
tasks. To do that, create a new rake file in your `lib/tasks` folder, load
|
50
|
+
`WDSinatra` and the rake task file:
|
51
|
+
|
52
|
+
```
|
53
|
+
$ echo "require 'wd_sinatra_sequel'
|
54
|
+
load WdSinatraSequel.task_path" > lib/tasks/db.rake
|
55
|
+
```
|
56
|
+
|
57
|
+
The tasks are very basic, feel free to send patches and improvements.
|
58
|
+
|
59
|
+
## Contributing
|
60
|
+
|
61
|
+
1. Fork it
|
62
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
63
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
64
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
65
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,260 @@
|
|
1
|
+
require 'wd_sinatra_sequel'
|
2
|
+
require 'pry'
|
3
|
+
|
4
|
+
db_namespace = namespace :db do
|
5
|
+
|
6
|
+
task :load_config => :setup_app do
|
7
|
+
require 'sequel'
|
8
|
+
@config = WdSinatraSequel::DBConnector.db_configuration
|
9
|
+
if @config['uri']
|
10
|
+
opts = Sequel.connect(@config['uri'], @config).opts
|
11
|
+
%w{adapter host port user password database}.each do |k|
|
12
|
+
@config[k] = opts[k.to_sym]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
@migrations_path = File.join(WDSinatra::AppLoader.root_path, 'db/migrate')
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Create the database from config/database.yml for the current RACK_ENV (use db:create:all to create all dbs in the config)'
|
19
|
+
task :create do
|
20
|
+
old_connect_env = ENV['DONT_CONNECT'] ? 'true' : nil
|
21
|
+
ENV['DONT_CONNECT'] = 'true'
|
22
|
+
Rake::Task["db:load_config"].invoke
|
23
|
+
create_database(@config)
|
24
|
+
ENV['DONT_CONNECT'] = old_connect_env
|
25
|
+
end
|
26
|
+
|
27
|
+
def create_database(config)
|
28
|
+
begin
|
29
|
+
if config['adapter'] =~ /sqlite/
|
30
|
+
if File.exist?(config['database'])
|
31
|
+
$stderr.puts "#{config['database']} already exists"
|
32
|
+
else
|
33
|
+
begin
|
34
|
+
# Create the SQLite database
|
35
|
+
Sequel.connect(config)
|
36
|
+
rescue Exception => e
|
37
|
+
$stderr.puts e, *(e.backtrace)
|
38
|
+
$stderr.puts "Couldn't create database for #{config.inspect}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
return # Skip the else clause of begin/rescue
|
42
|
+
else
|
43
|
+
Sequel.connect(config, test: true)
|
44
|
+
|
45
|
+
end
|
46
|
+
rescue
|
47
|
+
case config['adapter']
|
48
|
+
when /mysql/
|
49
|
+
if config['adapter'] =~ /jdbc/
|
50
|
+
error_class = Sequel::DatabaseConnectionError
|
51
|
+
else
|
52
|
+
error_class = config['adapter'] =~ /mysql2/ ? Mysql2::Error : Mysql::Error
|
53
|
+
end
|
54
|
+
access_denied_error = 1045
|
55
|
+
|
56
|
+
charset = ENV['CHARSET'] || 'utf8'
|
57
|
+
collation = ENV['COLLATION'] || 'utf8_unicode_ci'
|
58
|
+
|
59
|
+
begin
|
60
|
+
arguments = mysql_cli_args(config)
|
61
|
+
arguments << '-e'
|
62
|
+
arguments << "CREATE DATABASE #{config['database']} DEFAULT CHARACTER SET #{charset} DEFAULT COLLATE #{collation}"
|
63
|
+
|
64
|
+
system('mysql',*arguments)
|
65
|
+
Sequel.connect(config)
|
66
|
+
rescue error_class => sqlerr
|
67
|
+
if sqlerr.errno == access_denied_error
|
68
|
+
print "#{sqlerr.error}. \nPlease provide the root password for your mysql installation\n>"
|
69
|
+
root_password = $stdin.gets.strip
|
70
|
+
grant_statement = "GRANT ALL PRIVILEGES ON #{config['database']}.* " \
|
71
|
+
"TO '#{config['user']}'@'localhost' " \
|
72
|
+
"IDENTIFIED BY '#{config['password']}' WITH GRANT OPTION;"
|
73
|
+
system('mysql', '-u', 'root', '--password', root_password, '-h', config['host'], '-e', grant_statement)
|
74
|
+
system('mysql',*arguments)
|
75
|
+
Sequel.connect(config)
|
76
|
+
else
|
77
|
+
$stderr.puts sqlerr.error
|
78
|
+
$stderr.puts "Couldn't create database for #{config.inspect}, charset: #{config['charset'] || charset}, collation: #{config['collation'] || collation}"
|
79
|
+
$stderr.puts "(if you set the charset manually, make sure you have a matching collation)" if config['charset']
|
80
|
+
end
|
81
|
+
end
|
82
|
+
when /postgres/
|
83
|
+
encoding = config['encoding'] || ENV['CHARSET'] || 'utf8'
|
84
|
+
begin
|
85
|
+
system("createdb", "-E", encoding, "-h", config['host'], "-U", config['user'], config['database'])
|
86
|
+
Sequel.connect(config)
|
87
|
+
rescue Exception => e
|
88
|
+
$stderr.puts e, *(e.backtrace)
|
89
|
+
$stderr.puts "Couldn't create database for #{config.inspect}"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
else
|
93
|
+
# Bug with 1.9.2 Calling return within begin still executes else
|
94
|
+
$stderr.puts "#{config['database']} already exists" unless config['adapter'] =~ /sqlite/
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
desc 'Drops the database for the current RACK_ENV (use db:drop:all to drop all databases)'
|
99
|
+
task :drop do
|
100
|
+
Rake::Task["db:load_config"].invoke
|
101
|
+
begin
|
102
|
+
drop_database(@config)
|
103
|
+
rescue Exception => e
|
104
|
+
$stderr.puts "Couldn't drop #{@config['database']} : #{e.inspect}"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def local_database?(config, &block)
|
109
|
+
if config['host'].in?(['127.0.0.1', 'localhost']) || config['host'].blank?
|
110
|
+
yield
|
111
|
+
else
|
112
|
+
$stderr.puts "This task only modifies local databases. #{config['database']} is on a remote host."
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
desc "Migrate the database"
|
117
|
+
task :migrate do
|
118
|
+
Rake::Task[:environment].invoke
|
119
|
+
Rake::Task["db:load_config"].invoke
|
120
|
+
Sequel.extension :migration
|
121
|
+
db = Sequel.connect(@config)
|
122
|
+
Sequel::Migrator.run(db, @migrations_path)
|
123
|
+
db_namespace["schema:dump"].invoke
|
124
|
+
end
|
125
|
+
|
126
|
+
namespace :migrate do
|
127
|
+
# desc 'Rollbacks the database one migration and re migrate up (options: VERSION=x).'
|
128
|
+
task :redo => [:environment, :load_config] do
|
129
|
+
if ENV['VERSION']
|
130
|
+
db_namespace['migrate:to'].invoke
|
131
|
+
else
|
132
|
+
db_namespace['rollback'].invoke
|
133
|
+
end
|
134
|
+
db_namespace['migrate'].invoke
|
135
|
+
end
|
136
|
+
|
137
|
+
# desc 'Resets your database using your migrations for the current environment'
|
138
|
+
task :reset => ['db:drop', 'db:create', 'db:migrate']
|
139
|
+
|
140
|
+
# desc 'Runs the "to" for a given migration VERSION.'
|
141
|
+
task :to, [:version] => [:environment, :load_config] do |t, args|
|
142
|
+
version = (args[:version] || ENV['VERSION']).to_s.strip
|
143
|
+
raise 'VERSION is required' unless version
|
144
|
+
Sequel.extension :migration
|
145
|
+
db = Sequel.connect(@config)
|
146
|
+
Sequel::Migrator.run(db, @migrations_path, :target => version)
|
147
|
+
db_namespace['schema:dump'].invoke
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
desc 'Rolls the schema back (erase all data).'
|
152
|
+
task :rollback => [:environment, :load_config] do
|
153
|
+
Sequel.extension :migration
|
154
|
+
db = Sequel.connect(@config)
|
155
|
+
Sequel::Migrator.run(db, @migrations_path, :target => 0)
|
156
|
+
db_namespace['schema:dump'].invoke
|
157
|
+
end
|
158
|
+
|
159
|
+
# desc 'Drops and recreates the database from db/schema.rb for the current environment and loads the seeds.'
|
160
|
+
task :reset => [ 'db:drop', 'db:setup' ]
|
161
|
+
|
162
|
+
# desc "Raises an error if there are pending migrations"
|
163
|
+
task :abort_if_pending_migrations => [:environment, :setup_app, :load_config] do
|
164
|
+
if defined? Sequel
|
165
|
+
Sequel.extension :migration
|
166
|
+
db = Sequel.connect(@config)
|
167
|
+
|
168
|
+
if Sequel::Migrator.is_current?(db, @migrations_path)
|
169
|
+
puts "You have pending migrations."
|
170
|
+
abort %{Run "rake db:migrate" to update your database then try again.}
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
desc 'Create the database, and initialize with the seed data (use db:reset to also drop the db first)'
|
176
|
+
task :setup => [ 'db:create', 'db:seed' ]
|
177
|
+
|
178
|
+
desc 'Load the seed data from db/seeds.rb'
|
179
|
+
task :seed do
|
180
|
+
old_no_redis = ENV['NO_REDIS'] ? 'true' : nil
|
181
|
+
ENV['NO_REDIS'] = 'true'
|
182
|
+
Rake::Task[:environment].invoke
|
183
|
+
Rake::Task["db:abort_if_pending_migrations"].invoke
|
184
|
+
seed = File.join(WDSinatra::AppLoader.root_path, "db", "seed.rb")
|
185
|
+
if File.exist?(seed)
|
186
|
+
puts "seeding #{seed}"
|
187
|
+
load seed
|
188
|
+
else
|
189
|
+
puts "Seed file: #{seed} is missing"
|
190
|
+
end
|
191
|
+
ENV['NO_REDIS'] = old_no_redis
|
192
|
+
end
|
193
|
+
|
194
|
+
namespace :schema do
|
195
|
+
desc 'Create a db/schema.rb file that can be portably used against any DB supported by AR'
|
196
|
+
task :dump => :load_config do
|
197
|
+
Sequel.extension :schema_dumper
|
198
|
+
db = Sequel.connect(@config)
|
199
|
+
filename = ENV['SCHEMA'] || "#{WDSinatra::AppLoader.root_path}/db/schema.rb"
|
200
|
+
File.open(filename, "w:utf-8") do |file|
|
201
|
+
file.write(db.dump_schema_migration)
|
202
|
+
end
|
203
|
+
db_namespace['schema:dump'].reenable
|
204
|
+
end
|
205
|
+
|
206
|
+
desc 'Load a schema.rb file into the database'
|
207
|
+
task :load => [:environment, :load_config] do
|
208
|
+
Sequel.extension :schema_dumper
|
209
|
+
Sequel.extension :migration
|
210
|
+
db = Sequel.connect(@config)
|
211
|
+
file = ENV['SCHEMA'] || "#{WDSinatra::AppLoader.root_path}/db/schema.rb"
|
212
|
+
if File.exists?(file)
|
213
|
+
load(file)
|
214
|
+
else
|
215
|
+
abort %{#{file} doesn't exist yet. Run "rake db:migrate" to create it then try again. If you do not intend to use a database, you should instead alter #{WDSinatra::AppLoader.root_path}/config/application.rb to limit the frameworks that will be loaded}
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
namespace :test do
|
221
|
+
# desc "Empty the test database"
|
222
|
+
task :purge => :setup_app do
|
223
|
+
ENV['RACK_ENV'] = 'test'
|
224
|
+
Rake::Task["db:load_config"].invoke
|
225
|
+
drop_database(@config)
|
226
|
+
create_database(@config)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
def mysql_cli_args(config)
|
232
|
+
arguments = ["--user=#{config['user']}"]
|
233
|
+
arguments << "--password=#{config['password']}" if config['password']
|
234
|
+
|
235
|
+
unless %w[127.0.0.1 localhost].include?(config['host'])
|
236
|
+
arguments << "--host=#{config['host']}"
|
237
|
+
end
|
238
|
+
arguments
|
239
|
+
end
|
240
|
+
|
241
|
+
def drop_database(config)
|
242
|
+
case config['adapter']
|
243
|
+
when /mysql/
|
244
|
+
arguments = mysql_cli_args(config)
|
245
|
+
arguments << '-e'
|
246
|
+
arguments << "DROP DATABASE IF EXISTS #{config['database']}"
|
247
|
+
|
248
|
+
system('mysql',*arguments)
|
249
|
+
when /sqlite/
|
250
|
+
require 'pathname'
|
251
|
+
path = Pathname.new(config['database'])
|
252
|
+
file = path.absolute? ? path.to_s : File.join(WDSinatra::AppLoader.root_path, path)
|
253
|
+
|
254
|
+
FileUtils.rm(file) if File.exist?(file)
|
255
|
+
when /postgres/
|
256
|
+
system("dropdb", "-h", config['host'], "-U", config['user'], config['database'])
|
257
|
+
else
|
258
|
+
raise "Task not supported by '#{config['adapter']}'"
|
259
|
+
end
|
260
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require "wd_sinatra_sequel/version"
|
2
|
+
require 'sequel'
|
3
|
+
|
4
|
+
# Set the default value, feel free to overwrite
|
5
|
+
Sequel.default_timezone = :utc
|
6
|
+
|
7
|
+
|
8
|
+
module WdSinatraSequel
|
9
|
+
|
10
|
+
# Path to the rake task file so it can be loaded as such:
|
11
|
+
# load WdSinatraSequel.task_path
|
12
|
+
# (Note that the app loaded should have been started using something like:
|
13
|
+
# WDSinatra::AppLoader.console(RAKE_APP_ROOT)
|
14
|
+
# before loading this rake task.)
|
15
|
+
def self.task_path
|
16
|
+
File.join(File.expand_path(File.dirname(__FILE__), ".."), "wd_sinatra_sequel", "db.rake")
|
17
|
+
end
|
18
|
+
|
19
|
+
##### DB Connection ########
|
20
|
+
module DBConnector
|
21
|
+
DB_CONFIG = YAML.load_file(File.join(WDSinatra::AppLoader.root_path, "config", "database.yml"))
|
22
|
+
|
23
|
+
module_function
|
24
|
+
|
25
|
+
def set_db_connection(env=RACK_ENV)
|
26
|
+
# Set the Sequel logger
|
27
|
+
loggers = []
|
28
|
+
if Object.const_defined?(:LOGGER)
|
29
|
+
loggers << LOGGER
|
30
|
+
else
|
31
|
+
loggers << Logger.new($stdout)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Establish the DB connection
|
35
|
+
db_file = File.join(WDSinatra::AppLoader.root_path, "config", "database.yml")
|
36
|
+
if File.exist?(db_file)
|
37
|
+
hash_settings = YAML.load_file(db_file)
|
38
|
+
if hash_settings && hash_settings[env]
|
39
|
+
@db_configurations = hash_settings
|
40
|
+
@db_configuration = @db_configurations[env]
|
41
|
+
# add loggers
|
42
|
+
@db_configuration['loggers'] ||= []
|
43
|
+
@db_configuration['loggers'].concat(loggers)
|
44
|
+
# overwrite DB name by using an ENV variable
|
45
|
+
if ENV['FORCED_DB_NAME']
|
46
|
+
print "Database name overwritten to be #{ENV['FORCED_DB_NAME']}\n"
|
47
|
+
@db_configurations[env]['database'] = @db_configuration['database'] = ENV['FORCED_DB_NAME']
|
48
|
+
end
|
49
|
+
connect_to_db unless ENV['DONT_CONNECT']
|
50
|
+
else
|
51
|
+
raise "#{db_file} doesn't have an entry for the #{env} environment"
|
52
|
+
end
|
53
|
+
else
|
54
|
+
raise "#{db_file} file missing, can't connect to the DB"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def db_configuration(env=RACK_ENV)
|
59
|
+
old_connect_status = ENV['DONT_CONNECT']
|
60
|
+
set_db_connection(env)
|
61
|
+
ENV['DONT_CONNECT'] = old_connect_status
|
62
|
+
@db_configuration
|
63
|
+
end
|
64
|
+
|
65
|
+
def db_configurations
|
66
|
+
db_configuration unless @db_configurations
|
67
|
+
@db_configurations
|
68
|
+
end
|
69
|
+
|
70
|
+
def connect_to_db
|
71
|
+
if @db_configuration
|
72
|
+
if @db_configuration.has_key?('uri')
|
73
|
+
uri = @db_configuration['uri']
|
74
|
+
config_without_uri = @db_configuration.clone
|
75
|
+
config_without_uri.delete('uri')
|
76
|
+
connection = Sequel.connect(uri, config_without_uri)
|
77
|
+
else
|
78
|
+
connection = Sequel.connect(@db_configuration)
|
79
|
+
end
|
80
|
+
else
|
81
|
+
raise "Can't connect without the config previously set"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'wd_sinatra_sequel/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "wd_sinatra_sequel"
|
8
|
+
gem.version = WdSinatraSequel::VERSION
|
9
|
+
gem.authors = ["Jack Chu"]
|
10
|
+
gem.email = ["kamuigt@gmail.com"]
|
11
|
+
gem.description = %q{Basics to use Sequel with WD Sinatra.}
|
12
|
+
gem.summary = %q{Provides a way to get started with Sequel and WeaselDiesel on Sinatra.}
|
13
|
+
gem.homepage = ""
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_development_dependency "pry"
|
21
|
+
|
22
|
+
gem.add_dependency "sequel"
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wd_sinatra_sequel
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jack Chu
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-04-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pry
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sequel
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Basics to use Sequel with WD Sinatra.
|
42
|
+
email:
|
43
|
+
- kamuigt@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- Gemfile
|
50
|
+
- LICENSE.txt
|
51
|
+
- README.md
|
52
|
+
- Rakefile
|
53
|
+
- lib/wd_sinatra_sequel.rb
|
54
|
+
- lib/wd_sinatra_sequel/db.rake
|
55
|
+
- lib/wd_sinatra_sequel/version.rb
|
56
|
+
- wd_sinatra_sequel.gemspec
|
57
|
+
homepage: ''
|
58
|
+
licenses: []
|
59
|
+
metadata: {}
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
requirements: []
|
75
|
+
rubyforge_project:
|
76
|
+
rubygems_version: 2.0.3
|
77
|
+
signing_key:
|
78
|
+
specification_version: 4
|
79
|
+
summary: Provides a way to get started with Sequel and WeaselDiesel on Sinatra.
|
80
|
+
test_files: []
|
81
|
+
has_rdoc:
|