sinatra-rider 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c503098ce34a4437ca8808342f6c34cf9c7025a0
4
- data.tar.gz: d5eb30b067e8efe855112401ed80065b4aa3f807
3
+ metadata.gz: 71ac1c92659a2efce49e30a2e356e742f823f106
4
+ data.tar.gz: 6201ac038f483842bdb219fa3f5b6c225fb2113a
5
5
  SHA512:
6
- metadata.gz: 5d1bdc2b3947aa0383f438887150b7360095e7345867418456087dc0bb17e8391d02c16a77049967372275e6040a39138a4ff9a98f8c1fc1cc0ea52a9fe88e87
7
- data.tar.gz: 62b13d210df49ee04123ddc683173113fe97d6522964c34f483a1bf09f39de5e7d5ac912eee245132a42ee37874bd73905eb6e9cdef10123beb77197389584c5
6
+ metadata.gz: 711abc6e27b71d718ce66513153f161e3a7fbcd854859ccb608099f255b33d72d1db59804f8acf3a073151a5dba2347b68915e7f165356db6658e81cf5250f53
7
+ data.tar.gz: bfe79f4d9bd1262590a7e58d2d09d7a47c964a2e249db71852343cbc4fbef7e8e3ee1d2dcd45dddc4e9b828cb9ae366e313846b4fb1c56b19b33a8d343867e22
data/README.md CHANGED
@@ -10,7 +10,7 @@ All the nice extras Sinatra likes to have when he's on the road.
10
10
  - Dotenv
11
11
  - Better Errors
12
12
  - Autoloading `app` and `lib` directories
13
- - ~One dozen blue M&Ms~
13
+ - ~~One dozen blue M&Ms~~
14
14
 
15
15
  ## Installation
16
16
 
@@ -22,13 +22,12 @@ gem 'sinatra-rider'
22
22
 
23
23
  Then require it at the top of your server file and register the rider in Sinatra.
24
24
 
25
- ```
25
+ ```ruby
26
26
  require 'sinatra/rider'
27
27
  class Server < Sinatra::Base
28
28
  register Sinatra::Rider
29
29
 
30
30
  get '/' do
31
- authorize!
32
31
  erb :index
33
32
  end
34
33
  end
@@ -36,8 +35,6 @@ end
36
35
  run Server
37
36
  ```
38
37
 
39
- That's it!
40
-
41
38
  ## Usage
42
39
 
43
40
  `Sinatra::Rider` provides a quite a few small conveniences.
@@ -54,7 +51,7 @@ Warden is used for authentication. `Sinatra::Rider` sets up Sinatra with `/login
54
51
 
55
52
  You can require authentication for an endpoint by including `authorize!` in sinatra's endpoint block
56
53
 
57
- ```
54
+ ```ruby
58
55
  get '/' do
59
56
  authorize!
60
57
  erb :index
@@ -67,11 +64,13 @@ end
67
64
 
68
65
  Sass is handled by Sprockets. `Sinatra::Rider` looks for any assets in `assets/stylesheets` and `assets/javascripts` and compiles them as requested.
69
66
 
70
- ```
67
+ ```scss
71
68
  # assets/stylesheets/application.scss
72
69
  //= require_tree ./vendor
73
70
  //= require base
71
+ ```
74
72
 
73
+ ```html
75
74
  # views/layout.erb
76
75
  <!DOCTYPE html>
77
76
  <html>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'sinatra/rider/command'
3
+ Sinatra::Rider::Command.start(ARGV)
@@ -1,3 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'rake'
3
4
  gem 'sinatra-rider'
