sinatra-chassis 1.0.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.
Files changed (37) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +3 -0
  3. data/LICENSE +7 -0
  4. data/README.md +19 -0
  5. data/Rakefile +1 -0
  6. data/bin/chassis +73 -0
  7. data/lib/sinatra/chassis.rb +213 -0
  8. data/lib/sinatra/chassis/file_manager.rb +151 -0
  9. data/lib/sinatra/chassis/helpers.rb +237 -0
  10. data/lib/sinatra/chassis/tasks.rb +7 -0
  11. data/lib/sinatra/tasks/assets.rake +40 -0
  12. data/lib/sinatra/tasks/chassis.rake +23 -0
  13. data/lib/sinatra/tasks/datamapper.rake +117 -0
  14. data/lib/sinatra/tasks/pony.rake +11 -0
  15. data/lib/sinatra/tasks/sinatra.rake +23 -0
  16. data/lib/sinatra/templates/chassis/.gitignore +6 -0
  17. data/lib/sinatra/templates/chassis/Gemfile +8 -0
  18. data/lib/sinatra/templates/chassis/README.md +4 -0
  19. data/lib/sinatra/templates/chassis/Rakefile +2 -0
  20. data/lib/sinatra/templates/chassis/app.rb +20 -0
  21. data/lib/sinatra/templates/chassis/config.ru +2 -0
  22. data/lib/sinatra/templates/chassis/public/favicon.ico +0 -0
  23. data/lib/sinatra/templates/chassis/public/robots.txt +3 -0
  24. data/lib/sinatra/templates/chassis/tmp/restart.txt +0 -0
  25. data/lib/sinatra/templates/chassis/views/layout.erb +18 -0
  26. data/lib/sinatra/templates/chassis/views/readme.erb +23 -0
  27. data/lib/sinatra/templates/datamapper/data/migrations/datamapper_migration.rb +13 -0
  28. data/lib/sinatra/templates/datamapper/data/seeds/seed.rb +1 -0
  29. data/lib/sinatra/templates/datamapper/models/datamapper.rb +8 -0
  30. data/lib/sinatra/templates/datamapper/settings/datamapper.rb +16 -0
  31. data/lib/sinatra/templates/datamapper/tests/models/datamapper_tests.rb +16 -0
  32. data/lib/sinatra/templates/pony/settings/pony.rb +27 -0
  33. data/lib/sinatra/templates/sinatra/routes/routes.rb +7 -0
  34. data/lib/sinatra/templates/sinatra/tests/routes/routes_tests.rb +17 -0
  35. data/lib/sinatra/views/error.erb +36 -0
  36. data/sinatra-chassis.gemspec +28 -0
  37. metadata +149 -0
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ /.bundle
3
+ /data/*.sqlite3
4
+ /log/*
5
+ !/log/messages.log
6
+ .sass-cache
@@ -0,0 +1,8 @@
1
+ source :rubygems
2
+
3
+ gem 'coffee-script', '>= 2.2.0'
4
+ gem 'kramdown', '>= 0.14.2'
5
+ gem 'sass', '>= 3.2.5'
6
+ gem 'sinatra', '>= 1.3.4'
7
+ gem 'sinatra-chassis', '>= 1.0.0.pre', require: 'sinatra/chassis'
8
+ gem 'sinatra-contrib', '>= 1.3.2', require: 'sinatra/contrib'
@@ -0,0 +1,4 @@
1
+ Chassis
2
+ =======
3
+
4
+ [More Info](http://jarrodtaylor.github.com/sinatra-chassis/)
@@ -0,0 +1,2 @@
1
+ require './app'
2
+ require 'sinatra/chassis/tasks'
@@ -0,0 +1,20 @@
1
+ require 'bundler/setup'
2
+ Bundler.require
3
+
4
+ require 'sinatra/chassis/helpers'
5
+
6
+ require 'sinatra/reloader' if development?
7
+
8
+ require_directory(settings.load_path)
9
+
10
+ enable :sessions
11
+ set :session_secret, 'secret123'
12
+
13
+ get '/?' do
14
+ @readme = ''
15
+ File.open('./README.md') do |file|
16
+ file.each_line { |line| @readme << line }
17
+ end
18
+
19
+ erb :readme, layout: false
20
+ end
@@ -0,0 +1,2 @@
1
+ require './app'
2
+ run Sinatra::Application
File without changes
@@ -0,0 +1,3 @@
1
+ User-Agent: *
2
+
3
+ # Disallow: /
File without changes
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
6
+ <meta name="description" content="" />
7
+ <meta name="author" content="" />
8
+ <title>Your Name Here</title>
9
+ <link rel="shortcut icon" href="favicon.ico" />
10
+ </head>
11
+
12
+ <body>
13
+
14
+ <%= alert %>
15
+ <%= yield %>
16
+
17
+ </body>
18
+ </html>
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>Chassis</title>
6
+ <style>
7
+ body {
8
+ font-family: 'Helvetica Neue', Helvetica, sans-serif;
9
+ margin: 10% auto;
10
+ text-align: center;
11
+ }
12
+ a, a:visited {
13
+ color: #27b1f5;
14
+ }
15
+ </style>
16
+ </head>
17
+
18
+ <body>
19
+
20
+ <%= Kramdown::Document.new(@readme).to_html %>
21
+
22
+ </body>
23
+ </html>
@@ -0,0 +1,13 @@
1
+ migration <%= locals[:t] %>, :<%= locals[:migration] %> do
2
+
3
+ up do
4
+ # create_table :widgets do
5
+ # column :id, Integer, serial: true
6
+ # end
7
+ end
8
+
9
+ down do
10
+ # drop_table :widgets
11
+ end
12
+
13
+ end
@@ -0,0 +1 @@
1
+ # User.first_or_create(email: 'johndoe@example.com')
@@ -0,0 +1,8 @@
1
+ class <%= locals[:model].capitalize %>
2
+ include DataMapper::Resource
3
+
4
+ timestamps :at, :on
5
+ property :deleted_at, ParanoidDateTime
6
+ property :id, Serial
7
+
8
+ end
@@ -0,0 +1,16 @@
1
+ configure :development do
2
+ DataMapper::Logger.new $stdout, :debug
3
+ # DataMapper.setup :default, 'sqlite::memory:'
4
+ DataMapper.setup :default, "sqlite://#{Dir.pwd}/data/development.sqlite3"
5
+ # DataMapper.setup :default, 'mysql://username:password@host_url:3306/database_name'
6
+ # DataMapper.setup :default, 'postgres://username:password@host_url:5432/database_name'
7
+ end
8
+
9
+ configure :production do
10
+ # DataMapper::Logger.new $stdout, :debug
11
+ # DataMapper.setup :default, 'sqlite::memory:'
12
+ # DataMapper.setup :default, "sqlite://#{Dir.pwd}/data/production.sqlite3"
13
+ # DataMapper.setup :default, 'mysql://username:password@host_url:3306/database_name'
14
+ # DataMapper.setup :default, 'postgres://username:password@host_url:5432/database_name'
15
+ # DataMapper.setup(:default, ENV['DATABASE_URL'] || 'postgres://localhost/mydb')
16
+ end
@@ -0,0 +1,16 @@
1
+ require 'minitest/autorun'
2
+ require 'rack/test'
3
+ require './app'
4
+
5
+ class <%= locals[:model].capitalize %>Tests < MiniTest::Unit::TestCase
6
+ include Rack::Test::Methods
7
+
8
+ def app
9
+ Sinatra::Application
10
+ end
11
+
12
+ # def test_made_by
13
+ # <%= locals[:model] %> = <%= locals[:model].capitalize %>.new
14
+ # assert_equal <%= locals[:model] %>.made_by, 'Acme Corp.'
15
+ # end
16
+ end
@@ -0,0 +1,27 @@
1
+ Pony.options = {
2
+ via: :smtp,
3
+ via_options: {
4
+ address: '',
5
+ port: '',
6
+ domain: '',
7
+ user_name: '',
8
+ password: '',
9
+ authentication: :plain,
10
+ enable_starttls_auto: true
11
+ }
12
+ }
13
+
14
+ # Heroku example:
15
+
16
+ # Pony.options = {
17
+ # via: :smtp,
18
+ # via_options: {
19
+ # address: 'smtp.sendgrid.net',
20
+ # port: '587',
21
+ # domain: 'heroku.com',
22
+ # user_name: ENV['SENDGRID_USERNAME'],
23
+ # password: ENV['SENDGRID_PASSWORD'],
24
+ # authentication: :plain,
25
+ # enable_starttls_auto: true
26
+ # }
27
+ # }
@@ -0,0 +1,7 @@
1
+ namespace '/<%= locals[:namespace] %>' do
2
+
3
+ get '/hello-world/?' do
4
+ "Hello world!"
5
+ end
6
+
7
+ end
@@ -0,0 +1,17 @@
1
+ require 'minitest/autorun'
2
+ require 'rack/test'
3
+ require './app'
4
+
5
+ class <%= locals[:namespace].capitalize %>Tests < MiniTest::Unit::TestCase
6
+ include Rack::Test::Methods
7
+
8
+ def app
9
+ Sinatra::Application
10
+ end
11
+
12
+ # def test_hello_world
13
+ # get '/<%= locals[:namespace] %>/hello-world'
14
+ # assert last_response.ok?
15
+ # assert_equal 'Hello world!', last_response.body
16
+ # end
17
+ end
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Error</title>
7
+ <style type="text/css">
8
+ body {
9
+ font-family: sans-serif;
10
+ font-size: 16px;
11
+ padding: 11% 0 0 0;
12
+ text-align: center;
13
+ }
14
+ hr {
15
+ border: none;
16
+ border-top: 1px solid silver;
17
+ width: 50%;
18
+ }
19
+ h2 {
20
+ color: silver;
21
+ font-style: italic;
22
+ font-weight: normal;
23
+ }
24
+ </style>
25
+ </head>
26
+
27
+ <body>
28
+
29
+ <h1>Error <%= code %></h1>
30
+
31
+ <hr />
32
+
33
+ <h2><%= message %></h2>
34
+
35
+ </body>
36
+ </html>
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+
6
+ s.name = 'sinatra-chassis'
7
+ s.version = '1.0.0'
8
+ s.author = 'Jarrod Taylor'
9
+ s.email = 'jarrodtaylor@icloud.com'
10
+ s.homepage = 'http://jarrodtaylor.github.com/sinatra-chassis'
11
+ s.summary = 'Chassis is a mutable framework extension for Sinatra.'
12
+ s.description = "Chassis is a mutable framework extension for Sinatra that's designed not just to help you write less code, but to help you focus on less code."
13
+ s.license = 'MIT'
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ s.required_ruby_version = ">= 1.9.2"
20
+
21
+ s.add_dependency 'coffee-script', '>= 2.2.0'
22
+ s.add_dependency 'paint', '>= 0.8.5'
23
+ s.add_dependency 'rack-flash3', '>= 1.0.3'
24
+ s.add_dependency 'rack-test', '>= 0.6.2'
25
+ s.add_dependency 'sass', '>= 3.2.5'
26
+ s.add_dependency 'sinatra', '>= 1.3.4'
27
+
28
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sinatra-chassis
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jarrod Taylor
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: coffee-script
16
+ requirement: &70249727858660 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70249727858660
25
+ - !ruby/object:Gem::Dependency
26
+ name: paint
27
+ requirement: &70249727855200 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.8.5
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70249727855200
36
+ - !ruby/object:Gem::Dependency
37
+ name: rack-flash3
38
+ requirement: &70249727869080 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.3
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70249727869080
47
+ - !ruby/object:Gem::Dependency
48
+ name: rack-test
49
+ requirement: &70249727865800 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.6.2
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70249727865800
58
+ - !ruby/object:Gem::Dependency
59
+ name: sass
60
+ requirement: &70249727863420 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: 3.2.5
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *70249727863420
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra
71
+ requirement: &70249727882080 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 1.3.4
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *70249727882080
80
+ description: Chassis is a mutable framework extension for Sinatra that's designed
81
+ not just to help you write less code, but to help you focus on less code.
82
+ email: jarrodtaylor@icloud.com
83
+ executables:
84
+ - chassis
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - .gitignore
89
+ - Gemfile
90
+ - LICENSE
91
+ - README.md
92
+ - Rakefile
93
+ - bin/chassis
94
+ - lib/sinatra/chassis.rb
95
+ - lib/sinatra/chassis/file_manager.rb
96
+ - lib/sinatra/chassis/helpers.rb
97
+ - lib/sinatra/chassis/tasks.rb
98
+ - lib/sinatra/tasks/assets.rake
99
+ - lib/sinatra/tasks/chassis.rake
100
+ - lib/sinatra/tasks/datamapper.rake
101
+ - lib/sinatra/tasks/pony.rake
102
+ - lib/sinatra/tasks/sinatra.rake
103
+ - lib/sinatra/templates/chassis/.gitignore
104
+ - lib/sinatra/templates/chassis/Gemfile
105
+ - lib/sinatra/templates/chassis/README.md
106
+ - lib/sinatra/templates/chassis/Rakefile
107
+ - lib/sinatra/templates/chassis/app.rb
108
+ - lib/sinatra/templates/chassis/config.ru
109
+ - lib/sinatra/templates/chassis/public/favicon.ico
110
+ - lib/sinatra/templates/chassis/public/robots.txt
111
+ - lib/sinatra/templates/chassis/tmp/restart.txt
112
+ - lib/sinatra/templates/chassis/views/layout.erb
113
+ - lib/sinatra/templates/chassis/views/readme.erb
114
+ - lib/sinatra/templates/datamapper/data/migrations/datamapper_migration.rb
115
+ - lib/sinatra/templates/datamapper/data/seeds/seed.rb
116
+ - lib/sinatra/templates/datamapper/models/datamapper.rb
117
+ - lib/sinatra/templates/datamapper/settings/datamapper.rb
118
+ - lib/sinatra/templates/datamapper/tests/models/datamapper_tests.rb
119
+ - lib/sinatra/templates/pony/settings/pony.rb
120
+ - lib/sinatra/templates/sinatra/routes/routes.rb
121
+ - lib/sinatra/templates/sinatra/tests/routes/routes_tests.rb
122
+ - lib/sinatra/views/error.erb
123
+ - sinatra-chassis.gemspec
124
+ homepage: http://jarrodtaylor.github.com/sinatra-chassis
125
+ licenses:
126
+ - MIT
127
+ post_install_message:
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: 1.9.2
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 1.8.11
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: Chassis is a mutable framework extension for Sinatra.
149
+ test_files: []