tidy_reset 0.1.20 → 0.1.21

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: d28a126f7d7b56a27d485c498c618e0cc73c5d91
4
- data.tar.gz: 81867ef490d7ea404691209bdd4d918007454906
3
+ metadata.gz: 73885e339b07c70af26560c7b256e6fd17b4e937
4
+ data.tar.gz: d61e6423158502650ca76258cd6539a15be2b5c4
5
5
  SHA512:
6
- metadata.gz: 8e159ee713c84cafc7621675da4393e8dbb80e50e0f96a1b644dd38450f1b2af8adac2583d07a91a0b569d9845bdfc6d1574c6a70572a9f13ead644ac8a8aebf
7
- data.tar.gz: adcd84e83ed8ba8c765086f2049ae0b42269fa28daaddeb833c4652097dffacb87647cbf8f4db3e754270e1ad7de8fb98ba385c906e7da2e2a8fc7820f1e47de
6
+ metadata.gz: f35fc0fe77197dc0c4e3c0e0dadcfc96e70b4cda7cb03e5703ac5f50d5e996ab6ca29d404a6119d1d2fb359df14067b6800388bf41adcaefeb06bb52fad9d453
7
+ data.tar.gz: ebb8c94763b5bde67a9e83387e2c75ecc27bcd322729c0df3251990302d7ed1df16c004766cd00c611749ebee8abb7859a19e6d496598c3255f92b93d3738cb7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.20
1
+ 0.1.21
@@ -4,10 +4,11 @@ namespace :tidy do
4
4
  # Executes all tasks
5
5
  end
6
6
 
7
+ ACCEPTED_ENVIRONMENTS = ['test', 'sandbox', 'integration']
7
8
  # Prevents mistakes. Raises an error for stages not test or sandbox.
8
9
  # All tidy tasks should :validate as a task dependency.
9
10
  task :validate, [:stage] => [:environment] do |t, args|
10
- if (args.stage && !['test', 'sandbox'].include?(args.stage)) || !['test', 'sandbox'].include?(STAGE)
11
+ if (args.stage && !ACCEPTED_ENVIRONMENTS.include?(args.stage)) || !ACCEPTED_ENVIRONMENTS.include?(STAGE)
11
12
  raise "ERROR: tasks are meant for 'test' and 'sandbox' ONLY."
12
13
  end
13
14
  end
@@ -49,8 +50,8 @@ namespace :tidy do
49
50
  task :db, [:stage] => [:validate] do |t, args|
50
51
  app = TidyReset.app_name(args.stage)
51
52
  TidyReset.execute("heroku run rake tidy:db:purge --app #{app}")
52
- TidyReset.execute("heroku run rake db:migrate --app #{app}")
53
- TidyReset.execute("heroku run rake db:seed --app #{app}")
53
+ TidyReset.execute("heroku run rake tidy:db:migrate --app #{app}")
54
+ TidyReset.execute("heroku run rake tidy:db:seed --app #{app}")
54
55
  end
55
56
 
56
57
  namespace :db do
@@ -58,8 +59,19 @@ namespace :tidy do
58
59
  task :purge => [:validate, :environment] do |t, args|
59
60
  TidyReset.configuration.databases.each do |database|
60
61
  TidyReset.database_purge(database)
62
+ puts "Tidy task done."
61
63
  end
62
64
  end
65
+
66
+ task :migrate => [:validate, :environment] do |t, args|
67
+ Rake::Task['db:migrate'].invoke
68
+ puts "Tidy task done."
69
+ end
70
+
71
+ task :seed => [:validate, :environment] do |t, args|
72
+ Rake::Task['db:seed'].invoke
73
+ puts "Tidy task done."
74
+ end
63
75
  end
64
76
 
65
77
  desc "Clears the Rails.cache on a remote application."
data/lib/tidy_reset.rb CHANGED
@@ -3,6 +3,10 @@ require 'tidy_reset/version'
3
3
  require 'open3'
4
4
 
5
5
  module TidyReset
6
+ class RakeExecuteException < StandardError; end
7
+ class RakeStatusException < StandardError; end
8
+ class RakeCompletedException < StandardError; end
9
+
6
10
  class << self
7
11
  attr_accessor :configuration
8
12
 
@@ -14,38 +18,29 @@ module TidyReset
14
18
  yield(configuration)
15
19
  end
16
20
 
21
+ def process(line)
22
+ puts line
23
+ @execute_error = RakeExecuteException if line =~ /rake aborted/
24
+ @rake_completed = true if line =~ /Tidy task done./
25
+ end
26
+
17
27
  def execute(command)
18
28
  Bundler.with_clean_env do
19
29
  begin
20
30
  tries ||= 3
21
- rake_error = false
22
- db_seed_completed = false
31
+ @execute_error = false
32
+ @rake_completed = false
23
33
  puts "running: #{command}"
34
+
24
35
  Open3.popen3(command) do |stdin, stdout, stderr, wait_thr|
25
- while line = stdout.gets
26
- puts line
27
- rake_error = true if line =~ /rake aborted/
28
- db_seed_completed = true if line =~ /The rake task db:seed finished successfully./
29
- end
30
-
31
- while line = stderr.gets
32
- puts line
33
- rake_error = true if line =~ /rake aborted/
34
- end
35
-
36
- if db_seed_completed == false && command =~ /db:seed/
37
- raise RuntimeError, "ERROR: rake db:seed failed!"
38
- end
39
-
40
- unless wait_thr.value.success?
41
- raise RuntimeError, wait_thr.value
42
- end
36
+ process(line) while line = stdout.gets
37
+ process(line) while line = stderr.gets
43
38
 
44
- if rake_error
45
- raise RuntimeError, "rake aborted"
46
- end
39
+ raise RakeStatusException, "Non-zero Exit Code: #{wait_thr.value}" unless wait_thr.value.success?
40
+ raise RakeCompletedException if (@rake_completed == false && command =~ /heroku run rake tidy:db:/ )
41
+ raise @execute_error if @execute_error
47
42
  end
48
- rescue RuntimeError => e
43
+ rescue => e
49
44
  if (tries -= 1) > 0
50
45
  puts "Failed running command. Waiting 10s before next retry. Error: #{e}"
51
46
  sleep(10)
data/tidy_reset.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: tidy_reset 0.1.20 ruby lib
5
+ # stub: tidy_reset 0.1.21 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "tidy_reset"
9
- s.version = "0.1.20"
9
+ s.version = "0.1.21"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Thinknear"]
14
- s.date = "2014-10-02"
14
+ s.date = "2014-11-06"
15
15
  s.description = "Reset dynos, environment variables, deploys master git branch, and purges the database."
16
16
  s.email = "software@thinknear.com"
17
17
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tidy_reset
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.1.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thinknear
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-02 00:00:00.000000000 Z
11
+ date: 2014-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler