straptible 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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