sinatra-rider 0.1.0 → 0.2.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.
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