@@ -0,0 +1,101 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ activemodel (4.2.5)
5
+ activesupport (= 4.2.5)
6
+ builder (~> 3.1)
7
+ activerecord (4.2.5)
8
+ activemodel (= 4.2.5)
9
+ activesupport (= 4.2.5)
10
+ arel (~> 6.0)
11
+ activesupport (4.2.5)
12
+ i18n (~> 0.7)
13
+ json (~> 1.7, >= 1.7.7)
14
+ minitest (~> 5.1)
15
+ thread_safe (~> 0.3, >= 0.3.4)
16
+ tzinfo (~> 1.1)
17
+ arel (6.0.4)
18
+ backports (3.6.8)
19
+ better_errors (2.1.1)
20
+ coderay (>= 1.0.0)
21
+ erubis (>= 2.6.6)
22
+ rack (>= 0.9.0)
23
+ binding_of_caller (0.7.2)
24
+ debug_inspector (>= 0.0.1)
25
+ builder (3.2.3)
26
+ coderay (1.1.1)
27
+ concurrent-ruby (1.0.4)
28
+ daemons (1.2.4)
29
+ debug_inspector (0.0.2)
30
+ dotenv (2.2.0)
31
+ erubis (2.7.0)
32
+ eventmachine (1.2.2)
33
+ execjs (2.7.0)
34
+ i18n (0.8.0)
35
+ json (1.8.6)
36
+ minitest (5.10.1)
37
+ multi_json (1.12.1)
38
+ pg (0.19.0)
39
+ rack (1.6.5)
40
+ rack-protection (1.5.3)
41
+ rack
42
+ rack-test (0.6.3)
43
+ rack (>= 1.0)
44
+ rake (12.0.0)
45
+ sass (3.4.23)
46
+ sinatra (1.4.8)
47
+ rack (~> 1.5)
48
+ rack-protection (~> 1.4)
49
+ tilt (>= 1.3, < 3)
50
+ sinatra-activerecord (2.0.12)
51
+ activerecord (>= 3.2)
52
+ sinatra (>= 1.0)
53
+ sinatra-contrib (1.4.7)
54
+ backports (>= 2.0)
55
+ multi_json
56
+ rack-protection
57
+ rack-test
58
+ sinatra (~> 1.4.0)
59
+ tilt (>= 1.3, < 3)
60
+ sinatra-rider (0.1.0)
61
+ activerecord (= 4.2.5)
62
+ better_errors
63
+ binding_of_caller
64
+ dotenv
65
+ pg
66
+ sass
67
+ sinatra
68
+ sinatra-activerecord
69
+ sinatra-contrib
70
+ sinatra_warden
71
+ sprockets
72
+ thin
73
+ uglifier
74
+ sinatra_warden (1.0.0)
75
+ sinatra (~> 1.4.6)
76
+ warden (~> 1.2.3)
77
+ sprockets (3.7.1)
78
+ concurrent-ruby (~> 1.0)
79
+ rack (> 1, < 3)
80
+ thin (1.7.0)
81
+ daemons (~> 1.0, >= 1.0.9)
82
+ eventmachine (~> 1.0, >= 1.0.4)
83
+ rack (>= 1, < 3)
84
+ thread_safe (0.3.5)
85
+ tilt (2.0.6)
86
+ tzinfo (1.2.2)
87
+ thread_safe (~> 0.1)
88
+ uglifier (3.0.4)
89
+ execjs (>= 0.3.0, < 3)
90
+ warden (1.2.7)
91
+ rack (>= 1.0)
92
+
93
+ PLATFORMS
94
+ ruby
95
+
96
+ DEPENDENCIES
97
+ rake
98
+ sinatra-rider
99
+
100
+ BUNDLED WITH
101
+ 1.13.7
@@ -0,0 +1,17 @@
1
+ To get up and running:
2
+
3
+ ```
4
+ bundle exec rake db:create db:migrate db:seed
5
+ bundle exec rackup config.ru
6
+ ```
7
+
8
+ Then visit http://localhost:9292
9
+
10
+ You should see a login form. You can log in with:
11
+
12
+ ```
13
+ username: admin
14
+ password: hunter1
15
+ ```
16
+
17
+ Have fun!
@@ -0,0 +1 @@
1
+ require 'sinatra/rider/rake'
@@ -0,0 +1,15 @@
1
+ default: &default
2
+ adapter: postgresql
3
+ encoding: unicode
4
+ pool: 5
5
+
6
+ development:
7
+ <<: *default
8
+ database: myapp_development
9
+
10
+ test:
11
+ <<: *default
12
+ database: myapp_test
13
+
14
+ production:
15
+ url: <%= ENV['DATABASE_URL'] %>
@@ -0,0 +1,11 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :users do |t|
4
+ t.string :name
5
+ t.string :username, null: false
6
+ t.string :encrypted_password, null: false
7
+ t.timestamps null: false
8
+ end
9
+ add_index :users, :username
10
+ end
11
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended that you check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(version: 1) do
15
+
16
+ # These are extensions that must be enabled in order to support this database
17
+ enable_extension "plpgsql"
18
+
19
+ create_table "users", force: :cascade do |t|
20
+ t.string "name"
21
+ t.string "username", null: false
22
+ t.string "encrypted_password", null: false
23
+ t.datetime "created_at", null: false
24
+ t.datetime "updated_at", null: false
25
+ end
26
+
27
+ add_index "users", ["username"], name: "index_users_on_username", using: :btree
28
+
29
+ end
@@ -0,0 +1,3 @@
1
+ require_relative '../app/user'
2
+
3
+ User.signup(name: 'Matt', username: 'admin', password: 'hunter1')
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ require 'bundler/setup'
3
+
4
+ require 'thor'
5
+ require 'sinatra/rider/command'
6
+ Sinatra::Rider::Command.start(ARGV)
@@ -14,6 +14,8 @@ require 'sinatra/rider/version'
14
14
 
