presto-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/bin/presto +4 -0
  3. data/lib/presto.rb +15 -0
  4. data/templates/flatiron.rb +100 -0
  5. metadata +63 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b32f9981e8bb3b2cb353bab960d2a4bf4e5ae21c
4
+ data.tar.gz: 50cf56218a7d87eafd32a0b8d5f2bad8d4835705
5
+ SHA512:
6
+ metadata.gz: 816cbe80c4d0bc8ead62173bc64a6e7ad57f5d1ec62171e8837c6eb5b63a72798e37943d4161e771df6cb577493993b8fea3e99d21208db906fe4f5b7c2b2072
7
+ data.tar.gz: 891fe8e0f0016e1513532403fb00e72bf3dd575fe522eeb3564d8f1e8efcfef910cc59e5c50dfa71556c28c08d01710910067604800e5e4588311d01dabff3b7
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'presto'
4
+ Presto.run
@@ -0,0 +1,15 @@
1
+ class Presto
2
+
3
+ PRESTO_ROOT = File.expand_path('../', File.dirname(__FILE__))
4
+ def self.run
5
+ if ARGV[0].nil? || ['-h','--help'].include?(ARGV[0])
6
+ puts <<-HELP
7
+ Usage:
8
+ presto <app_name>
9
+ HELP
10
+ else
11
+ system("rails new #{ARGV[0]} -Tm #{PRESTO_ROOT}/templates/flatiron.rb")
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,100 @@
1
+ # add development and testing gems
2
+ gem_group :test, :development do
3
+ gem 'rspec-rails'
4
+ gem 'capybara'
5
+ gem 'selenium-webdriver'
6
+ gem 'better_errors'
7
+ gem 'binding_of_caller'
8
+ gem 'terminal-notifier-guard'
9
+ gem 'factory_girl_rails'
10
+ gem 'simplecov'
11
+ gem 'database_cleaner'
12
+ gem 'guard', '>=2.1.0'
13
+ gem 'guard-rspec'
14
+ end
15
+
16
+ system("bundle > /dev/null")
17
+ # setup RSpec: rails g rspec:install
18
+ generate(:"rspec:install")
19
+
20
+ # edit spec/spec_helper.rb
21
+ File.open("spec/spec_helper.rb", "r+") do |f|
22
+ out = ""
23
+ f.each do |line|
24
+ if line =~ /require 'rspec\/autorun'/
25
+ # add SimpleCov
26
+ out << line
27
+ out << <<-CODE.strip_heredoc
28
+ require 'simplecov'
29
+ SimpleCov.start 'rails'
30
+ CODE
31
+ elsif line =~ /config\.fixture_path/
32
+ # comment out fixtures
33
+ out << " ##{line[1..-1]}"
34
+ elsif line =~ /config\.use_transactional_fixtures/
35
+ # set transactional fixtures to false
36
+ out << line.sub("true", "false")
37
+ elsif line =~ /RSpec\.configure do/
38
+ # add Database Cleaner
39
+ out << line
40
+ out << <<-CODE.gsub(/^ {6}/, '')
41
+ config.before(:suite) do
42
+ DatabaseCleaner.strategy = :transaction
43
+ DatabaseCleaner.clean_with(:truncation)
44
+ end
45
+
46
+ config.before(:each) do
47
+ DatabaseCleaner.start
48
+ end
49
+
50
+ config.after(:each) do
51
+ DatabaseCleaner.clean
52
+ end
53
+ CODE
54
+ else
55
+ out << line
56
+ end
57
+ end
58
+ f.pos = 0
59
+ f.print out.chomp
60
+ f.truncate(f.pos)
61
+ end
62
+
63
+ # make spec/features directory
64
+ run('mkdir -p spec/features')
65
+
66
+ # create feature_helper.rb
67
+ file 'spec/feature_helper.rb', <<-CODE.strip_heredoc.chomp
68
+ require 'spec_helper'
69
+ require 'capybara/rails'
70
+ CODE
71
+
72
+ # setup Guardfile
73
+ file 'Guardfile', %q(
74
+ guard 'rails' do
75
+ watch('Gemfile.lock')
76
+ watch(%r{^(config|lib)/.*})
77
+ end
78
+
79
+
80
+ guard :rspec do
81
+ watch(%r{^spec/.+_spec\.rb$})
82
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
83
+ watch('spec/spec_helper.rb') { "spec" }
84
+
85
+ # Rails example
86
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
87
+ watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
88
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
89
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
90
+ watch('config/routes.rb') { "spec/routing" }
91
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
92
+
93
+ # Capybara features specs
94
+ watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
95
+
96
+ # Turnip features and steps
97
+ watch(%r{^spec/acceptance/(.+)\.feature$})
98
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
99
+ end
100
+ ).strip.gsub(/^ {2}/, '')
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: presto-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Logan Hasson
8
+ - Josh Scaglione
9
+ - Manuel Neuhauser
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-11-06 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rails
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 4.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - '>='
27
+ - !ruby/object:Gem::Version
28
+ version: 4.0.0
29
+ description: Sets up a flatiron school stack rails application.
30
+ email: teamevalruby@gmail.com
31
+ executables:
32
+ - presto
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - bin/presto
37
+ - lib/presto.rb
38
+ - templates/flatiron.rb
39
+ homepage: http://rubygems.org/gems/presto-rails
40
+ licenses:
41
+ - MIT
42
+ metadata: {}
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubyforge_project:
59
+ rubygems_version: 2.0.6
60
+ signing_key:
61
+ specification_version: 4
62
+ summary: presto-rails gem
63
+ test_files: []