sat 0.0.1

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 (40) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +176 -0
  6. data/Rakefile +1 -0
  7. data/bin/sat +98 -0
  8. data/lib/sat.rb +5 -0
  9. data/lib/sat/version.rb +3 -0
  10. data/sat.gemspec +25 -0
  11. data/template/Gemfile +22 -0
  12. data/template/LICENSE +22 -0
  13. data/template/README.md +21 -0
  14. data/template/Rakefile +9 -0
  15. data/template/app/assets/images/.gitkeep +0 -0
  16. data/template/app/assets/javascripts/application.js +2 -0
  17. data/template/app/assets/stylesheets/application.css +4 -0
  18. data/template/app/controllers/application_controller.rb +34 -0
  19. data/template/app/controllers/root_controller.rb +12 -0
  20. data/template/app/helpers/application_helpers.rb +4 -0
  21. data/template/app/helpers/root_helpers.rb +4 -0
  22. data/template/app/models/.gitkeep +0 -0
  23. data/template/app/views/layouts/application.slim +8 -0
  24. data/template/app/views/root/index.slim +1 -0
  25. data/template/config.ru +3 -0
  26. data/template/config/application.rb +26 -0
  27. data/template/config/environment.rb +42 -0
  28. data/template/config/environments/development.rb +3 -0
  29. data/template/config/environments/production.rb +2 -0
  30. data/template/config/environments/test.rb +2 -0
  31. data/template/config/initializers/.gitkeep +0 -0
  32. data/template/config/locales/en.yml +5 -0
  33. data/template/log/.gitkeep +0 -0
  34. data/template/spec/controllers/application_controller_spec.rb +9 -0
  35. data/template/spec/controllers/root_controller_spec.rb +17 -0
  36. data/template/spec/helpers/application_helpers_spec.rb +9 -0
  37. data/template/spec/helpers/root_helpers_spec.rb +9 -0
  38. data/template/spec/minitest_helper.rb +3 -0
  39. data/template/spec/models/.gitkeep +0 -0
  40. metadata +126 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d61541e8ff5d1b9e7e73663114e0e191a6538176
