blueberry_rails 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c981cb74af7ec7df5b6f4ebb5872b0ee33d40cf
4
- data.tar.gz: 74037ea0c83d48e8e935603d461edf37de278b84
3
+ metadata.gz: ddc00961037dec35550d81a01209ec15b9236ff8
4
+ data.tar.gz: f9e0c9a4f44f5b0fed5f25fe972bad8e430e543b
5
5
  SHA512:
6
- metadata.gz: ef1f5b0d7a01572c4234f8ccdf7567f514e44716accb871b43aba1780dcd5a5770fdbb63a2fd53882d5fbed8e93ecf6722257468fefc8609fdcfaf1a9652a57f
7
- data.tar.gz: a6f3771a29246d66e6b5e277203b1b178ca567b0bea9ec711129d208333c20785a1ffabeaa712f45c84697adeefc40f078da06c22c5af41e494c9bab7d68efa4
6
+ metadata.gz: 4649cf6aeac71649e3073ce058a57f1f765f611c3ff08062fdb0b336b848c7b880e005688ec1005c5d142e857126c4a4f95fb602dbbb7806f8edc093fa83bcc8
7
+ data.tar.gz: c29f8e2e771a2a1127a65a39266953979acad6ef5a7488ad35b8fa5152d769099d82703b02ae339059410607a9ea010069fe8f1ad457b417a2f5240f3633bebc
data/.gitignore CHANGED
@@ -12,6 +12,7 @@ lib/bundler/man
12
12
  pkg
13
13
  rdoc
14
14
  spec/reports
15
+ test_project
15
16
  test/tmp
16
17
  test/version_tmp
17
18
  tmp
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ script: 'bundle exec rake'
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0.0
6
+ before_install:
7
+ - gem update --system
8
+
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Blueberry Rails
1
+ # Blueberry Rails [![Build Status](https://secure.travis-ci.org/blueberryapps/blueberry_rails.png?branch=master)](http://travis-ci.org/blueberryapps/blueberry_rails)
2
2
 
3
3
  A Rails application template used at Blueberry Apps.
4
4
 
data/Rakefile CHANGED
@@ -1 +1,9 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/setup'
2
+ require 'bundler/gem_tasks'
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new do |t|
6
+ t.test_files = Dir.glob('spec/**/*_spec.rb')
7
+ end
8
+
9
+ task(default: :test)
@@ -6,7 +6,7 @@ require 'blueberry_rails/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'blueberry_rails'
8
8
  spec.version = BlueberryRails::VERSION
9
- spec.authors = ['Blueberryapps']
9
+ spec.authors = ['BlueberryApps']
10
10
  spec.email = ['jzajpt@blueberry.cz']
11
11
  spec.description = %q{A Rails app template by BlueberryApps }
12
12
  spec.summary = %q{A Rails app template by BlueberryApps}
@@ -16,10 +16,15 @@ Gem::Specification.new do |spec|
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.3'
22
- spec.add_development_dependency 'rake'
21
+ spec.add_dependency 'bundler', '~> 1.3'
23
22
  spec.add_dependency 'rails', '4.0.0'
23
+
24
+ spec.add_development_dependency 'rake'
25
+ spec.add_development_dependency 'minitest', '~> 4.7'
26
+
27
+ spec.required_ruby_version = '>= 1.9.2'
28
+
24
29
  end
25
30
 
@@ -82,8 +82,9 @@ module BlueberryRails
82
82
  copy_file 'factories_spec.rb', 'spec/models/factories_spec.rb'
83
83
  end
84
84
 
85
- def enable_factory_girl_syntax
85
+ def setup_rspec_support_files
86
86
  copy_file 'factory_girl_syntax.rb', 'spec/support/factory_girl.rb'
87
+ copy_file 'database_cleaner_setup.rb', 'spec/support/databse_cleaner.rb'
87
88
  end
88
89
 
89
90
  def init_guard
@@ -143,12 +144,21 @@ module BlueberryRails
143
144
  end
144
145
 
145
146
  def setup_capistrano
146
- bundle_command 'exec capify .'
147
- remove_file 'config/deploy.rb'
147
+ template 'Capfile', 'Capfile'
148
148
  template 'deploy.rb.erb', 'config/deploy.rb'
149
149
  template 'deploy_production.rb.erb', 'config/deploy/production.rb'
150
150
  template 'deploy_staging.rb.erb', 'config/deploy/staging.rb'
