blueberry_rails 0.1.2 → 0.2.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.
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