presto-rails 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 (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: []