scaffold_sinatra 0.0.2 → 0.0.4
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 +4 -4
- data/bin/scaffold_sinatra +64 -0
- data/data/Gemfile.erb +24 -0
- data/data/Rakefile +6 -0
- data/data/app.rb.erb +29 -0
- data/data/config.ru.erb +7 -0
- data/data/public/images/GA-logo-small.png +0 -0
- data/data/public/stylesheets/style.css.erb +3 -0
- data/data/views/index.erb.erb +2 -0
- data/data/views/layout.erb.erb +19 -0
- data/lib/scaffold_sinatra/version.rb +1 -1
- data/scaffold_sinatra.gemspec +10 -4
- metadata +52 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96399919c6387b2f6ec903a60592cf829e7237ef
|
4
|
+
data.tar.gz: ac43e7731424075a18ac7f854b4dc5d00b6dfa4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49c4ad40f25b093132430f2f5420687b57eb68d58e076646cf9022f67028fe3a475f84f6dbd55f56c15ac52f810d3e1230f72223077fd6c8bca6867112a340b2
|
7
|
+
data.tar.gz: 9bc6399f63852e22f5328b68356653dd3866fe3d5093555e069af7f446ed62d0493a2319d738bdabae39f692f71d91dbd717992dc86548614bb418be324651f6
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
require 'pathname'
|
5
|
+
require 'open-uri'
|
6
|
+
require 'colorize'
|
7
|
+
require 'erb'
|
8
|
+
require 'pry'
|
9
|
+
|
10
|
+
DATA_PATH = File.expand_path("../../data", __FILE__)
|
11
|
+
|
12
|
+
include FileUtils
|
13
|
+
|
14
|
+
project_name = ARGV[0]
|
15
|
+
|
16
|
+
# check input
|
17
|
+
if project_name.nil?
|
18
|
+
puts "Can't build project without name.".red
|
19
|
+
exit
|
20
|
+
elsif Dir.exist?(project_name)
|
21
|
+
puts "#{project_name} already exists!".red
|
22
|
+
exit
|
23
|
+
end
|
24
|
+
|
25
|
+
# make app repo
|
26
|
+
mkdir(project_name)
|
27
|
+
|
28
|
+
# and do all the work there...
|
29
|
+
cd(project_name) do
|
30
|
+
|
31
|
+
# copy data directory over
|
32
|
+
data_root = Pathname.new(DATA_PATH)
|
33
|
+
Dir.glob(File.join(DATA_PATH, "**/*")).each do |data_file_path|
|
34
|
+
relative_file_path = Pathname.new(data_file_path).relative_path_from(data_root)
|
35
|
+
|
36
|
+
# make directories as necessary
|
37
|
+
if File.directory?(data_file_path)
|
38
|
+
mkdir(relative_file_path)
|
39
|
+
|
40
|
+
# render ERB files and save output to new files
|
41
|
+
elsif File.extname(data_file_path) == ".erb"
|
42
|
+
relative_path_without_erb = relative_file_path.to_s.rpartition('.').first
|
43
|
+
File.open(relative_path_without_erb, 'w+') do |f|
|
44
|
+
f.write(ERB.new(File.read(data_file_path)).result(binding))
|
45
|
+
end
|
46
|
+
|
47
|
+
# copy whole non-ERB files (no rendering)
|
48
|
+
else
|
49
|
+
cp(data_file_path, relative_file_path)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# copy files from internet
|
54
|
+
File.open('public/stylesheets/normalize.css', 'w+') do |f|
|
55
|
+
normalize_url = 'https://raw.githubusercontent.com/necolas/normalize.css/master/normalize.css'
|
56
|
+
f.write(open(normalize_url).read)
|
57
|
+
end
|
58
|
+
|
59
|
+
system('bundle install')
|
60
|
+
|
61
|
+
puts('>> OK!'.white)
|
62
|
+
puts(">> Created #{project_name}!".green)
|
63
|
+
puts('>> use `bundle exec shotgun -p 3000` from inside the folder to run it!')
|
64
|
+
end
|
data/data/Gemfile.erb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
ruby "<%= RUBY_VERSION %>"
|
4
|
+
|
5
|
+
# Gems used in every environment
|
6
|
+
gem 'sinatra', '1.4.5'
|
7
|
+
|
8
|
+
# gems specific to the development environment
|
9
|
+
group :development do
|
10
|
+
gem 'shotgun', '0.9'
|
11
|
+
end
|
12
|
+
|
13
|
+
# gems specifically for testing
|
14
|
+
group :test do
|
15
|
+
end
|
16
|
+
|
17
|
+
# gems used in the local development and testing environments
|
18
|
+
group :development, :test do
|
19
|
+
gem 'pry', '0.10.1'
|
20
|
+
end
|
21
|
+
|
22
|
+
# gems specific to the production environment
|
23
|
+
group :production do
|
24
|
+
end
|
data/data/Rakefile
ADDED
data/data/app.rb.erb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
class App < Sinatra::Base
|
2
|
+
|
3
|
+
########################
|
4
|
+
# Configuration
|
5
|
+
########################
|
6
|
+
|
7
|
+
# allow simple "logging" of server output
|
8
|
+
enable :logging
|
9
|
+
|
10
|
+
# allow put/delete forms in browsers that don't support it
|
11
|
+
enable :method_override
|
12
|
+
|
13
|
+
# store data between HTTP requests in a cookie
|
14
|
+
enable :sessions
|
15
|
+
|
16
|
+
# we can set the session's cookie hash ourselves, so that all of our app's
|
17
|
+
# instances share it: since we want to run shotgun, which creates new
|
18
|
+
# application instances, we must manually set session_secret
|
19
|
+
set :session_secret, SecureRandom.urlsafe_base64
|
20
|
+
|
21
|
+
########################
|
22
|
+
# Routes
|
23
|
+
########################
|
24
|
+
|
25
|
+
get('/') do
|
26
|
+
render(:erb, :index)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/data/config.ru.erb
ADDED
Binary file
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
|
7
|
+
<title><%= project_name.capitalize %></title>
|
8
|
+
|
9
|
+
<meta name="description" content="">
|
10
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
11
|
+
|
12
|
+
<link href="/stylesheets/normalize.css" rel="stylesheet" type="text/css" media="all">
|
13
|
+
<link href="/stylesheets/style.css" rel="stylesheet" type="text/css" media="all">
|
14
|
+
</head>
|
15
|
+
|
16
|
+
<body>
|
17
|
+
<%%= yield %>
|
18
|
+
</body>
|
19
|
+
</html>
|
data/scaffold_sinatra.gemspec
CHANGED
@@ -6,11 +6,11 @@ require 'scaffold_sinatra/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "scaffold_sinatra"
|
8
8
|
spec.version = ScaffoldSinatra::VERSION
|
9
|
-
spec.authors = ["h4w5"]
|
9
|
+
spec.authors = ["h4w5","phlco"]
|
10
10
|
spec.email = ["philip@h4w5.com"]
|
11
11
|
spec.summary = %q{Helps scaffold a simple Sinatra app according to the WDI conventions.}
|
12
|
-
spec.description = %q{Helps scaffold a simple Sinatra app according to the WDI conventions
|
13
|
-
spec.homepage = ""
|
12
|
+
spec.description = %q{Helps scaffold a simple Sinatra app according to the WDI conventions...}
|
13
|
+
spec.homepage = "https://github.com/ga-instructors"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -18,6 +18,12 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.bindir = "bin"
|
22
|
+
spec.executables.push *["scaffold_sinatra"]
|
23
|
+
|
21
24
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
-
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.2"
|
26
|
+
spec.add_development_dependency "pry", "~> 0.9", ">= 0.9.12"
|
27
|
+
|
28
|
+
spec.add_runtime_dependency "colorize", "~> 0.0"
|
23
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scaffold_sinatra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- h4w5
|
8
|
+
- phlco
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
12
|
+
date: 2014-09-10 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
@@ -28,20 +29,55 @@ dependencies:
|
|
28
29
|
name: rake
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '10.2'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '10.2'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: pry
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.9'
|
31
49
|
- - ">="
|
32
50
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
51
|
+
version: 0.9.12
|
34
52
|
type: :development
|
35
53
|
prerelease: false
|
36
54
|
version_requirements: !ruby/object:Gem::Requirement
|
37
55
|
requirements:
|
56
|
+
- - "~>"
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0.9'
|
38
59
|
- - ">="
|
39
60
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
-
|
61
|
+
version: 0.9.12
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: colorize
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.0'
|
69
|
+
type: :runtime
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.0'
|
76
|
+
description: Helps scaffold a simple Sinatra app according to the WDI conventions...
|
42
77
|
email:
|
43
78
|
- philip@h4w5.com
|
44
|
-
executables:
|
79
|
+
executables:
|
80
|
+
- scaffold_sinatra
|
45
81
|
extensions: []
|
46
82
|
extra_rdoc_files: []
|
47
83
|
files:
|
@@ -50,10 +86,19 @@ files:
|
|
50
86
|
- LICENSE.txt
|
51
87
|
- README.md
|
52
88
|
- Rakefile
|
89
|
+
- bin/scaffold_sinatra
|
90
|
+
- data/Gemfile.erb
|
91
|
+
- data/Rakefile
|
92
|
+
- data/app.rb.erb
|
93
|
+
- data/config.ru.erb
|
94
|
+
- data/public/images/GA-logo-small.png
|
95
|
+
- data/public/stylesheets/style.css.erb
|
96
|
+
- data/views/index.erb.erb
|
97
|
+
- data/views/layout.erb.erb
|
53
98
|
- lib/scaffold_sinatra.rb
|
54
99
|
- lib/scaffold_sinatra/version.rb
|
55
100
|
- scaffold_sinatra.gemspec
|
56
|
-
homepage:
|
101
|
+
homepage: https://github.com/ga-instructors
|
57
102
|
licenses:
|
58
103
|
- MIT
|
59
104
|
metadata: {}
|