151
- run 'mkdir config/deploy'
151
+ template 'capistrano_dotenv.cap', 'lib/capistrano/tasks/dotenv.cap'
152
+ end
153
+
154
+ def replace_users_factory
155
+ remove_file 'spec/factories/users.rb'
156
+ template 'users_factory.rb', 'spec/factories/users.rb'
157
+ end
158
+
159
+ def replace_root_controller_spec
160
+ remove_file 'spec/controllers/root_controller_spec.rb'
161
+ template 'root_controller_spec.rb', 'spec/controllers/root_controller_spec.rb'
152
162
  end
153
163
 
154
164
  def setup_gitignore
@@ -34,6 +34,7 @@ module BlueberryRails
34
34
  invoke :configure_app
35
35
  invoke :remove_routes_comment_lines
36
36
  invoke :setup_gems
37
+ invoke :fix_specs
37
38
  invoke :setup_git
38
39
  end
39
40
 
@@ -64,7 +65,7 @@ module BlueberryRails
64
65
  say 'Setting up the test environment'
65
66
  build :generate_rspec
66
67
  build :configure_rspec
67
- build :enable_factory_girl_syntax
68
+ build :setup_rspec_support_files
68
69
  build :test_factories_first
69
70
  build :init_guard
70
71
  end
@@ -101,6 +102,11 @@ module BlueberryRails
101
102
  build :setup_capistrano
102
103
  end
103
104
 
105
+ def fix_specs
106
+ build :replace_users_factory
107
+ build :replace_root_controller_spec
108
+ end
109
+
104
110
  def setup_git
105
111
  say 'Initializing git'
106
112
  build :setup_gitignore
@@ -1,3 +1,3 @@
1
1
  module BlueberryRails
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,60 @@
1
+ require 'minitest/autorun'
2
+ require 'fileutils'
3
+
4
+ class BlueberryRailsTest < Minitest::Unit::TestCase
5
+
6
+ def setup
7
+ FileUtils.rm_rf 'test_project'
8
+ cmd 'dropdb test_project_development'
9
+ cmd 'dropdb test_project_test'
10
+
11
+ %w[RUBYOPT BUNDLE_PATH BUNDLE_BIN_PATH BUNDLE_GEMFILE].each do |key|
12
+ set_env key, nil
13
+ end
14
+ end
15
+
16
+ def teardown
17
+ restore_env
18
+ end
19
+
20
+ def test_rake_runs_cleanly_first
21
+ create_project 'test_project'
22
+ assert run_rake('test_project')
23
+ end
24
+
25
+ protected
26
+
27
+ def create_project(project_name)
28
+ bin = File.expand_path(File.join('..', 'bin', 'blueberry_rails'), File.dirname(__FILE__))
29
+ cmd "#{bin} #{project_name}"
30
+ end
31
+
32
+ def run_rake(project_name)
33
+ Dir.chdir(project_name) do
34
+ cmd 'bundle exec rake db:create'
35
+ cmd 'bundle exec rake db:migrate'
36
+ cmd 'bundle exec rake db:test:prepare'
37
+ cmd('bundle exec rake')
38
+ end
39
+ end
40
+
41
+ def cmd(command)
42
+ system "#{command}"
43
+ end
44
+
45
+ def original_env
46
+ @original_env ||= {}
47
+ end
48
+
49
+ def set_env(key, value)
50
+ original_env[key] = ENV.delete(key)
51
+ ENV[key] = value
52
+ end
53
+
54
+ def restore_env
55
+ original_env.each do |key, val|
56
+ ENV[key] = val
57
+ end
58
+ end
59
+
60
+ end
data/templates/Capfile ADDED
@@ -0,0 +1,8 @@
1
+ require 'capistrano/setup'
2
+ require 'capistrano/deploy'
3
+ require 'capistrano/bundler'
4
+ require 'capistrano/rbenv'
5
+ require 'capistrano/rails/assets'
6
+ require 'capistrano/rails/migrations'
7
+
8
+ Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
@@ -16,7 +16,10 @@ gem 'uglifier', '>= 1.3.0'
16
16
 
17
17
  group :development do
18
18
  gem 'better_errors'
19
- gem 'capistrano'
19
+ gem 'capistrano', '~> 3.0.0'
20
+ gem 'capistrano-bundler'
21
+ gem 'capistrano-rails'
22
+ gem 'capistrano-rbenv', github: 'capistrano/rbenv'
20
23
  gem 'guard-rails'
