sinatra-activerecord 1.1.1 → 1.1.2
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/README.md +12 -5
- data/lib/sinatra/activerecord.rb +18 -1
- metadata +18 -21
data/README.md
CHANGED
@@ -29,10 +29,13 @@ Now specify the database in your `app.rb`
|
|
29
29
|
require 'sinatra'
|
30
30
|
require 'sinatra/activerecord'
|
31
31
|
|
32
|
-
set :database, '
|
32
|
+
set :database, 'sqlite3:///foo.db'
|
33
33
|
```
|
34
34
|
|
35
|
-
Note that
|
35
|
+
Note that the database URL here has **3** slashes. This is the difference from
|
36
|
+
<= 1.0.0 versions, where it was typed with 2 slashes.
|
37
|
+
|
38
|
+
Also note that in **modular** Sinatra applications (ones in which you explicitly
|
36
39
|
subclass `Sinatra::Base`), you will need to manually add the line:
|
37
40
|
|
38
41
|
```ruby
|
@@ -48,7 +51,7 @@ require './app'
|
|
48
51
|
|
49
52
|
In the Terminal test that it works:
|
50
53
|
|
51
|
-
```
|
54
|
+
```sh
|
52
55
|
$ rake -T
|
53
56
|
rake db:create_migration # create an ActiveRecord migration in ./db/migrate
|
54
57
|
rake db:migrate # migrate your database
|
@@ -56,7 +59,7 @@ rake db:migrate # migrate your database
|
|
56
59
|
|
57
60
|
Now you can create a migration:
|
58
61
|
|
59
|
-
```
|
62
|
+
```sh
|
60
63
|
$ rake db:create_migration NAME=create_users
|
61
64
|
```
|
62
65
|
|
@@ -78,7 +81,7 @@ end
|
|
78
81
|
|
79
82
|
After you've written the migration, migrate the database:
|
80
83
|
|
81
|
-
```
|
84
|
+
```sh
|
82
85
|
$ rake db:migrate
|
83
86
|
```
|
84
87
|
|
@@ -130,6 +133,10 @@ You can see the changelog
|
|
130
133
|
|
131
134
|
This gem was made in 2009 by Blake Mizerany, one of the authors of Sinatra.
|
132
135
|
|
136
|
+
## Social
|
137
|
+
|
138
|
+
You can follow me on Twitter, I'm [@m_janko](http://twitter.com/m_janko).
|
139
|
+
|
133
140
|
## License
|
134
141
|
|
135
142
|
[MIT](https://github.com/janko-m/sinatra-activerecord/blob/master/LICENSE)
|
data/lib/sinatra/activerecord.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'sinatra/base'
|
2
2
|
require 'active_record'
|
3
3
|
require 'logger'
|
4
|
+
require 'active_support/core_ext/string/strip'
|
4
5
|
|
5
6
|
module Sinatra
|
6
7
|
module ActiveRecordHelper
|
@@ -19,7 +20,7 @@ module Sinatra
|
|
19
20
|
def database
|
20
21
|
@database ||= begin
|
21
22
|
ActiveRecord::Base.logger = activerecord_logger
|
22
|
-
spec =
|
23
|
+
spec = resolve_spec(database_url)
|
23
24
|
ActiveRecord::Base.establish_connection(spec)
|
24
25
|
ActiveRecord::Base
|
25
26
|
end
|
@@ -37,6 +38,22 @@ module Sinatra
|
|
37
38
|
app.before { ActiveRecord::Base.verify_active_connections! }
|
38
39
|
app.after { ActiveRecord::Base.clear_active_connections! }
|
39
40
|
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def resolve_spec(database_url)
|
45
|
+
if database_url.is_a?(String)
|
46
|
+
if database_url =~ %r{^sqlite3?://[A-Za-z_-]+\.(db|sqlite3?)$}
|
47
|
+
warn <<-MESSAGE.strip_heredoc
|
48
|
+
It seems your database URL looks something like this: "sqlite3://<database_name>".
|
49
|
+
This doesn't work anymore, you need to use 3 slashes, like this: "sqlite3:///<database_name>".
|
50
|
+
MESSAGE
|
51
|
+
end
|
52
|
+
database_url.sub(/^sqlite:/, "sqlite3:")
|
53
|
+
else
|
54
|
+
database_url
|
55
|
+
end
|
56
|
+
end
|
40
57
|
end
|
41
58
|
|
42
59
|
register ActiveRecordExtension
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-activerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
@@ -44,48 +44,45 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '3.0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: rake
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: rspec
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '2.10'
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
77
|
+
version: '2.10'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: sqlite3
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
83
|
- - ! '>='
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
86
|
-
- - <
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '3'
|
85
|
+
version: '0'
|
89
86
|
type: :development
|
90
87
|
prerelease: false
|
91
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -93,10 +90,7 @@ dependencies:
|
|
93
90
|
requirements:
|
94
91
|
- - ! '>='
|
95
92
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
97
|
-
- - <
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: '3'
|
93
|
+
version: '0'
|
100
94
|
description: Extends Sinatra with ActiveRecord helpers.
|
101
95
|
email: janko.marohnic@gmail.com
|
102
96
|
executables: []
|
@@ -127,6 +121,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
121
|
- - ! '>='
|
128
122
|
- !ruby/object:Gem::Version
|
129
123
|
version: '0'
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
hash: -2180039102864061955
|
130
127
|
requirements: []
|
131
128
|
rubyforge_project:
|
132
129
|
rubygems_version: 1.8.23
|