4
+ data.tar.gz: 371a0d94add8edff5e0a7960e2a4579ae078b973
5
+ SHA512:
6
+ metadata.gz: 316d398b58aa9a1e98c88cfe16f7f19bf279987832b51b284ecf671d175e9ee1a017b1300ffd3ef3d553ac2ec7b9c4602c19d60a5707bd3b0c37f281d534f0f9
7
+ data.tar.gz: 47cc9a162000c3d4d820c28797594b2fd4c353321f977ab0145c32c523dacff73cc4994bd5478b5b0083b4481de958ffe84b2151da0debab24bf85149903a5fe
@@ -0,0 +1,2 @@
1
+ Gemfile.lock
2
+ log/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in sat.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Fernando Martinez
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,176 @@
1
+ # SAT
2
+
3
+ [Sinatra](https://github.com/sinatra/sinatra) Application Template.
4
+
5
+ ## Features
6
+
7
+ * Sinatra modular application. Inspired by [travis-admin](https://github.com/travis-ci/travis-admin).
8
+ * Per-environment configuration in separated files.
9
+ * Separate routes in controllers.
10
+ * Separated directories for controllers' views.
11
+ * Per-controller helpers.
12
+ * Initializers support.
13
+ * [sinatra-contrib](https://github.com/sinatra/sinatra)
14
+ * [sinatra-partial](https://github.com/yb66/Sinatra-Partial)
15
+ * [i18n](https://github.com/svenfuchs/i18n).
16
+ * [minitest](https://github.com/seattlerb/minitest).
17
+ * [rack-test](https://github.com/brynary/rack-test).
18
+ * [slim](https://github.com/slim-template/slim).
19
+ * [sprockets](https://github.com/sstephenson/sprockets).
20
+ * [thin](https://github.com/macournoyer/thin).
21
+
22
+ ## Install
23
+
24
+ For generating new projects with SAT you can use ```sat gem``` or do a manual install.
25
+
26
+ ### Using the sat gem
27
+
28
+ Simply run:
29
+
30
+ ```bash
31
+ $ gem install sat
32
+ $ sat <new_app_name>
33
+ ```
34
+
35
+ Available options are:
36
+
37
+ * **--template <git_url>**: clone template from the specified repository.
38
+ * **--git <git_url>**: if specified, a new git repository will be setup for your project with its origin set to __<git_url>__.
39
+ * **--no-bundler**: switch to disable calling __bundle install__ after cloning the template.
40
+
41
+
42
+ ### Manual install
43
+
44
+ * Clone the repository:
45
+
46
+ ```bash
47
+ $ git clone git@github.com:patriciomacadden/sat.git
48
+ ```
49
+
50
+ * Create a git repository and change the `origin`:
51
+
52
+ ```bash
53
+ $ git remote rm origin
54
+ $ git remote add origin <YOUR_GIT_REPOSITORY>
55
+ ```
56
+
57
+ * Change the application name (and commit the change):
58
+
59
+ ```bash
60
+ $ APP_NAME=AwesomeApp; for i in `find . -type f | grep -v .git`; do if [ `grep SAT $i | wc -l` != 0 ]; then sed -i '' "s/SAT/$APP_NAME/g" $i; fi; done; git commit -am "SAT => $APP_NAME"
61
+ ```
62
+
63
+ **Note**: Note the `APP_NAME` variable. You should change the application name
64
+ there.
65
+
66
+ ## Creating a new controller
67
+
68
+ Let's create a controller for handling products.
69
+
70
+ * Create `app/controlers/products_controller.rb`
71
+
72
+ ```ruby
73
+ module SAT::Application
74
+ class ProductsController < ApplicationController
75
+ set prefix: '/products'
76
+ # views will be found in app/views/products directory.
77
+ # If you want to change the views directory, use this
78
+ # configuration option.
79
+ # set views_prefix: '/some_other_directory'
80
+
81
+ get '/' do
82
+ # will render app/views/products/index.slim
83
+ # slim :index
84
+ 'Hello World'
85
+ end
86
+ end
87
+ end
88
+ ```
89
+
90
+ * Create `app/helpers/products_helpers.rb`
91
+
92
+ ```ruby
93
+ module SAT::Application
94
+ module ProductsHelpers
95
+ # helper methods
96
+ end
97
+ end
98
+ ```
99
+
100
+ * Create the views directory
101
+
102
+ ```bash
103
+ $ mkdir app/views/products
104
+ ```
105
+
106
+ * Create `spec/controllers/products_controller_spec.rb`
107
+
108
+ ```ruby
109
+ require 'minitest_helper'
110
+
111
+ describe SAT::Application::ProductsController do
112
+ include Rack::Test::Methods
113
+
114
+ def app
115
+ SAT::Application
116
+ end
117
+
118
+ describe 'GET /products' do
119
+ it 'must be ok' do
120
+ get '/products'
121
+ last_response.must_be :ok?
122
+ end
123
+ end
124
+ end
125
+ ```
126
+
127
+ * Create `spec/helpers/products_helpers_spec.rb`
128
+
129
+ ```ruby
130
+ require 'minitest_helper'
131
+
132
+ describe SAT::Application::ProductsHelpers do
133
+ include Rack::Test::Methods
134
+
135
+ def app
136
+ SAT::Application
137
+ end
138
+ end
139
+ ```
140
+
141
+ ## Custom settings
142
+
143
+ Two settings are introduced:
144
+
145
+ * `prefix`: It indicates where to map a controller. **Must** be used in every
146
+ controller.
147
+ * `views_prefix`: It indicates where to find the views. If not set, `prefix` is
148
+ used to find the views.
149
+
150
+ ## Caveats
151
+
152
+ Since the application itself its a `Rack::Builder` that maps the different
153
+ controllers to a particular path, you need to use that builder to use any rack
154
+ middleware.
155
+
156
+ See an example:
157
+
158
+ ```ruby
159
+ # in environment.rb:
160
+
161
+ config.builder.use Rack::Auth::Basic do |username, password|
162
+ username == 'admin' && password == 'secret'
163
+ end
164
+ ```
165
+
166
+ ## Contributing
167
+
168
+ 1. Fork it
169
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
170
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
171
+ 4. Push to the branch (`git push origin my-new-feature`)
172
+ 5. Create new Pull Request
173
+
174
+ ## License
175
+
176
+ See the [LICENSE](https://github.com/patriciomacadden/sat/blob/master/LICENSE).
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/sat ADDED
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/sat/version'
4
+ require 'trollop'
5
+ require 'pathname'
6
+ require 'tmpdir'
7
+
8
+ class App
9
+ @@version = "SAT Command Line Interface " << Sat::VERSION
10
+ @@usage = <<-EOS
11
+ Command line interface for the Sinatra Application Template
12
+
13
+ Usage:
14
+ sat [options] <app_name>
15
+
16
+ options:
17
+ EOS
18
+
19
+ def initialize(args)
20
+ parse_options!
21
+ @name = args.first
22
+ validate!
23
+ @name = @name.downcase
24
+ end
25
+
26
+ def run
27
+ clone_template
28
+ rename
29
+ git_setup if @options[:git]
30
+ install_bundle unless @options[:no_bundler]
31
+
32
+ puts "Done! your new app is in #{@name.downcase}"
33
+ end
34
+
35
+ private
36
+ def parse_options!
37
+ @options = Trollop::options do
38
+ version @@version
39
+ banner @@usage
40
+
41
+ opt :git, 'Git reposotory where new app will be versioned.', type: String
42
+ opt :template, 'Git repository url of template to use.', default: 'https://github.com/patriciomacadden/sat'
43
+ opt :no_bundler, "If specified, after processing template 'bundle install' won't be run"
44
+ end
45
+ end
46
+
47
+ def validate!
48
+ if @name.nil? || @name.empty?
49
+ Trollop::die "You must specify the new application name"
50
+ end
51
+ end
52
+
53
+ def clone_template
54
+ tmp = Pathname.new(Dir.tmpdir).join @name
55
+ exec "Aquiring template application from: #{@options[:template]}", "git clone #{@options[:template]} #{tmp}"
56
+ exec "Deploying template..." do
57
+ FileUtils.mv(tmp.join('template'), @name)
58
+ FileUtils.cd(@name)
59
+ end
60
+ end
61
+
62
+ def rename
63
+ exec("renaming project...") do
64
+ all_files.each {|path| replace_name(path, camelize(@name)) }
65
+ end
66
+ end
67
+
68
+ def git_setup
69
+ exec('Initializing Git...', 'git init')
70
+ exec("Git origin set to #{@options[:git]}", "git remote add origin #{@options[:git]}")
71
+ end
72
+
73
+ def install_bundle
74
+ exec('installing your gem bundle...', 'bundle install')
75
+ end
76
+
77
+ def exec(message, task = nil, &block)
78
+ puts message
79
+ `#{task}` if task
80
+ block.call if block_given?
81
+ end
82
+
83
+ def replace_name(path, name)
84
+ contents = File.read(path)
85
+ template = 'SAT'
86
+ File.write(path, File.read(path).gsub(template, name)) if contents.include? template
87
+ end
88
+
89
+ def all_files
90
+ Dir.glob('**/*').reject {|file| Dir.exists? file }
91
+ end
92
+
93
+ def camelize(str)
94
+ str.split('_').collect{ |s| s.capitalize! }.join
95
+ end
96
+ end
97
+
98
+ App.new(ARGV).run
@@ -0,0 +1,5 @@
1
+ require "sat/version"
2
+
3
+ module Sat
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,3 @@
1
+ module Sat
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'sat/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "sat"
8
+ spec.version = Sat::VERSION
9
+ spec.authors = ["Patricio Mac Adden", "Fernando Martínez"]
10
+ spec.email = ["patriciomacadden@gmail.com"]
11
+ spec.description = "Sinatra Application Template"
12
+ spec.summary = "A sinatra application boilerplate"
13
+ spec.homepage = "https://github.com/patriciomacadden/sat"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = ['sat']
18
+ spec.test_files = []
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+
24
+ spec.add_dependency 'trollop', '~> 2.0'
25
+ end
@@ -0,0 +1,22 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'i18n'
4
+ gem 'sinatra', require: 'sinatra/base'
5
+ # or use master:
6
+ # gem 'sinatra', github: 'sinatra/sinatra', require: 'sinatra/base'
7
+ gem 'sinatra-contrib'
8
+ # or use master:
9
+ # gem 'sinatra-contrib', github: 'sinatra/sinatra-contrib'
10
+ gem 'sinatra-partial'
11
+ gem 'slim'
12
+ gem 'sprockets'
13
+ gem 'thin'
14
+
15
+ group :development, :test do
16
+ gem 'rake'
17
+ end
18
+
19
+ group :test do
20
+ gem 'minitest', require: 'minitest/autorun'
21
+ gem 'rack-test', require: 'rack/test'
22
+ end
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Patricio Mac Adden
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,21 @@
1
+ # SAT
2
+
3
+ TODO: Project description
4
+
5
+ ## Features
6
+
7
+ ## Install
8
+
9
+ ## Usage
10
+
11
+ ## Contributing
12
+
13
+ 1. Fork it
14
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
15
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
16
+ 4. Push to the branch (`git push origin my-new-feature`)
17
+ 5. Create new Pull Request
18
+
19
+ ## License
20
+
21
+ See the [LICENSE](LICENSE).
@@ -0,0 +1,9 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'spec'
5
+ t.pattern = 'spec/**/*_spec.rb'
6
+ end
7
+
8
+ desc 'Run tests'
9
+ task default: :test
File without changes
@@ -0,0 +1,2 @@
1
+ //= require_tree .
2
+ //= require_self
@@ -0,0 +1,4 @@
1
+ /**
2
+ *= require_tree .
3
+ *= require_self
4
+ */
@@ -0,0 +1,34 @@
1
+ module SAT::Application
2
+ class ApplicationController < Sinatra::Base
3
+ set builder: Rack::Builder.new
4
+ set controllers: []
5
+
6
+ helpers SAT::Application::ApplicationHelpers
7
+
8
+ def self.inherited(subclass)
9
+ controllers << subclass unless controllers.include? subclass
10
+ subclass.set :app_file, caller_files.detect { |f| f != app_file }
11
+ super
12
+ end
13
+
14
+ def self.new(*)
15
+ self == ApplicationController ? builder.to_app : super
16
+ end
17
+
18
+ def self.prefix=(value)
19
+ controller = self
20
+ define_singleton_method(:prefix) { value }
21
+ builder.map(value) { run controller }
22
+ end
23
+
24
+ def self.views_prefix=(value)
25
+ define_singleton_method(:views_prefix) { value }
26
+ end
27
+
28
+ def find_template(views, name, engine, &block)
29
+ super(File.join(views, settings.views_prefix), name, engine, &block) if settings.respond_to? :views_prefix
30
+ super(File.join(views, settings.prefix), name, engine, &block) if settings.respond_to? :prefix
31
+ super(File.join(views, 'application'), name, engine, &block)
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,12 @@
1
+ module SAT::Application
2
+ class RootController < ApplicationController
3
+ set prefix: '/'
4
+ set views_prefix: '/root'
5
+
6
+ helpers SAT::Application::RootHelpers
7
+
8
+ get '/' do
9
+ slim :index
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,4 @@
1
+ module SAT::Application
2
+ module ApplicationHelpers
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module SAT::Application
2
+ module RootHelpers
3
+ end
4
+ end
File without changes
@@ -0,0 +1,8 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title SAT
5
+ script src="/javascripts/application.js" type="text/javascript"
6
+ == stylesheet '/stylesheets/application.css'
7
+ body
8
+ == yield
@@ -0,0 +1 @@
1
+ h1 = I18n.t 'views.root.index.title'
@@ -0,0 +1,3 @@
1
+ require File.expand_path(File.join('config', 'application'))
2
+
3
+ run SAT::Application
@@ -0,0 +1,26 @@
1
+ require 'bundler'
2
+ require 'forwardable'
3
+
4
+ Bundler.require :default, ENV['RACK_ENV']
5
+
6
+ module SAT
7
+ module Application
8
+ # require the application helpers
9
+ require File.expand_path(File.join('app', 'helpers', 'application_helpers'))
10
+ # require the application controller
11
+ require File.expand_path(File.join('app', 'controllers', 'application_controller'))
12
+
13
+ extend SingleForwardable
14
+ def_single_delegators ApplicationController, :call, :configure, :new, :settings
15
+
16
+ require File.expand_path(File.join('config', 'environment'))
17
+ Dir[File.join('config', 'environments', '**/*.rb')].each { |file| require File.expand_path(file) }
18
+
19
+ # require the application's initializers
20
+ Dir[File.join('config', 'initializer', '**/*.rb')].each { |file| require File.expand_path(file) }
21
+ # require the rest of the helpers
22
+ Dir[File.join('app', 'helpers', '**/*.rb')].each { |file| require File.expand_path(file) }
23
+ # require the rest of the controllers
24
+ Dir[File.join('app', 'controllers', '**/*.rb')].each { |file| require File.expand_path(file) }
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ SAT::Application.configure do |config|
2
+ # directory structure
3
+ config.set :root, File.expand_path('../..', __FILE__)
4
+ config.set :views, File.join(config.root, 'app', 'views')
5
+
6
+ # i18n
7
+ I18n.load_path = Dir[File.join('config', 'locales', '*.{rb,yml}').to_s]
8
+ I18n.default_locale = 'en'
9
+
10
+ # link header
11
+ config.helpers Sinatra::LinkHeader
12
+
13
+ # logging
14
+ file = File.new("#{config.root}/log/#{config.environment}.log", 'a+')
15
+ file.sync = true
16
+ config.use Rack::CommonLogger, file
17
+
18
+ # method override
19
+ config.enable :method_override
20
+
21
+ # partial
22
+ config.register Sinatra::Partial
23
+ config.set :partial_template_engine, :slim
24
+ config.enable :partial_underscores
25
+
26
+ # sessions
27
+ config.enable :sessions
28
+
29
+ # show exceptions
30
+ config.enable :show_exceptions
31
+
32
+ # sprockets
33
+ config.builder.map '/assets' do
34
+ environment = Sprockets::Environment.new
35
+ environment.append_path File.join(config.root, 'app', 'assets', 'javascripts')
36
+ environment.append_path File.join(config.root, 'app', 'assets', 'stylesheets')
37
+ run environment
38
+ end
39
+
40
+ # template engine
41
+ config.set :slim, layout_engine: :slim, layout: '../layouts/application'.to_sym
42
+ end
@@ -0,0 +1,3 @@
1
+ SAT::Application.configure :development do |config|
2
+ config.register Sinatra::Reloader
3
+ end
@@ -0,0 +1,2 @@
1
+ SAT::Application.configure :production do |config|
2
+ end
@@ -0,0 +1,2 @@
1
+ SAT::Application.configure :test do |config|
2
+ end
File without changes
@@ -0,0 +1,5 @@
1
+ en:
2
+ views:
3
+ root:
4
+ index:
5
+ title: Hello World
File without changes
@@ -0,0 +1,9 @@
1
+ require 'minitest_helper'
2
+
3
+ describe SAT::Application::ApplicationController do
4
+ include Rack::Test::Methods
5
+
6
+ def app
7
+ SAT::Application
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ require 'minitest_helper'
2
+
3
+ describe SAT::Application::RootController do
4
+ include Rack::Test::Methods
5
+
6
+ def app
7
+ SAT::Application
8
+ end
9
+
10
+ describe 'GET /' do
11
+ it 'must be ok' do
12
+ get '/'
13
+ last_response.must_be :ok?
14
+ last_response.body.must_match 'Hello World'
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ require 'minitest_helper'
2
+
3
+ describe SAT::Application::ApplicationHelpers do
4
+ include Rack::Test::Methods
5
+
6
+ def app
7
+ SAT::Application
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'minitest_helper'
2
+
3
+ describe SAT::Application::RootHelpers do
4
+ include Rack::Test::Methods
5
+
6
+ def app
7
+ SAT::Application
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require File.expand_path(File.join('config', 'application'))
File without changes
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sat
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Patricio Mac Adden
8
+ - Fernando Martínez
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-08-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: '1.3'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: '1.3'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: trollop
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '2.0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: '2.0'
56
+ description: Sinatra Application Template
57
+ email:
58
+ - patriciomacadden@gmail.com
59
+ executables:
60
+ - sat
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - .gitignore
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - bin/sat
70
+ - lib/sat.rb
71
+ - lib/sat/version.rb
72
+ - sat.gemspec
73
+ - template/Gemfile
74
+ - template/LICENSE
75
+ - template/README.md
76
+ - template/Rakefile
77
+ - template/app/assets/images/.gitkeep
78
+ - template/app/assets/javascripts/application.js
79
+ - template/app/assets/stylesheets/application.css
80
+ - template/app/controllers/application_controller.rb
81
+ - template/app/controllers/root_controller.rb
82
+ - template/app/helpers/application_helpers.rb
83
+ - template/app/helpers/root_helpers.rb
84
+ - template/app/models/.gitkeep
85
+ - template/app/views/layouts/application.slim
86
+ - template/app/views/root/index.slim
87
+ - template/config.ru
88
+ - template/config/application.rb
89
+ - template/config/environment.rb
90
+ - template/config/environments/development.rb
91
+ - template/config/environments/production.rb
92
+ - template/config/environments/test.rb
93
+ - template/config/initializers/.gitkeep
94
+ - template/config/locales/en.yml
95
+ - template/log/.gitkeep
96
+ - template/spec/controllers/application_controller_spec.rb
97
+ - template/spec/controllers/root_controller_spec.rb
98
+ - template/spec/helpers/application_helpers_spec.rb
99
+ - template/spec/helpers/root_helpers_spec.rb
100
+ - template/spec/minitest_helper.rb
101
+ - template/spec/models/.gitkeep
102
+ homepage: https://github.com/patriciomacadden/sat
103
+ licenses:
104
+ - MIT
105
+ metadata: {}
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 2.0.3
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: A sinatra application boilerplate
126
+ test_files: []