15
15
  module Sinatra
16
16
  module Rider
17
+ autoload :User, 'sinatra/rider/user'
18
+
17
19
  def self.registered(app)
18
20
  app.set :database_file, File.join(app.root, "config/database.yml").to_s
19
21
 
@@ -10,6 +10,7 @@ module Sinatra
10
10
  app.set :pipeline, Sprockets::Environment.new
11
11
 
12
12
  app.pipeline.append_path "assets/stylesheets"
13
+ app.pipeline.append_path "assets/javascripts"
13
14
  app.pipeline.js_compressor = :uglify
14
15
  app.pipeline.css_compressor = :scss
15
16
 
@@ -3,7 +3,10 @@ require 'warden'
3
3
  require 'sinatra_warden'
4
4
 
5
5
  Warden::Manager.serialize_into_session{|user| user.id }
6
- Warden::Manager.serialize_from_session{|id| User.find(id) }
6
+ Warden::Manager.serialize_from_session do |id|
7
+ auth_class = defined?(User) ? User : Sinatra::Rider::User
8
+ auth_class.find(id)
9
+ end
7
10
 
8
11
  Warden::Strategies.add(:password) do
9
12
  def valid?
@@ -11,16 +14,24 @@ Warden::Strategies.add(:password) do
11
14
  end
12
15
 
13
16
  def authenticate!
14
- auth = User.authenticate(params["username"], params["password"])
17
+ auth_class = defined?(User) ? User : Sinatra::Rider::User
18
+ auth = auth_class.authenticate(params["username"], params["password"])
15
19
  auth.nil? ? fail!("Could not log in") : success!(auth)
16
20
  end
17
21
  end
18
22
 
19
23
  module Sinatra
20
24
  module Rider
25
+ module AuthHelpers
26
+ def signed_in?
27
+ !current_user.nil?
28
+ end
29
+ end
30
+
21
31
  module Authentication
22
32
  def self.registered(app)
23
33
  app.register Sinatra::Warden
34
+ app.helpers Sinatra::Rider::AuthHelpers
24
35
  app.use Rack::Session::Cookie, secret: ENV['SESSION_SECRET'] || "I'm not a businessman. I'm a business, man."
25
36
  app.use ::Warden::Manager do |manager|
26
37
  manager.default_strategies :password
@@ -31,6 +42,18 @@ module Sinatra
31
42
  app.set :auth_success_path, '/'
32
43
  app.set :auth_failure_path, '/login'
33
44
 
45
+ app.get '/signup' do
46
+ erb :signup
47
+ end
48
+
49
+ app.post '/signup' do
50
+ auth_class = defined?(User) ? User : Sinatra::Rider::User
51
+ auth_class.signup(params)
52
+
53
+ env['warden'].authenticate!
54
+ redirect '/'
55
+ end
56
+
34
57
  app.get '/login' do
35
58
  erb :login
36
59
  end