21
24
  gem 'mailcatcher'
22
25
  end
@@ -0,0 +1,24 @@
1
+ namespace :deploy do
2
+
3
+ after :updating, 'dotenv:symlink'
4
+
5
+ end
6
+
7
+ namespace :dotenv do
8
+
9
+ desc "Symlink .env file"
10
+ task :symlink do
11
+ on roles(:app) do
12
+ target = release_path.join('.env')
13
+ source = shared_path.join('config/dotenv')
14
+ unless test "[ -L #{target} ]"
15
+ if test "[ -f #{target} ]"
16
+ execute :rm, target
17
+ end
18
+ execute :ln, '-s', source, target
19
+ end
20
+ end
21
+ end
22
+
23
+ end
24
+
@@ -0,0 +1,23 @@
1
+ RSpec.configure do |config|
2
+
3
+ config.before(:suite) do
4
+ DatabaseCleaner.clean_with(:truncation)
5
+ end
6
+
7
+ config.before(:each) do
8
+ DatabaseCleaner.strategy = :transaction
9
+ end
10
+
11
+ config.before(:each, :js => true) do
12
+ DatabaseCleaner.strategy = :truncation
13
+ end
14
+
15
+ config.before(:each) do
16
+ DatabaseCleaner.start
17
+ end
18
+
19
+ config.after(:each) do
20
+ DatabaseCleaner.clean
21
+ end
22
+
23
+ end
@@ -1,40 +1,28 @@
1
- require 'bundler/capistrano'
2
- set :bundle_without, [:darwin, :test]
3
-
4
- set :stages, %w(staging production)
5
- require 'capistrano/ext/multistage'
6
-
7
1
  set :application, '<%= app_name %>'
8
- set :repository, 'git@github.com:blueberryapps/<%= app_name %>.git'
2
+ set :repo_url, 'git@github.com:blueberryapps/<%= app_name %>.git'
9
3
  set :branch, 'master'
4
+ set :scm, :git
5
+
6
+ set :format, :pretty
7
+ set :log_level, :debug
10
8
 
11
- default_run_options[:pty] = true
12
- ssh_options[:forward_agent] = true
9
+ set :linked_files, %w(config/database.yml)
10
+ # set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}
13
11
 
14
- set :use_sudo, false
15
- set :deploy_via, :remote_cache
16
- set :keep_releases, 3
17
- set :group_writable, false
18
- ssh_options[:forward_agent] = true
12
+ set :rbenv_type, :system
13
+ set :rbenv_ruby, `git show #{fetch(:branch)}:.ruby-version`
19
14
 
20
- after 'deploy:restart', 'deploy:cleanup'
21
- after 'deploy:update_code', 'deploy:symlink_shared'
22
- load 'deploy/assets'
15
+ set :keep_releases, 5
23
16
 
24
17
  namespace :deploy do
25
18
 
26
- task :start do ; end
27
- task :stop do ; end
28
- task :restart, :roles => :app, :except => { :no_release => true } do
29
- run "#{try_sudo} touch #{File.join(current_path, 'tmp', 'restart.txt')}"
19
+ desc 'Restart application'
20
+ task :restart do
21
+ on roles(:app), in: :sequence, wait: 5 do
22
+ execute :touch, release_path.join('tmp/restart.txt')
23
+ end
30
24
  end
31
25
 
32
- desc 'Create symbolic links for all shared and platform-specific resources.'
33
- task :symlink_shared, roles: [:app] do
34
- run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
35
- run "ln -nfs #{shared_path}/system #{release_path}/public/system"
36
- run "ln -nfs #{shared_path}/config/dotenv #{release_path}/.env"
37
- end
26
+ after :finishing, 'deploy:cleanup'
38
27
 
39
28
  end
40
-
@@ -1,5 +1,7 @@
1
- server 'REPLACE_ME', :app, :web, :db, primary: true
2
- set :rails_env, 'production'
3
- set :user, '<%= app_name %>_com'
4
- set :deploy_to, '/var/www/<%= app_name %>_com'
1
+ set :stage, :production
2
+ set :rails_env, 'production'
3
+ set :deploy_to, '/var/www/<%= app_name %>_com'
5
4
 
