scaffold_sinatra 0.0.2 → 0.0.4

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: 7b7e8cf814cdb9389ae8ada229a1cbdec5467f92
4
- data.tar.gz: 4720dcfc5f046dc2657f4206874278c8c821d6e2
3
+ metadata.gz: 96399919c6387b2f6ec903a60592cf829e7237ef
4
+ data.tar.gz: ac43e7731424075a18ac7f854b4dc5d00b6dfa4a
5
5
  SHA512:
6
- metadata.gz: da4e19deafc6065f5caac07d0087a51cb89a61d24a50d9f4b8e734cff9d01fec35b18f30c3afa6827d835ceb0851e2ec3d727c4c50ea082d015fdbaa9652bc1f
7
- data.tar.gz: e78af640b8a669b5f824c9df15bfd7eca895bf88e925a845c86b125e383b28c971770b01bac6dba63da7858af32be40b1772324461eea26a2bd61177817e8e56
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
@@ -0,0 +1,6 @@
1
+ desc "start Sinatra server with `shotgun` command on port 3000."
2
+ task :start do
3
+ `bundle exec shotgun -p 3000`
4
+ end
5
+
6
+ task :default => 'start'
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
@@ -0,0 +1,7 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ Bundler.require(:default, ENV['RACK_ENV'])
5
+
6
+ require './app'
7
+ run App
@@ -0,0 +1,3 @@
1
+ .ga-banner {
2
+ text-align: center;
3
+ }
@@ -0,0 +1,2 @@
1
+ <h1 class="ga-banner">Hello World!</h1>
2
+ <img src="/images/GA-logo-small.png" style="display: block; margin: 10px auto;"/>
@@ -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>
@@ -1,3 +1,3 @@
1
1
  module ScaffoldSinatra
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -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.2
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-08 00:00:00.000000000 Z
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: '0'
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: '0'
41
- description: Helps scaffold a simple Sinatra app according to the WDI conventions.
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: {}