@@ -0,0 +1,64 @@
1
+ require 'thor'
2
+
3
+ module Sinatra
4
+ module Rider
5
+ class Generator < Thor::Group
6
+ include Thor::Actions
7
+
8
+ argument :path
9
+ def new
10
+ # generate application
11
+ end
12
+
13
+ def prepare_dokku
14
+ create_file("#{path}/CHECKS") { "/ #{path.capitalize}\n" }
15
+ create_file("#{path}/DOKKU_SCALE") { "web=1\n" }
16
+ end
17
+
18
+ def prepare_ruby_version
19
+ create_file("#{path}/.ruby-version") { "2.1.9\n" }
20
+ end
21
+
22
+ def prepare_dotenv
23
+ create_file("#{path}/.env") { "SESSION_SECRET=super secret shh\n" }
24
+ create_file("#{path}/.gitignore") { ".env\n" }
25
+ end
26
+
27
+ def prepare_database
28
+ template('templates/database.erb', "#{path}/config/database.yml")
29
+ template('templates/users_migration.erb', "#{path}/db/migrate/1_create_users.rb")
30
+ end
31
+
32
+ def prepare_rack
33
+ template('templates/gemfile.tt', "#{path}/Gemfile")
34
+ template('templates/procfile.tt', "#{path}/Procfile")
35
+ template('templates/rakefile.tt', "#{path}/Rakefile")
36
+ template('templates/rackup.tt', "#{path}/config.ru")
37
+ template('templates/server.tt', "#{path}/server.rb")
38
+ end
39
+
40
+ def prepare_app
41
+ template('templates/user.tt', "#{path}/app/user.rb")
42
+ template('templates/layout.erb', "#{path}/views/layout.erb")
43
+ template('templates/navigation.erb', "#{path}/views/_navigation.erb")
44
+ template('templates/index.erb', "#{path}/views/index.erb")
45
+ end
46
+
47
+ def prepare_assets
48
+ create_file "#{path}/assets/javascripts/application.js"
49
+
50
+ create_file "#{path}/assets/stylesheets/vendor/.keep"
51
+ create_file("#{path}/assets/stylesheets/base.scss") { "body {}" }
52
+ template('templates/css.tt', "#{path}/assets/stylesheets/application.scss")
53
+ end
54
+
55
+ def self.source_root
56
+ File.dirname(__FILE__)
57
+ end
58
+ end
59
+
60
+ class Command < Thor
61
+ register(Sinatra::Rider::Generator, 'new', 'new', 'Create a new sinatra-rider application at PATH_NAME')
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,2 @@
1
+ //= require_tree ./vendor
2
+ //= require base
@@ -0,0 +1,15 @@
1
+ default: &default
2
+ adapter: postgresql
3
+ encoding: unicode
4
+ pool: 5
5
+
6
+ development:
7
+ <<: *default
8
+ database: <%= path %>_development
9
+
10
+ test:
11
+ <<: *default
12
+ database: <%= path %>_test
13
+
14
+ production:
15
+ url: <%= "<%= ENV['DATABASE_URL'] \%\>" %>
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ ruby '2.1.9'
4
+
5
+ gem 'rake'
6
+ gem 'sinatra-rider'
@@ -0,0 +1 @@
1
+ Hello from Sinatra Rider!
@@ -0,0 +1,21 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= path.capitalize %></title>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
7
+ <link rel="stylesheet" type="text/css" href="/assets/application.css">
8
+ </head>
9
+
10
+ <body>
11
+ <div class="wrap">
12
+ <%= "<%= erb '_navigation'.to_sym \%\>" %>
13
+
14
+ <div id="container">
15
+ <%= "<%= yield \%\>" %>
16
+ </div>
17
+ </div>
18
+
19
+ <script type="text/javascript" src="/assets/application.js"></script>
20
+ </body>
21
+ </html>
@@ -0,0 +1,15 @@
1
+ <nav>
2
+ <%= "<% if signed_in? \%\>" %>
3
+ Hi, <%= "<%= current_user.name \%\>" %>!
4
+ &nbsp;
5
+ <a href="/">Home</a>
6
+ |
7
+ <a href="/logout">Logout</a>
8
+ <%= "<% else \%\>" %>
9
+ <a href="/">Home</a>
10
+ |
11
+ <a href="/login">Login</a>
12
+ |
13
+ <a href="/signup">Signup</a>
14
+ <%= "<% end \%\>" %>
15
+ </nav>
@@ -0,0 +1 @@
1
+ web: bundle exec thin start -p $PORT -e $RACK_ENV
@@ -0,0 +1,3 @@
1
+ require './server'
2
+
3
+ run Server
@@ -0,0 +1 @@
1
+ require 'sinatra/rider/rake'
@@ -0,0 +1,10 @@
1
+ require 'sinatra/rider'
2
+
3
+ class Server < Sinatra::Base
4
+ register Sinatra::Rider
5
+
6
+ get '/' do
7
+ # authorize!
8
+ erb :index
9
+ end
10
+ end
@@ -0,0 +1,2 @@
1
+ class User < Sinatra::Rider::User
2
+ end
@@ -0,0 +1,11 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :users do |t|
4
+ t.string :name
5
+ t.string :username, null: false
6
+ t.string :encrypted_password, null: false
7
+ t.timestamps null: false
8
+ end
9
+ add_index :users, :username
10
+ end
11
+ end
@@ -0,0 +1,32 @@
1
+ require 'digest/sha1'
2
+
3
+ module Sinatra
4
+ module Rider
5
+ class User < ActiveRecord::Base
6
+ def self.signup(attrs)
7
+ where(username: attrs[:username]).first_or_initialize.tap do |u|
8
+ u.name = attrs[:name]
9
+ u.password = attrs[:password]
10
+ u.save!
11
+ end
12
+ end
13
+
14
+ def self.authenticate(username, pass)
15
+ user = where(username: username).first
16
+ user if user && user.valid_password?(pass)
17
+ end
18
+
19
+ def password
20
+ encrypted_password
21
+ end
22
+
23
+ def password=(pass)
24
+ self.encrypted_password = Digest::SHA1.hexdigest(pass)
25
+ end
26
+
27
+ def valid_password?(pass)
28
+ encrypted_password == Digest::SHA1.hexdigest(pass)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module Rider
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -0,0 +1,18 @@
1
+ <form action="/signup" method="POST">
2
+ <div class="form-group">
3
+ <label for="username">Username</label>
4
+ <input type="text" name="username" class="form-control" id="login-username" placeholder="guest">
5
+ </div>
6
+
7
+ <div class="form-group">
8
+ <label for="name">Name</label>
9
+ <input type="text" name="name" class="form-control" id="login-name" placeholder="Gus Guesterson Jr.">
10
+ </div>
11
+
12
+ <div class="form-group">
13
+ <label for="password">Password</label>
14
+ <input type="password" name="password" class="form-control" id="login-password" placeholder="**********">
15
+ </div>
16
+
17
+ <button type="submit" class="btn btn-primary">Sign Up</button>
18
+ </form>
@@ -22,16 +22,17 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
 