5
+ server 'REPLACE_ME',
6
+ user: '<%= app_name %>',
7
+ roles: %w(web app db)
@@ -1,5 +1,8 @@
1
- server 'REPLACE_ME', :app, :web, :db, primary: true
2
- set :rails_env, 'staging'
3
- set :user, '<%= app_name %>_webapps_cz'
4
- set :deploy_to, '/var/www/<%= app_name %>_webpapps_cz'
1
+ set :stage, :staging
2
+ set :deploy_to, '/var/www/<%= app_name %>_webapps_cz'
3
+ set :rails_env, 'staging'
4
+
5
+ server 'REPLACE_ME',
6
+ user: '<%= app_name %>_webapps_cz',
7
+ roles: %w(web app db)
5
8
 
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe RootController do
4
+
5
+ describe "GET 'index'" do
6
+ it "returns http success" do
7
+ get 'index'
8
+ expect(response).to be_success
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :user do
3
+ sequence(:email) { |n| "joe#{n}@example.com" }
4
+ password 'joesthebest'
5
+ end
6
+ end
metadata CHANGED
@@ -1,57 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blueberry_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Blueberryapps
7
+ - BlueberryApps
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-10 00:00:00.000000000 Z
11
+ date: 2013-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
- type: :development
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 4.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 4.0.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ">="
45
+ - - '>='
32
46
  - !ruby/object:Gem::Version
33
47
  version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ">="
52
+ - - '>='
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rails
56
+ name: minitest
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - '='
59
+ - - ~>
46
60
  - !ruby/object:Gem::Version
47
- version: 4.0.0
48
- type: :runtime
61
+ version: '4.7'
62
+ type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - '='
66
+ - - ~>
53
67
  - !ruby/object:Gem::Version
54
- version: 4.0.0
68
+ version: '4.7'
55
69
  description: 'A Rails app template by BlueberryApps '
56
70
  email:
57
71
  - jzajpt@blueberry.cz
@@ -60,7 +74,8 @@ executables:
60
74
  extensions: []
61
75
  extra_rdoc_files: []
62
76
  files:
63
- - ".gitignore"
77
+ - .gitignore
78
+ - .travis.yml
64
79
  - Gemfile
65
80
  - LICENSE.txt
66
81
  - README.md
@@ -72,10 +87,14 @@ files:
72
87
  - lib/blueberry_rails/app_builder.rb
73
88
  - lib/blueberry_rails/generators/app_generator.rb
74
89
  - lib/blueberry_rails/version.rb
90
+ - spec/blueberry_rails_spec.rb
91
+ - templates/Capfile
75
92
  - templates/Gemfile_custom.erb
76
93
  - templates/README.md.erb
77
94
  - templates/_flashes.html.slim
95
+ - templates/capistrano_dotenv.cap
78
96
  - templates/database.yml.erb
97
+ - templates/database_cleaner_setup.rb
79
98
  - templates/deploy.rb.erb
80
99
  - templates/deploy_production.rb.erb
81
100
  - templates/deploy_staging.rb.erb
@@ -84,8 +103,10 @@ files:
84
103
  - templates/factory_girl_syntax.rb
85
104
  - templates/gitignore
86
105
  - templates/layout.html.slim.erb
106
+ - templates/root_controller_spec.rb
87
107
  - templates/secret_token.rb.erb
88
108
  - templates/spec_helper.rb
109
+ - templates/users_factory.rb
89
110
  homepage: https://github.com/blueberryapps/blueberry_rails
90
111
  licenses:
91
112
  - MIT
@@ -96,18 +117,19 @@ require_paths:
96
117
  - lib
97
118
  required_ruby_version: !ruby/object:Gem::Requirement
98
119
  requirements:
99
- - - ">="
120
+ - - '>='
100
121
  - !ruby/object:Gem::Version
101
- version: '0'
122
+ version: 1.9.2
102
123
  required_rubygems_version: !ruby/object:Gem::Requirement
103
124
  requirements:
104
- - - ">="
125
+ - - '>='
105
126
  - !ruby/object:Gem::Version
106
127
  version: '0'
107
128
  requirements: []
108
129
  rubyforge_project:
109
- rubygems_version: 2.0.3
130
+ rubygems_version: 2.1.10
110
131
  signing_key:
111
132
  specification_version: 4
112
133
  summary: A Rails app template by BlueberryApps
113
- test_files: []
134
+ test_files:
135
+ - spec/blueberry_rails_spec.rb