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 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: {}