24
24
  spec.add_dependency 'thin'
25
+ spec.add_dependency 'thor'
25
26
  spec.add_dependency 'pg'
26
27
  spec.add_dependency 'dotenv'
27
- spec.add_dependency 'sinatra'
28
- spec.add_dependency 'sinatra-contrib'
29
- spec.add_dependency 'sinatra-activerecord'
30
- spec.add_dependency 'sinatra_warden'
31
- spec.add_dependency 'activerecord', '4.2.5'
32
- spec.add_dependency 'sprockets'
28
+ spec.add_dependency 'sinatra', '~> 1.4'
29
+ spec.add_dependency 'sinatra-contrib', '~> 1.4'
30
+ spec.add_dependency 'sinatra-activerecord', '~> 2.0'
31
+ spec.add_dependency 'sinatra_warden', '~> 1.0'
32
+ spec.add_dependency 'activerecord', '~> 4.2'
33
+ spec.add_dependency 'sprockets', '~> 3.7'
34
+ spec.add_dependency 'sass', '~> 3.4'
33
35
  spec.add_dependency 'uglifier'
34
- spec.add_dependency 'sass'
35
36
  spec.add_dependency 'better_errors'
36
37
  spec.add_dependency 'binding_of_caller'
37
38
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-rider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Werner
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-17 00:00:00.000000000 Z
11
+ date: 2017-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thin
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: pg
28
+ name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: dotenv
42
+ name: pg
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: sinatra
56
+ name: dotenv
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -66,92 +66,106 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.4'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.4'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: sinatra-contrib
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ">="
87
+ - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '0'
89
+ version: '1.4'
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ">="
94
+ - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '0'
96
+ version: '1.4'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: sinatra-activerecord
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0'
103
+ version: '2.0'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0'
110
+ version: '2.0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: sinatra_warden
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0'
117
+ version: '1.0'
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0'
124
+ version: '1.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: activerecord
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - '='
129
+ - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: 4.2.5
131
+ version: '4.2'
118
132
  type: :runtime
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - '='
136
+ - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: 4.2.5
138
+ version: '4.2'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: sprockets
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ">="
143
+ - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '0'
145
+ version: '3.7'
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ">="
150
+ - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '0'
152
+ version: '3.7'
139
153
  - !ruby/object:Gem::Dependency
