straptible 0.1.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. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE.md +22 -0
  5. data/README.md +31 -0
  6. data/Rakefile +6 -0
  7. data/bin/straptible +26 -0
  8. data/lib/straptible/rails/builders/api.rb +42 -0
  9. data/lib/straptible/rails/builders/base.rb +41 -0
  10. data/lib/straptible/rails/generators/api.rb +16 -0
  11. data/lib/straptible/rails/generators/base.rb +42 -0
  12. data/lib/straptible/rails/templates/Gemfile.api +15 -0
  13. data/lib/straptible/rails/templates/README.md.tt +10 -0
  14. data/lib/straptible/rails/templates/Rakefile.tt +6 -0
  15. data/lib/straptible/rails/templates/config.api/application.rb.tt +12 -0
  16. data/lib/straptible/rails/templates/config.api/database.yml.tt +15 -0
  17. data/lib/straptible/rails/templates/config.api/environment.rb.tt +5 -0
  18. data/lib/straptible/rails/templates/config.api/environments/development.rb.tt +12 -0
  19. data/lib/straptible/rails/templates/config.api/environments/production.rb.tt +18 -0
  20. data/lib/straptible/rails/templates/config.api/environments/test.rb.tt +17 -0
  21. data/lib/straptible/rails/templates/config.api/initializers/filter_parameter_logging.rb +1 -0
  22. data/lib/straptible/rails/templates/config.api/initializers/rabl.rb +4 -0
  23. data/lib/straptible/rails/templates/config.api/initializers/secret_token.rb.tt +3 -0
  24. data/lib/straptible/rails/templates/config.api/initializers/session_store.rb.tt +1 -0
  25. data/lib/straptible/rails/templates/config.api/initializers/wrap_parameters.rb +3 -0
  26. data/lib/straptible/rails/templates/config.api/routes.rb.tt +2 -0
  27. data/lib/straptible/rails/templates/favicon.ico +0 -0
  28. data/lib/straptible/rails/templates/gitignore +4 -0
  29. data/lib/straptible/rails/templates/icon-72.png +0 -0
  30. data/lib/straptible/rails/templates/initializers/filter_parameter_logging.rb +1 -0
  31. data/lib/straptible/rails/templates/spec_helper.rb +18 -0
  32. data/lib/straptible/version.rb +3 -0
  33. data/lib/straptible.rb +4 -0
  34. data/spec/integration/api_spec.rb +71 -0
  35. data/spec/spec_helper.rb +10 -0
  36. data/straptible.gemspec +30 -0
  37. metadata +166 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3accf78857a747632066bc02d7afff4b2f7dc0a5
