tidy_reset 0.1.22 → 0.1.23
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 +4 -4
- data/.rspec +1 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +23 -0
- data/Rakefile +6 -7
- data/VERSION +1 -1
- data/lib/tidy_reset.rb +17 -6
- data/lib/tidy_reset/application_manager.rb +41 -0
- data/lib/tidy_reset/configuration.rb +2 -1
- data/{test/helper.rb → spec/spec_helper.rb} +8 -13
- data/spec/tidy_reset/application_manager_spec.rb +69 -0
- data/spec/tidy_reset/tidy_reset_spec.rb +82 -0
- data/tidy_reset.gemspec +14 -5
- metadata +35 -4
- data/test/test_tidy_reset.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dfac396bf01cba613e7d43a88f111983eca7786
|
4
|
+
data.tar.gz: 7bf9c15e7f6ad4bd1937eba79ebb26e358583f01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5d0052b3e2ccda5a0516daafec4b6b989a96d7e926b8f2cee692b4c60ab34c73708831d7e8a1da2055179b78da7f03c7b36e03e56c52c09c52752c7d3a77f8e
|
7
|
+
data.tar.gz: 6b82ccbbd804e68549f06239eb1bbb97c3f35c0019c8794cfdd232bdc6ca4d0ed47ec067d9bc3d406d566abeee5d3571db0960d0de105f1abfd7776787c941b5
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
CHANGED
@@ -5,10 +5,12 @@ source "http://rubygems.org"
|
|
5
5
|
|
6
6
|
gem "bundler", "~> 1.0"
|
7
7
|
gem "activerecord", "~> 4.0.5"
|
8
|
+
gem "platform-api"
|
8
9
|
|
9
10
|
# Add dependencies to develop your gem here.
|
10
11
|
# Include everything needed to run rake, tests, features, etc.
|
11
12
|
group :development do
|
13
|
+
gem "rspec", "~> 2.8.0"
|
12
14
|
gem "shoulda", ">= 0"
|
13
15
|
gem "rdoc", "~> 3.12"
|
14
16
|
gem "jeweler", "~> 2.0.1"
|
data/Gemfile.lock
CHANGED
@@ -21,7 +21,10 @@ GEM
|
|
21
21
|
builder (3.1.4)
|
22
22
|
descendants_tracker (0.0.4)
|
23
23
|
thread_safe (~> 0.3, >= 0.3.1)
|
24
|
+
diff-lcs (1.1.3)
|
24
25
|
docile (1.1.5)
|
26
|
+
erubis (2.7.0)
|
27
|
+
excon (0.41.0)
|
25
28
|
faraday (0.9.0)
|
26
29
|
multipart-post (>= 1.2, < 3)
|
27
30
|
git (1.2.7)
|
@@ -34,6 +37,12 @@ GEM
|
|
34
37
|
nokogiri (~> 1.6.0)
|
35
38
|
oauth2
|
36
39
|
hashie (3.0.0)
|
40
|
+
heroics (0.0.12)
|
41
|
+
erubis (~> 2.7.0)
|
42
|
+
excon
|
43
|
+
moneta
|
44
|
+
multi_json (>= 1.9.2)
|
45
|
+
netrc
|
37
46
|
highline (1.6.21)
|
38
47
|
i18n (0.6.9)
|
39
48
|
jeweler (2.0.1)
|
@@ -49,9 +58,11 @@ GEM
|
|
49
58
|
jwt (1.0.0)
|
50
59
|
mini_portile (0.6.0)
|
51
60
|
minitest (4.7.5)
|
61
|
+
moneta (0.8.0)
|
52
62
|
multi_json (1.10.1)
|
53
63
|
multi_xml (0.5.5)
|
54
64
|
multipart-post (2.0.0)
|
65
|
+
netrc (0.8.0)
|
55
66
|
nokogiri (1.6.2.1)
|
56
67
|
mini_portile (= 0.6.0)
|
57
68
|
oauth2 (0.9.4)
|
@@ -60,10 +71,20 @@ GEM
|
|
60
71
|
multi_json (~> 1.3)
|
61
72
|
multi_xml (~> 0.5)
|
62
73
|
rack (~> 1.2)
|
74
|
+
platform-api (0.2.0)
|
75
|
+
heroics (~> 0.0.10)
|
63
76
|
rack (1.5.2)
|
64
77
|
rake (10.3.2)
|
65
78
|
rdoc (3.12.2)
|
66
79
|
json (~> 1.4)
|
80
|
+
rspec (2.8.0)
|
81
|
+
rspec-core (~> 2.8.0)
|
82
|
+
rspec-expectations (~> 2.8.0)
|
83
|
+
rspec-mocks (~> 2.8.0)
|
84
|
+
rspec-core (2.8.0)
|
85
|
+
rspec-expectations (2.8.0)
|
86
|
+
diff-lcs (~> 1.1.2)
|
87
|
+
rspec-mocks (2.8.0)
|
67
88
|
shoulda (3.5.0)
|
68
89
|
shoulda-context (~> 1.0, >= 1.0.1)
|
69
90
|
shoulda-matchers (>= 1.4.1, < 3.0)
|
@@ -85,6 +106,8 @@ DEPENDENCIES
|
|
85
106
|
activerecord (~> 4.0.5)
|
86
107
|
bundler (~> 1.0)
|
87
108
|
jeweler (~> 2.0.1)
|
109
|
+
platform-api
|
88
110
|
rdoc (~> 3.12)
|
111
|
+
rspec (~> 2.8.0)
|
89
112
|
shoulda
|
90
113
|
simplecov
|
data/Rakefile
CHANGED
@@ -23,20 +23,19 @@ Jeweler::Tasks.new do |gem|
|
|
23
23
|
end
|
24
24
|
Jeweler::RubygemsDotOrgTasks.new
|
25
25
|
|
26
|
-
require '
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
test.verbose = true
|
26
|
+
require 'rspec/core'
|
27
|
+
require 'rspec/core/rake_task'
|
28
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
29
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
31
30
|
end
|
32
31
|
|
33
32
|
desc "Code coverage detail"
|
34
33
|
task :simplecov do
|
35
34
|
ENV['COVERAGE'] = "true"
|
36
|
-
Rake::Task['
|
35
|
+
Rake::Task['spec'].execute
|
37
36
|
end
|
38
37
|
|
39
|
-
task :default => :
|
38
|
+
task :default => :spec
|
40
39
|
|
41
40
|
require 'rdoc/task'
|
42
41
|
Rake::RDocTask.new do |rdoc|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.23
|
data/lib/tidy_reset.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
require 'tidy_reset/configuration'
|
2
2
|
require 'tidy_reset/version'
|
3
|
+
require 'tidy_reset/application_manager'
|
4
|
+
require 'yaml'
|
3
5
|
require 'open3'
|
4
6
|
|
5
7
|
module TidyReset
|
6
8
|
class RakeExecuteException < StandardError; end
|
7
9
|
class RakeStatusException < StandardError; end
|
8
10
|
class RakeCompletedException < StandardError; end
|
11
|
+
class NoTokenException < StandardError; end
|
9
12
|
|
10
13
|
class << self
|
11
14
|
attr_accessor :configuration
|
@@ -65,15 +68,23 @@ module TidyReset
|
|
65
68
|
end
|
66
69
|
|
67
70
|
def app_stop(stage)
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
+
application_name = app_name(stage)
|
72
|
+
application_manager = create_application_manager(application_name)
|
73
|
+
application_manager.enable_maintenance_mode
|
74
|
+
application_manager.shutdown_all_dynos
|
71
75
|
end
|
72
76
|
|
73
77
|
def app_start(stage)
|
74
|
-
|
75
|
-
|
76
|
-
|
78
|
+
application_name = app_name(stage)
|
79
|
+
application_manager = create_application_manager(application_name)
|
80
|
+
application_manager.scale_dynos_to_configuration(dyno_config[stage])
|
81
|
+
application_manager.disable_maintenance_mode
|
82
|
+
end
|
83
|
+
|
84
|
+
def create_application_manager(application_name)
|
85
|
+
token = configuration.token
|
86
|
+
raise NoTokenException unless token
|
87
|
+
self::ApplicationManager.new(name: application_name, token: token)
|
77
88
|
end
|
78
89
|
|
79
90
|
def master_connection_from_db_config(db_config)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'platform-api'
|
2
|
+
|
3
|
+
module TidyReset
|
4
|
+
class ApplicationManager
|
5
|
+
attr_accessor :name
|
6
|
+
|
7
|
+
def initialize(options)
|
8
|
+
@name = options.fetch(:name)
|
9
|
+
token = options.fetch(:token)
|
10
|
+
@heroku = PlatformAPI.connect_oauth(token)
|
11
|
+
end
|
12
|
+
|
13
|
+
def enable_maintenance_mode
|
14
|
+
@heroku.app.update(@name, { maintenance: true })
|
15
|
+
end
|
16
|
+
|
17
|
+
def disable_maintenance_mode
|
18
|
+
@heroku.app.update(@name, { maintenance: false })
|
19
|
+
end
|
20
|
+
|
21
|
+
def shutdown_all_dynos
|
22
|
+
live_formations = formation_list.select { |f| Integer(f['quantity']) > 0 }
|
23
|
+
live_formations.each do |formation|
|
24
|
+
@heroku.formation.update(@name, formation['id'], { quantity: 0 })
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def scale_dynos_to_configuration(dyno_config)
|
29
|
+
formation_list.keep_if do |formation|
|
30
|
+
dyno_config.keys.include?(formation['type'])
|
31
|
+
end.each do |formation|
|
32
|
+
@heroku.formation.update(@name, formation['id'], { quantity: dyno_config[formation['type']] } )
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
def formation_list
|
38
|
+
@heroku.formation.list(@name)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
module TidyReset
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :databases, :app, :database_encoding
|
3
|
+
attr_accessor :databases, :app, :database_encoding, :token
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
@databases = []
|
7
7
|
@database_encoding = 'utf8'
|
8
8
|
@app = ''
|
9
|
+
@token = nil
|
9
10
|
end
|
10
11
|
end
|
11
12
|
end
|
@@ -14,21 +14,16 @@ end
|
|
14
14
|
ENV["COVERAGE"] && SimpleCov.start do
|
15
15
|
add_filter "/.rvm/"
|
16
16
|
end
|
17
|
-
require 'rubygems'
|
18
|
-
require 'bundler'
|
19
|
-
begin
|
20
|
-
Bundler.setup(:default, :development)
|
21
|
-
rescue Bundler::BundlerError => e
|
22
|
-
$stderr.puts e.message
|
23
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
24
|
-
exit e.status_code
|
25
|
-
end
|
26
|
-
require 'test/unit'
|
27
|
-
require 'shoulda'
|
28
|
-
|
29
17
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
30
18
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
19
|
+
|
20
|
+
require 'rspec'
|
31
21
|
require 'tidy_reset'
|
32
22
|
|
33
|
-
|
23
|
+
# Requires supporting files with custom matchers and macros, etc,
|
24
|
+
# in ./support/ and its subdirectories.
|
25
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
26
|
+
|
27
|
+
RSpec.configure do |config|
|
28
|
+
|
34
29
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "ApplicationManager" do
|
4
|
+
before do
|
5
|
+
@formation1 = {"command"=>"LIBRATO_AUTORUN=1 bundle exec sidekiq -c 1 -q venice", "created_at"=>"2014-09-17T21:52:05Z", "id"=>"f9d3d59b-324f-4b97-927f-c66c23abcc95", "type"=>"venice_worker", "quantity"=>0, "size"=>"1X", "updated_at"=>"2014-11-17T21:22:38Z"}
|
6
|
+
@formation2 = {"command"=>"LIBRATO_AUTORUN=1 bundle exec sidekiq -c 1 -q redshift_engineering", "created_at"=>"2014-08-26T17:28:01Z", "id"=>"ca48884d-cb04-41ec-b34b-347d542542e2", "type"=>"redshift_engineering_worker", "quantity"=>1, "size"=>"1X", "updated_at"=>"2014-10-29T18:21:59Z"}
|
7
|
+
@formation_list = [@formation1, @formation2]
|
8
|
+
|
9
|
+
@heroku_app = double('PlatformAPI::App')
|
10
|
+
|
11
|
+
@heroku_formation = double('PlatformAPI::Formation')
|
12
|
+
@heroku_formation.stub(:list).and_return(@formation_list)
|
13
|
+
|
14
|
+
@heroku_client = double('PlatformAPI::Client')
|
15
|
+
@heroku_client.stub(:app).and_return(@heroku_app)
|
16
|
+
@heroku_client.stub(:dyno).and_return(@heroku_dyno)
|
17
|
+
@heroku_client.stub(:formation).and_return(@heroku_formation)
|
18
|
+
PlatformAPI.stub(:connect_oauth).and_return(@heroku_client)
|
19
|
+
@subject = TidyReset::ApplicationManager.new(name: 'application-name', token: 'fake-token')
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#enable_maintenance_mode" do
|
23
|
+
it "should use the heroku client to update the app's maintenance mode status to true" do
|
24
|
+
@heroku_app.should_receive(:update).with(@subject.name, {maintenance: true})
|
25
|
+
@subject.enable_maintenance_mode
|
26
|
+
end
|
27
|
+
it "should return the response of the heroku client" do
|
28
|
+
@heroku_app.stub(:update).and_return({})
|
29
|
+
@subject.enable_maintenance_mode.should == {}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#disable_maintenance_mode" do
|
34
|
+
it "should use the heroku client to update the app's maintenance mode status to false" do
|
35
|
+
@heroku_app.should_receive(:update).with(@subject.name, {maintenance: false})
|
36
|
+
@subject.disable_maintenance_mode
|
37
|
+
end
|
38
|
+
it "should return the response of the heroku client" do
|
39
|
+
@heroku_app.stub(:update).and_return({})
|
40
|
+
@subject.disable_maintenance_mode.should == {}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "#shutdown_all_dynos" do
|
45
|
+
it "should use the heroku client to update the quantity of live formations to 0" do
|
46
|
+
@heroku_formation.should_not_receive(:update).with(@subject.name, @formation1['id'], { quantity: 0 })
|
47
|
+
@heroku_formation.should_receive(:update).with(@subject.name, @formation2['id'], { quantity: 0 })
|
48
|
+
@subject.shutdown_all_dynos
|
49
|
+
end
|
50
|
+
it "should return the shutdown formations" do
|
51
|
+
@heroku_formation.stub(:update)
|
52
|
+
@subject.shutdown_all_dynos.should == [@formation2]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#scale_dynos_to_configuration" do
|
57
|
+
it "should update the formation by type and quantity for each configuration passed in" do
|
58
|
+
dyno_config = { 'redshift_engineering_worker' => 2 }
|
59
|
+
@heroku_formation.should_receive(:update).with(@subject.name, @formation2['id'], { quantity: 2 })
|
60
|
+
@subject.scale_dynos_to_configuration(dyno_config)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should no update formations that do not match the dyno type passed in" do
|
64
|
+
dyno_config = { 'redshift_engineering_worker' => 2 }
|
65
|
+
@heroku_formation.should_not_receive(:update).with(@subject.name, @formation1['id'], { quantity: 2 })
|
66
|
+
@subject.scale_dynos_to_configuration(dyno_config)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "TidyReset" do
|
4
|
+
describe "#app_stop" do
|
5
|
+
before do
|
6
|
+
@application_manager = double(TidyReset::ApplicationManager)
|
7
|
+
@application_manager.stub(:enable_maintenance_mode)
|
8
|
+
@application_manager.stub(:shutdown_all_dynos)
|
9
|
+
TidyReset.stub(:create_application_manager).and_return(@application_manager)
|
10
|
+
TidyReset.configure do |config|
|
11
|
+
config.app = 'application'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
it "should generate the applicaion name from the stage parameter" do
|
15
|
+
TidyReset.should_receive(:app_name).with('test')
|
16
|
+
TidyReset.app_stop('test')
|
17
|
+
end
|
18
|
+
it "should create a new application manager" do
|
19
|
+
TidyReset.should_receive(:create_application_manager).with('application-test')
|
20
|
+
TidyReset.app_stop('test')
|
21
|
+
end
|
22
|
+
it "should have the application manager set the app to maintenance mode" do
|
23
|
+
@application_manager.should_receive(:enable_maintenance_mode)
|
24
|
+
TidyReset.app_stop('test')
|
25
|
+
end
|
26
|
+
it "should have the application manager shut down all dynos" do
|
27
|
+
@application_manager.should_receive(:shutdown_all_dynos)
|
28
|
+
TidyReset.app_stop('test')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#app_start" do
|
33
|
+
before do
|
34
|
+
@application_manager = double(TidyReset::ApplicationManager)
|
35
|
+
@application_manager.stub(:disable_maintenance_mode)
|
36
|
+
@application_manager.stub(:scale_dynos_to_configuration)
|
37
|
+
TidyReset.stub(:create_application_manager).and_return(@application_manager)
|
38
|
+
dyno_config = <<-EOF
|
39
|
+
production:
|
40
|
+
web: 100
|
41
|
+
clock: 1
|
42
|
+
redshift: 2
|
43
|
+
test:
|
44
|
+
web: 2
|
45
|
+
clock: 1
|
46
|
+
generic_worker: 0
|
47
|
+
EOF
|
48
|
+
TidyReset.stub(:dyno_config).and_return(YAML.load(dyno_config))
|
49
|
+
TidyReset.configure do |config|
|
50
|
+
config.app = 'application'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
it "should create a new application manager" do
|
54
|
+
TidyReset.should_receive(:create_application_manager).with('application-test')
|
55
|
+
TidyReset.app_start('test')
|
56
|
+
end
|
57
|
+
it "should have the application manager scale up the configured dynos filtered by stage" do
|
58
|
+
configuration = {"web"=>2, "clock"=>1, "generic_worker"=>0}
|
59
|
+
@application_manager.should_receive(:scale_dynos_to_configuration).with(configuration)
|
60
|
+
TidyReset.app_start('test')
|
61
|
+
end
|
62
|
+
it "should have the application manager disable maintenance mode" do
|
63
|
+
@application_manager.should_receive(:disable_maintenance_mode)
|
64
|
+
TidyReset.app_start('test')
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "#create_application_manager" do
|
69
|
+
it "should return an instance of an application manager" do
|
70
|
+
TidyReset.configure do |config|
|
71
|
+
config.token = 'token'
|
72
|
+
end
|
73
|
+
TidyReset.create_application_manager('application-name').should be_a TidyReset::ApplicationManager
|
74
|
+
end
|
75
|
+
it "should require an oauth_token to be set on the configuration" do
|
76
|
+
TidyReset.configure do |config|
|
77
|
+
config.token = nil
|
78
|
+
end
|
79
|
+
expect { TidyReset.create_application_manager('application_manager') }.to raise_error(TidyReset::NoTokenException)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
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.
|
5
|
+
# stub: tidy_reset 0.1.23 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "tidy_reset"
|
9
|
-
s.version = "0.1.
|
9
|
+
s.version = "0.1.23"
|
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-11-
|
14
|
+
s.date = "2014-11-25"
|
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 = [
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
]
|
21
21
|
s.files = [
|
22
22
|
".document",
|
23
|
+
".rspec",
|
23
24
|
"Gemfile",
|
24
25
|
"Gemfile.lock",
|
25
26
|
"LICENSE.txt",
|
@@ -27,11 +28,13 @@ Gem::Specification.new do |s|
|
|
27
28
|
"Rakefile",
|
28
29
|
"VERSION",
|
29
30
|
"lib/tidy_reset.rb",
|
31
|
+
"lib/tidy_reset/application_manager.rb",
|
30
32
|
"lib/tidy_reset/configuration.rb",
|
31
33
|
"lib/tidy_reset/tasks/tidy.rake",
|
32
34
|
"lib/tidy_reset/version.rb",
|
33
|
-
"
|
34
|
-
"
|
35
|
+
"spec/spec_helper.rb",
|
36
|
+
"spec/tidy_reset/application_manager_spec.rb",
|
37
|
+
"spec/tidy_reset/tidy_reset_spec.rb",
|
35
38
|
"tidy_reset.gemspec"
|
36
39
|
]
|
37
40
|
s.homepage = "http://github.com/ThinkNear/tidy"
|
@@ -44,6 +47,8 @@ Gem::Specification.new do |s|
|
|
44
47
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
48
|
s.add_runtime_dependency(%q<bundler>, ["~> 1.0"])
|
46
49
|
s.add_runtime_dependency(%q<activerecord>, ["~> 4.0.5"])
|
50
|
+
s.add_runtime_dependency(%q<platform-api>, [">= 0"])
|
51
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
47
52
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
48
53
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
49
54
|
s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
|
@@ -51,6 +56,8 @@ Gem::Specification.new do |s|
|
|
51
56
|
else
|
52
57
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
53
58
|
s.add_dependency(%q<activerecord>, ["~> 4.0.5"])
|
59
|
+
s.add_dependency(%q<platform-api>, [">= 0"])
|
60
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
54
61
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
55
62
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
56
63
|
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
@@ -59,6 +66,8 @@ Gem::Specification.new do |s|
|
|
59
66
|
else
|
60
67
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
61
68
|
s.add_dependency(%q<activerecord>, ["~> 4.0.5"])
|
69
|
+
s.add_dependency(%q<platform-api>, [">= 0"])
|
70
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
62
71
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
63
72
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
64
73
|
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
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.
|
4
|
+
version: 0.1.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thinknear
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 4.0.5
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: platform-api
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.8.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.8.0
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: shoulda
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,6 +132,7 @@ extra_rdoc_files:
|
|
104
132
|
- README.md
|
105
133
|
files:
|
106
134
|
- ".document"
|
135
|
+
- ".rspec"
|
107
136
|
- Gemfile
|
108
137
|
- Gemfile.lock
|
109
138
|
- LICENSE.txt
|
@@ -111,11 +140,13 @@ files:
|
|
111
140
|
- Rakefile
|
112
141
|
- VERSION
|
113
142
|
- lib/tidy_reset.rb
|
143
|
+
- lib/tidy_reset/application_manager.rb
|
114
144
|
- lib/tidy_reset/configuration.rb
|
115
145
|
- lib/tidy_reset/tasks/tidy.rake
|
116
146
|
- lib/tidy_reset/version.rb
|
117
|
-
-
|
118
|
-
-
|
147
|
+
- spec/spec_helper.rb
|
148
|
+
- spec/tidy_reset/application_manager_spec.rb
|
149
|
+
- spec/tidy_reset/tidy_reset_spec.rb
|
119
150
|
- tidy_reset.gemspec
|
120
151
|
homepage: http://github.com/ThinkNear/tidy
|
121
152
|
licenses: []
|