140
- name: uglifier
154
+ name: sass
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - ">="
157
+ - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '0'
159
+ version: '3.4'
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ">="
164
+ - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '0'
166
+ version: '3.4'
153
167
  - !ruby/object:Gem::Dependency
154
- name: sass
168
+ name: uglifier
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - ">="
@@ -237,7 +251,8 @@ dependencies:
237
251
  description: All the extras that Sinatra prefers while performing
238
252
  email:
239
253
  - m@mjw.io
240
- executables: []
254
+ executables:
255
+ - rider
241
256
  extensions: []
242
257
  extra_rdoc_files: []
243
258
  files:
@@ -250,24 +265,47 @@ files:
250
265
  - README.md
251
266
  - Rakefile
252
267
  - bin/console
268
+ - bin/rider
253
269
  - bin/setup
254
- - example/.DS_Store
255
270
  - example/myapp/Gemfile
271
+ - example/myapp/Gemfile.lock
272
+ - example/myapp/README.md
273
+ - example/myapp/Rakefile
256
274
  - example/myapp/app/user.rb
257
275
  - example/myapp/assets/stylesheets/application.scss
258
276
  - example/myapp/assets/stylesheets/base.scss
259
277
  - example/myapp/config.ru
278
+ - example/myapp/config/database.yml
279
+ - example/myapp/db/migrate/1_create_users.rb
280
+ - example/myapp/db/schema.rb
281
+ - example/myapp/db/seeds.rb
260
282
  - example/myapp/views/index.erb
261
283
  - example/myapp/views/layout.erb
284
+ - exe/rider
262
285
  - lib/sinatra/rider.rb
263
286
  - lib/sinatra/rider/assets.rb
264
287
  - lib/sinatra/rider/authentication.rb
288
+ - lib/sinatra/rider/command.rb
265
289
  - lib/sinatra/rider/configuration.rb
266
290
  - lib/sinatra/rider/pathing.rb
267
291
  - lib/sinatra/rider/quiet_assets.rb
268
292
  - lib/sinatra/rider/rake.rb
293
+ - lib/sinatra/rider/templates/css.tt
294
+ - lib/sinatra/rider/templates/database.erb
295
+ - lib/sinatra/rider/templates/gemfile.tt
296
+ - lib/sinatra/rider/templates/index.erb
297
+ - lib/sinatra/rider/templates/layout.erb
298
+ - lib/sinatra/rider/templates/navigation.erb
299
+ - lib/sinatra/rider/templates/procfile.tt
300
+ - lib/sinatra/rider/templates/rackup.tt
301
+ - lib/sinatra/rider/templates/rakefile.tt
302
+ - lib/sinatra/rider/templates/server.tt
303
+ - lib/sinatra/rider/templates/user.tt
304
+ - lib/sinatra/rider/templates/users_migration.erb
305
+ - lib/sinatra/rider/user.rb
269
306
  - lib/sinatra/rider/version.rb
270
307
  - lib/sinatra/views/login.erb
308
+ - lib/sinatra/views/signup.erb
271
309
  - sinatra-rider.gemspec
272
310
  homepage: https://github.com/mwerner/sinatra-rider
273
311
  licenses:
Binary file