sinatra-activerecord 1.1.0 → 1.1.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.
data/README.md CHANGED
@@ -21,14 +21,32 @@ them manually):
21
21
  - `mysql` (MySQL)
22
22
  - `pg` (PostgreSQL)
23
23
 
24
- Then require the rake tasks and your app in your `Rakefile`:
24
+ Now specify the database in your `app.rb`
25
+ (let's assume you chose the `sqlite3` adapter):
26
+
27
+ ```ruby
28
+ # app.rb
29
+ require 'sinatra'
30
+ require 'sinatra/activerecord'
31
+
32
+ set :database, 'sqlite:///foo.db'
33
+ ```
34
+
35
+ Note that in **modular** Sinatra applications (ones in which you explicitly
36
+ subclass `Sinatra::Base`), you will need to manually add the line:
37
+
38
+ ```ruby
39
+ register Sinatra::ActiveRecordExtension
40
+ ```
41
+
42
+ Now require the rake tasks and your app in your `Rakefile`:
25
43
 
26
44
  ```ruby
27
45
  require 'sinatra/activerecord/rake'
28
46
  require './app'
29
47
  ```
30
48
 
31
- In the terminal, test that it works:
49
+ In the Terminal test that it works:
32
50
 
33
51
  ```
34
52
  $ rake -T
@@ -73,24 +91,10 @@ end
73
91
  ```
74
92
 
75
93
  You can put the models anywhere. It's probably best to put them in an
76
- external file, and require them in your `app.rb` aftewards. Usually
94
+ external file, and require them in your `app.rb`. Usually
77
95
  models in Sinatra aren't that complex, so you can put them all in one
78
96
  file, for example `./db/models.rb`.
79
97
 
80
- Now just establish the database connection in your `app.rb`
81
- (let's assume you chose the `sqlite3` adapter), and
82
- require the models if necessary:
83
-
84
- ```ruby
85
- # app.rb
86
- require 'sinatra'
87
- require 'sinatra/activerecord'
88
-
89
- require './db/models'
90
-
91
- set :database, 'sqlite:///foo.db'
92
- ```
93
-
94
98
  Now everything just works:
95
99
 
96
100
  ```ruby
@@ -12,14 +12,15 @@ module Sinatra
12
12
  module ActiveRecordExtension
13
13
  def database=(url)
14
14
  set :database_url, url
15
+ @database = nil
15
16
  database
16
17
  end
17
18
 
18
19
  def database
19
20
  @database ||= begin
20
21
  ActiveRecord::Base.logger = activerecord_logger
21
- url = database_url.sub(/^sqlite/, "sqlite3") rescue nil
22
- ActiveRecord::Base.establish_connection(url)
22
+ spec = database_url.is_a?(String) ? database_url.sub(/^sqlite:/, "sqlite3:") : database_url
23
+ ActiveRecord::Base.establish_connection(spec)
23
24
  ActiveRecord::Base
24
25
  end
25
26
  end
@@ -1 +1,59 @@
1
- load 'sinatra/activerecord/rake_tasks.rake'
1
+ require 'active_record'
2
+ require 'active_support/core_ext/string/strip'
3
+ require 'fileutils'
4
+
5
+ module Sinatra
6
+ module ActiveRecordTasks
7
+ extend self
8
+
9
+ def create_migration(migration_name, version = nil)
10
+ raise "No NAME specified. Example usage: `rake db:create_migration NAME=create_users`" if migration_name.nil?
11
+
12
+ migration_number = version || Time.now.utc.strftime("%Y%m%d%H%M%S")
13
+ migration_file = File.join(migrations_dir, "#{migration_number}_#{migration_name}.rb")
14
+ migration_class = migration_name.split("_").map(&:capitalize).join
15
+
16
+ FileUtils.mkdir_p(migrations_dir)
17
+ File.open(migration_file, 'w') do |file|
18
+ file.write <<-MIGRATION.strip_heredoc
19
+ class #{migration_class} < ActiveRecord::Migration
20
+ def up
21
+ end
22
+
23
+ def down
24
+ end
25
+ end
26
+ MIGRATION
27
+ end
28
+ end
29
+
30
+ def migrate(version = nil)
31
+ silence_activerecord do
32
+ migration_version = version ? version.to_i : version
33
+ ActiveRecord::Migrator.migrate(migrations_dir, migration_version)
34
+ end
35
+ end
36
+
37
+ def rollback(step = nil)
38
+ silence_activerecord do
39
+ migration_step = step ? step.to_i : 1
40
+ ActiveRecord::Migrator.rollback(migrations_dir, migration_step)
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def migrations_dir
47
+ "db/migrate"
48
+ end
49
+
50
+ def silence_activerecord(&block)
51
+ old_logger = ActiveRecord::Base.logger
52
+ ActiveRecord::Base.logger = nil
53
+ yield if block_given?
54
+ ActiveRecord::Base.logger = old_logger
55
+ end
56
+ end
57
+ end
58
+
59
+ load 'sinatra/activerecord/tasks.rake'
@@ -0,0 +1,18 @@
1
+ require 'rake'
2
+
3
+ namespace :db do
4
+ desc "create an ActiveRecord migration in ./db/migrate"
5
+ task :create_migration do
6
+ Sinatra::ActiveRecordTasks.create_migration(ENV["NAME"], ENV["VERSION"])
7
+ end
8
+
9
+ desc "migrate the database (use version with VERSION=n)"
10
+ task :migrate do
11
+ Sinatra::ActiveRecordTasks.migrate(ENV["VERSION"])
12
+ end
13
+
14
+ desc "roll back the migration (use steps with STEP=n)"
15
+ task :rollback do
16
+ Sinatra::ActiveRecordTasks.rollback(ENV["STEP"])
17
+ end
18
+ end
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.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-29 00:00:00.000000000 Z
12
+ date: 2012-08-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &70208111245800 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '1.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70208111245800
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: activerecord
27
- requirement: &70208111244360 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '3.0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70208111244360
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: bundler
38
- requirement: &70208111243500 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '1.0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70208111243500
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rake
49
- requirement: &70208111242040 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0.9'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70208111242040
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '0.9'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: rspec
60
- requirement: &70208111240560 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -68,7 +88,15 @@ dependencies:
68
88
  version: '3'
69
89
  type: :development
70
90
  prerelease: false
71
- version_requirements: *70208111240560
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '2.10'
97
+ - - <
98
+ - !ruby/object:Gem::Version
99
+ version: '3'
72
100
  description: Extends Sinatra with ActiveRecord helpers.
73
101
  email: janko.marohnic@gmail.com
74
102
  executables: []
@@ -76,7 +104,7 @@ extensions: []
76
104
  extra_rdoc_files: []
77
105
  files:
78
106
  - lib/sinatra/activerecord/rake.rb
79
- - lib/sinatra/activerecord/rake_tasks.rake
107
+ - lib/sinatra/activerecord/tasks.rake
80
108
  - lib/sinatra/activerecord.rb
81
109
  - README.md
82
110
  - LICENSE
@@ -99,12 +127,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
127
  - - ! '>='
100
128
  - !ruby/object:Gem::Version
101
129
  version: '0'
102
- segments:
103
- - 0
104
- hash: 2210364565815214899
105
130
  requirements: []
106
131
  rubyforge_project:
107
- rubygems_version: 1.8.11
132
+ rubygems_version: 1.8.23
108
133
  signing_key:
109
134
  specification_version: 3
110
135
  summary: Extends Sinatra with ActiveRecord helpers.
@@ -1,44 +0,0 @@
1
- require 'active_record'
2
- require 'active_support/core_ext/string/strip'
3
- require 'fileutils'
4
-
5
- namespace :db do
6
- desc "create an ActiveRecord migration in ./db/migrate"
7
- task :create_migration do
8
- name = ENV['NAME']
9
- if name.nil?
10
- raise "No NAME specified. Example usage: `rake db:create_migration NAME=create_users`"
11
- end
12
-
13
- migrations_dir = File.join("db", "migrate")
14
- version = ENV["VERSION"] || Time.now.utc.strftime("%Y%m%d%H%M%S")
15
- filename = "#{version}_#{name}.rb"
16
- migration_class = name.split("_").map(&:capitalize).join
17
-
18
- FileUtils.mkdir_p(migrations_dir)
19
-
20
- File.open(File.join(migrations_dir, filename), 'w') do |file|
21
- file.write <<-MIGRATION.strip_heredoc
22
- class #{migration_class} < ActiveRecord::Migration
23
- def up
24
- end
25
-
26
- def down
27
- end
28
- end
29
- MIGRATION
30
- end
31
- end
32
-
33
- desc "migrate the database (use version with VERSION=n)"
34
- task :migrate do
35
- version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
36
- ActiveRecord::Migrator.migrate('db/migrate', version)
37
- end
38
-
39
- desc "rolls back the migration (use steps with STEP=n)"
40
- task :rollback do
41
- step = ENV["STEP"] ? ENV["STEP"].to_i : 1
42
- ActiveRecord::Migrator.rollback('db/migrate', step)
43
- end
44
- end