4
+ data.tar.gz: 1888116854daed1a9a73d68333058491ebfa3d3a
5
+ SHA512:
6
+ metadata.gz: 45bc96efb44e90afdf239bc6edfaa0e1e6187e4898f0db1ffc52b9ad3d6e7e19f2f061a058008c89bee76ea24a97237fa316cee2f02c47da269a534f709bfc37
7
+ data.tar.gz: 6d2e2cb465444997e631636ebd6c5b7ebb55671c66f0384df36766a127dec6acbe4cf223f0552d8508411aa2f0d0afc116aabac2efa4d0de1286baba172c8086
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rubocop', github: 'bbatsov/rubocop'
4
+
5
+ # Specify your gem's dependencies in straptible.gemspec
6
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Aptible, Inc.
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.
data/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # ![](lib/straptible/rails/templates/icon-72.png) Straptible
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/straptible.png)](https://rubygems.org/gems/straptible)
4
+ [![Build Status](https://secure.travis-ci.org/aptible/straptible.png?branch=master)](http://travis-ci.org/aptible/straptible)
5
+
6
+ A tool for bootstrapping new applications, document repositories, etc. according to Aptible's hyperopinionated best practices.
7
+
8
+
9
+ ## Usage
10
+
11
+ gem install straptible
12
+
13
+ Then, to create a new project, first choose your flavor:
14
+
15
+ | Flavor Name | Description |
16
+ | ---------:| ------- |
17
+ | `webapp` (*coming soon*) | Rails web app |
18
+ | `api` | Rails API — similar to `webapp`, but tailored and stripped down for a JSON API |
19
+ | `gem` (*coming soon*) | Ruby gem |
20
+ | `docs` (*coming soon*) | Document repository |
21
+
22
+ Then, run:
23
+
24
+ straptible <flavor> <path> [options...]
25
+
26
+
27
+ ## Copyright and License
28
+
29
+ MIT License, see [LICENSE](LICENSE.md) for details.
30
+
31
+ Copyright (c) 2013 [Aptible](https://www.aptible.com), [Frank Macreery](https://github.com/fancyremarker), and contributors.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ require 'aptible/tasks'
4
+ Aptible::Tasks.load_tasks
5
+
6
+ task default: :ci
data/bin/straptible ADDED
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'active_support/inflector'
4
+
5
+ def require_lib(name)
6
+ path = File.join('..', 'lib', *(name.split('::').map(&:underscore)))
7
+ require_relative path
8
+ end
9
+
10
+ def usage(dest = $stdout)
11
+ dest.puts 'Usage: straptible <flavor> <path> [options...]'
12
+ end
13
+
14
+ flavor = ARGV.shift
15
+ case flavor
16
+ when 'api'
17
+ require_lib 'Straptible::Rails::Generators::Api'
18
+ Straptible::Rails::Generators::Api.start
19
+ when nil
20
+ usage($stderr)
21
+ exit 1
22
+ else
23
+ $stderr.puts "Unknown flavor: #{flavor}"
24
+ usage($stderr)
25
+ exit 1
26
+ end
@@ -0,0 +1,42 @@
1
+ require_relative 'base'
2
+
3
+ module Straptible
4
+ module Rails
5
+ module Builders
6
+ class Api < Base
7
+ def gemfile
8
+ copy_file 'Gemfile.api', 'Gemfile'
9
+ end
10
+
11
+ def database_yml
12
+ # No-op (handled by :config step)
13
+ end
14
+
15
+ def config
16
+ directory 'config.api', 'config'
17
+ end
18
+
19
+ def leftovers
20
+ restructure_app
21
+ remove_error_pages
22
+ super
23
+ end
24
+
25
+ def restructure_app
26
+ remove_dir 'app/assets'
27
+ remove_dir 'app/controllers/concerns'
28
+ remove_dir 'app/helpers'
29
+ remove_dir 'app/mailers'
30
+ remove_dir 'app/views/layouts'
31
+ empty_directory 'app/decorators'
32
+ end
33
+
34
+ def remove_error_pages
35
+ remove_file 'public/404.html'
36
+ remove_file 'public/422.html'
37
+ remove_file 'public/500.html'
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,41 @@
1
+ require 'rails/generators'
2
+
3
+ module Straptible
4
+ module Rails
5
+ module Builders
6
+ class Base < ::Rails::AppBuilder
7
+ def readme
8
+ template 'README.md.tt'
9
+ end
10
+
11
+ def rakefile
12
+ template 'Rakefile.tt'
13
+ end
14
+
15
+ def vendor
16
+ # No-op (don't create vendor/ directory)
17
+ end
18
+
19
+ def db
20
+ empty_directory_with_keep_file 'db'
21
+ end
22
+
23
+ def leftovers
24
+ rspec
25
+ icons
26
+ end
27
+
28
+ def rspec
29
+ create_file '.rspec', '--color --format documentation'
30
+ copy_file 'spec_helper.rb', 'spec/spec_helper.rb'
31
+ end
32
+
33
+ def icons
34
+ remove_file 'public/favicon.ico'
35
+ copy_file 'favicon.ico', 'public/favicon.ico'
36
+ copy_file 'icon-72.png', 'public/icon-72.png'
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,16 @@
1
+ require_relative 'base'
2
+ require_relative '../builders/api'
3
+
4
+ module Straptible
5
+ module Rails
6
+ module Generators
7
+ class Api < Base
8
+ protected
9
+
10
+ def get_builder_class
11
+ Straptible::Rails::Builders::Api
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,42 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/rails/app/app_generator'
3
+
4
+ require_relative '../builders/base'
5
+
6
+ module Straptible
7
+ module Rails
8
+ module Generators
9
+ class Base < ::Rails::Generators::AppGenerator
10
+ # Override default Rails generator options
11
+ # REVIEW: Is there a less monkey-patchy way to do this?
12
+ class_option :database, type: :string,
13
+ aliases: '-d',
14
+ default: 'postgresql'
15
+
16
+ class_option :skip_test_unit, type: :boolean,
17
+ aliases: '-T',
18
+ default: true
19
+
20
+ class_option :skip_javascript, type: :boolean,
21
+ aliases: '-J',
22
+ default: true
23
+
24
+ def self.start
25
+ tmpl_path = File.join('..', 'templates')
26
+ tmpl_root = File.expand_path(tmpl_path, File.dirname(__FILE__))
27
+ source_root tmpl_root
28
+ source_paths << tmpl_root
29
+ source_paths << ::Rails::Generators::AppGenerator.source_root
30
+
31
+ super
32
+ end
33
+
34
+ protected
35
+
36
+ def get_builder_class
37
+ Straptible::Rails::Builders::Base
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails'
4
+ gem 'pg'
5
+ gem 'draper'
6
+ gem 'rabl'
7
+
8
+ group :development, :test do
9
+ gem 'annotate'
10
+ gem 'aptible-tasks'
11
+ gem 'rubocop', github: 'bbatsov/rubocop'
12
+ gem 'rspec'
13
+ gem 'rspec-rails'
14
+ gem 'pry'
15
+ end
@@ -0,0 +1,10 @@
1
+ # ![](public/icon-72.png) <%= app_const_base %>
2
+
3
+ [![Build Status](https://secure.travis-ci.org/aptible/<%= app_name %>.png?branch=master)](http://travis-ci.org/aptible/<%= app_name %>)
4
+
5
+ A tool for bootstrapping new applications, document repositories, etc. according to Aptible's hyperopinionated best practices.
6
+
7
+
8
+ ## Copyright
9
+
10
+ Copyright (c) 2013 [Aptible](https://www.aptible.com). All rights reserved.
@@ -0,0 +1,6 @@
1
+ require File.expand_path('../config/application', __FILE__)
2
+
3
+ <%= app_const %>.load_tasks
4
+
5
+ # Load shared Aptible Rake tasks
6
+ Aptible::Tasks.load_tasks
@@ -0,0 +1,12 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'active_record/railtie'
4
+ require 'action_controller/railtie'
5
+
6
+ Bundler.require(:default, Rails.env)
7
+
8
+ module <%= app_const_base %>
9
+ class Application < Rails::Application
10
+ config.assets.enabled = false
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ development:
2
+ adapter: postgresql
3
+ encoding: unicode
4
+ database: <%= app_name %>_development
5
+ pool: 5
6
+ username: aptible
7
+ password:
8
+
9
+ test:
10
+ adapter: postgresql
11
+ encoding: unicode
12
+ database: <%= app_name %>_test
13
+ pool: 5
14
+ username: aptible
15
+ password:
@@ -0,0 +1,5 @@
1
+ # Load the Rails application.
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the Rails application.
5
+ <%= app_const %>.initialize!
@@ -0,0 +1,12 @@
1
+ <%= app_const %>.configure do
2
+ config.cache_classes = false
3
+
4
+ config.eager_load = false
5
+
6
+ config.consider_all_requests_local = true
7
+ config.action_controller.perform_caching = false
8
+
9
+ config.active_support.deprecation = :log
10
+
11
+ config.active_record.migration_error = :page_load
12
+ end
@@ -0,0 +1,18 @@
1
+ <%= app_const %>.configure do
2
+ config.cache_classes = true
3
+
4
+ config.eager_load = true
5
+
6
+ config.consider_all_requests_local = false
7
+ config.action_controller.perform_caching = true
8
+
9
+ config.serve_static_assets = false
10
+
11
+ config.log_level = :info
12
+
13
+ config.i18n.fallbacks = true
14
+
15
+ config.active_support.deprecation = :notify
16
+
17
+ config.log_formatter = ::Logger::Formatter.new
18
+ end
@@ -0,0 +1,17 @@
1
+ <%= app_const %>.configure do
2
+ config.cache_classes = true
3
+
4
+ config.eager_load = false
5
+
6
+ config.serve_static_assets = true
7
+ config.static_cache_control = 'public, max-age=3600'
8
+
9
+ config.consider_all_requests_local = true
10
+ config.action_controller.perform_caching = false
11
+
12
+ config.action_dispatch.show_exceptions = false
13
+
14
+ config.action_controller.allow_forgery_protection = false
15
+
16
+ config.active_support.deprecation = :stderr
17
+ end
@@ -0,0 +1 @@
1
+ Rails.application.config.filter_parameters += [:password]
@@ -0,0 +1,4 @@
1
+ Rabl.configure do |config|
2
+ config.include_json_root = true
3
+ config.include_child_root = false
4
+ end
@@ -0,0 +1,3 @@
1
+ <%= app_const %>.config.secret_key_base =
2
+ '<%= SecureRandom.hex(32) %>' +
3
+ '<%= SecureRandom.hex(32) %>'
@@ -0,0 +1 @@
1
+ <%= app_const %>.config.session_store :cookie_store
@@ -0,0 +1,3 @@
1
+ ActiveSupport.on_load(:action_controller) do
2
+ wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
3
+ end
@@ -0,0 +1,2 @@
1
+ <%= app_const %>.routes.draw do
2
+ end
@@ -0,0 +1,4 @@
1
+ /.bundle
2
+
3
+ /log/*.log
4
+ /tmp
@@ -0,0 +1 @@
1
+ Rails.application.config.filter_parameters += [:password]
@@ -0,0 +1,18 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rspec/rails'
4
+ require 'rspec/autorun'
5
+
6
+ Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
7
+
8
+ ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
9
+
10
+ RSpec.configure do |config|
11
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
12
+
13
+ config.use_transactional_fixtures = true
14
+
15
+ config.infer_base_class_for_anonymous_controllers = false
16
+
17
+ config.order = 'random'
18
+ end
@@ -0,0 +1,3 @@
1
+ module Straptible
2
+ VERSION = '0.1.0'
3
+ end
data/lib/straptible.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'straptible/version'
2
+
3
+ module Straptible
4
+ end
@@ -0,0 +1,71 @@
1
+ describe 'straptible api' do
2
+ before :all do
3
+ rel_tmp = '../../tmp/spec'
4
+ @tmpdir = File.expand_path(rel_tmp, File.dirname(__FILE__))
5
+ FileUtils.mkdir_p @tmpdir
6
+ FileUtils.rm_rf File.join(@tmpdir, 'foobar')
7
+
8
+ rel_straptible = '../../bin/straptible'
9
+ @straptible = File.expand_path(rel_straptible, File.dirname(__FILE__))
10
+ end
11
+
12
+ context 'with no additional arguments' do
13
+ before :all do
14
+ `#{@straptible} api #{File.join(@tmpdir, 'foobar')} -B`
15
+ end
16
+
17
+ after :all do
18
+ FileUtils.rm_r File.join(@tmpdir, 'foobar')
19
+ end
20
+
21
+ it 'does not include a test/ directory' do
22
+ File.exist?(File.join(@tmpdir, 'foobar', 'test')).should be_false
23
+ end
24
+
25
+ it 'includes a spec/ directory' do
26
+ File.exist?(File.join(@tmpdir, 'foobar', 'spec')).should be_true
27
+ end
28
+
29
+ it 'does not include a README.rdoc' do
30
+ File.exist?(File.join(@tmpdir, 'foobar', 'README.rdoc')).should be_false
31
+ end
32
+
33
+ it 'includes an appropriate README.md' do
34
+ readme = File.join(@tmpdir, 'foobar', 'README.md')
35
+ File.exist?(readme).should be_true
36
+ File.read(readme).should match /\#.*public\/icon-72.png.*Foobar/
37
+ end
38
+
39
+ it 'does not include HTML error pages' do
40
+ Dir.glob('public/*.html').should be_empty
41
+ end
42
+
43
+ it 'does not include app/assets/ or app/mailers/' do
44
+ app = File.join(@tmpdir, 'foobar', 'app')
45
+ File.exist?(File.join(app, 'assets')).should be_false
46
+ File.exist?(File.join(app, 'mailers')).should be_false
47
+ end
48
+
49
+ it 'includes app/decorators/' do
50
+ app = File.join(@tmpdir, 'foobar', 'app')
51
+ File.exist?(File.join(app, 'decorators')).should be_true
52
+ end
53
+ end
54
+
55
+ context 'executing bundle install' do
56
+ before :all do
57
+ # TODO: Figure out how to do this offline
58
+ `#{@straptible} api #{File.join(@tmpdir, 'foobar')}`
59
+ end
60
+
61
+ after :all do
62
+ FileUtils.rm_rf File.join(@tmpdir, 'foobar')
63
+ end
64
+
65
+ it 'passes Rubocop muster' do
66
+ `cd #{File.join(@tmpdir, 'foobar')} && rake rubocop`
67
+ $CHILD_STATUS.exitstatus.should == 0
68
+ end
69
+
70
+ end
71
+ end
@@ -0,0 +1,10 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+
4
+ # Load shared spec files
5
+ Dir["#{File.dirname(__FILE__)}/shared/**/*.rb"].each do |file|
6
+ require file
7
+ end
8
+
9
+ # Require library up front
10
+ require 'straptible'
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'English'
6
+ require 'straptible/version'
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.name = 'straptible'
10
+ spec.version = Straptible::VERSION
11
+ spec.authors = ['Frank Macreery']
12
+ spec.email = ['frank@macreery.com']
13
+ spec.description = %q{A tool for bootstrapping new Aptible projects}
14
+ spec.summary = %q{A tool for bootstrapping new Aptible projects}
15
+ spec.homepage = 'https://github.com/aptible/straptible'
16
+ spec.license = 'MIT'
17
+
18
+ spec.files = `git ls-files`.split($RS)
19
+ spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(/^spec\//)
21
+ spec.require_paths = ['lib']
22
+
23
+ spec.add_dependency 'rails'
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.3'
26
+ spec.add_development_dependency 'aptible-tasks', '~> 0.1.1'
27
+ spec.add_development_dependency 'rake'
28
+ spec.add_development_dependency 'rspec'
29
+ spec.add_development_dependency 'pry'
30
+ end
metadata ADDED
@@ -0,0 +1,166 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: straptible
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Frank Macreery
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-11-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: aptible-tasks
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: A tool for bootstrapping new Aptible projects
98
+ email:
99
+ - frank@macreery.com
100
+ executables:
101
+ - straptible
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - .gitignore
106
+ - Gemfile
107
+ - LICENSE.md
108
+ - README.md
109
+ - Rakefile
110
+ - bin/straptible
111
+ - lib/straptible.rb
112
+ - lib/straptible/rails/builders/api.rb
113
+ - lib/straptible/rails/builders/base.rb
114
+ - lib/straptible/rails/generators/api.rb
115
+ - lib/straptible/rails/generators/base.rb
116
+ - lib/straptible/rails/templates/Gemfile.api
117
+ - lib/straptible/rails/templates/README.md.tt
118
+ - lib/straptible/rails/templates/Rakefile.tt
119
+ - lib/straptible/rails/templates/config.api/application.rb.tt
120
+ - lib/straptible/rails/templates/config.api/database.yml.tt
121
+ - lib/straptible/rails/templates/config.api/environment.rb.tt
122
+ - lib/straptible/rails/templates/config.api/environments/development.rb.tt
123
+ - lib/straptible/rails/templates/config.api/environments/production.rb.tt
124
+ - lib/straptible/rails/templates/config.api/environments/test.rb.tt
125
+ - lib/straptible/rails/templates/config.api/initializers/filter_parameter_logging.rb
126
+ - lib/straptible/rails/templates/config.api/initializers/rabl.rb
127
+ - lib/straptible/rails/templates/config.api/initializers/secret_token.rb.tt
128
+ - lib/straptible/rails/templates/config.api/initializers/session_store.rb.tt
129
+ - lib/straptible/rails/templates/config.api/initializers/wrap_parameters.rb
130
+ - lib/straptible/rails/templates/config.api/routes.rb.tt
131
+ - lib/straptible/rails/templates/favicon.ico
132
+ - lib/straptible/rails/templates/gitignore
133
+ - lib/straptible/rails/templates/icon-72.png
134
+ - lib/straptible/rails/templates/initializers/filter_parameter_logging.rb
135
+ - lib/straptible/rails/templates/spec_helper.rb
136
+ - lib/straptible/version.rb
137
+ - spec/integration/api_spec.rb
138
+ - spec/spec_helper.rb
139
+ - straptible.gemspec
140
+ homepage: https://github.com/aptible/straptible
141
+ licenses:
142
+ - MIT
143
+ metadata: {}
144
+ post_install_message:
145
+ rdoc_options: []
146
+ require_paths:
147
+ - lib
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ required_rubygems_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ requirements: []
159
+ rubyforge_project:
160
+ rubygems_version: 2.0.0
161
+ signing_key:
162
+ specification_version: 4
163
+ summary: A tool for bootstrapping new Aptible projects
164
+ test_files:
165
+ - spec/integration/api_spec.rb
166
+ - spec/spec_helper.rb