maintenance_mode 0.0.2
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 +7 -0
- data/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +103 -0
- data/Rakefile +9 -0
- data/lib/maintenance_mode.rb +48 -0
- data/lib/maintenance_mode/file_persistence.rb +28 -0
- data/lib/maintenance_mode/null_persistence.rb +13 -0
- data/lib/maintenance_mode/rake_tasks.rb +26 -0
- data/lib/maintenance_mode/version.rb +3 -0
- data/lib/tasks/maintenance_mode.rake +0 -0
- data/maintenance_mode.gemspec +23 -0
- data/test/maintenance_mode/file_persistence_test.rb +79 -0
- data/test/maintenance_mode/null_persistence_test.rb +37 -0
- data/test/maintenance_mode_test.rb +85 -0
- data/test/rake_task_test_env/.gitignore +1 -0
- data/test/rake_task_test_env/Gemfile +4 -0
- data/test/rake_task_test_env/Gemfile.lock +16 -0
- data/test/rake_task_test_env/Rakefile +5 -0
- data/test/rake_task_test_env/current_state.rb +5 -0
- data/test/rake_task_test_env/maintenance_mode_config.rb +5 -0
- data/test/test_helper.rb +4 -0
- metadata +120 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2896353d3d28297a736ece0c8db187ea37fd1902
|
4
|
+
data.tar.gz: 6186d898dc13994dfdf53e2253a53327847d6b57
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2fe2567bda7e6d787e7143841c9cefd451ae04eebae92d48bbc3333f84bfc8c83f459bb695cfaad5c767d697bdc52452288e6c9df23552c2fed120f79cb19c81
|
7
|
+
data.tar.gz: de1b522889974b205e9fb66048101a45052d7a7b6a37257d431a9713524894ccd5f60aefb86b86e0c0d0de1cfc3b015af31f766ac3b41005ec8c8528e9ff27b3
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 GoodGuide
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
# MaintenanceMode
|
2
|
+
|
3
|
+
This provides a simple interface to a "maintenance mode" toggle with optional
|
4
|
+
maintenance message. It's not specific to maintenance mode, really, and could be
|
5
|
+
used whenever a similar switch is needed.
|
6
|
+
|
7
|
+
## Usage
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
MaintenanceMode.enable
|
11
|
+
MaintenanceMode.as_json # => { "enabled": true, "message": null }
|
12
|
+
MaintenanceMode.enable "we'll be back soon"
|
13
|
+
MaintenanceMode.as_json # => { "enabled": true, "message": "we'll be back soon" }
|
14
|
+
MaintenanceMode.enabled? # => true
|
15
|
+
MaintenanceMode.message # => "we'll be back soon"
|
16
|
+
MaintenanceMode.disable
|
17
|
+
MaintenanceMode.enabled? # => false
|
18
|
+
```
|
19
|
+
|
20
|
+
There are also rake tasks to toggle MaintenanceMode:
|
21
|
+
|
22
|
+
```shell
|
23
|
+
rake maintenance:enable
|
24
|
+
rake maintenance:enable MESSAGE="Oh Noes!"
|
25
|
+
rake 'maintenance:enable[Oh Noes!]' # also works
|
26
|
+
rake maintenance:disable
|
27
|
+
```
|
28
|
+
|
29
|
+
To get these tasks, you'll have to add this line to your `Rakefile`:
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
# Rakefile
|
33
|
+
require 'maintenance_mode/rake_tasks'
|
34
|
+
```
|
35
|
+
|
36
|
+
## Configuration
|
37
|
+
|
38
|
+
The persistence mechanism is configurable. Currently, the only one which ships with this gem just uses a file on disk.
|
39
|
+
|
40
|
+
Without configuration, the library will act on memory only (which of course means rake tasks have no effect on a server process). To configure the file-based persistence, use the following:
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
MaintenanceMode.persist_with :file, Rails.root.join('config/maintenance-mode')
|
44
|
+
# equivalent to
|
45
|
+
MaintenanceMode.persistence = MaintenanceMode::FilePersistence.new(
|
46
|
+
Rails.root.join('config/maintenance-mode'))
|
47
|
+
```
|
48
|
+
|
49
|
+
n.b. The argument to `FilePersistence` must be a `Pathname` instead of merely a string.
|
50
|
+
|
51
|
+
### Custom logic
|
52
|
+
|
53
|
+
You can set `MaintenanceMode.persistence` to any object which responds to the
|
54
|
+
correct interface.
|
55
|
+
|
56
|
+
- `enable(message=nil)`
|
57
|
+
- `disable`
|
58
|
+
- `enabled?`
|
59
|
+
- `message`
|
60
|
+
|
61
|
+
Here's an example using Redis for persistence (this is untested; just for example):
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
class MyRedisMaintenancePersistence
|
65
|
+
NULL = '__null__'
|
66
|
+
|
67
|
+
def initialize(redis, key)
|
68
|
+
@redis = redis
|
69
|
+
@key = key
|
70
|
+
end
|
71
|
+
|
72
|
+
def enable(message=NULL)
|
73
|
+
@redis.set @key, message
|
74
|
+
end
|
75
|
+
|
76
|
+
def disable
|
77
|
+
@redis.del @key
|
78
|
+
end
|
79
|
+
|
80
|
+
def enabled?
|
81
|
+
!!@redis.get(@key)
|
82
|
+
end
|
83
|
+
|
84
|
+
def message
|
85
|
+
v = @redis.get(@key)
|
86
|
+
v == NULL ? nil : v
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
r = MyRedisMaintenancePersistence.new(Redis.new, 'maintenance-mode')
|
91
|
+
MaintenanceMode.persistence = r
|
92
|
+
|
93
|
+
# If writing as a separately distributed library, you could have your code
|
94
|
+
# register itself:
|
95
|
+
MaintenanceMode.register_persistence_method :redis, MyRedisMaintenancePersistence
|
96
|
+
|
97
|
+
# then people can use it via:
|
98
|
+
MaintenanceMode.persist_with :redis, Redis.new, 'maintenance-mode'
|
99
|
+
```
|
100
|
+
|
101
|
+
## Contributing
|
102
|
+
|
103
|
+
Pull requests welcome.
|
data/Rakefile
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require 'maintenance_mode/version'
|
3
|
+
require 'maintenance_mode/file_persistence'
|
4
|
+
require 'maintenance_mode/null_persistence'
|
5
|
+
|
6
|
+
class MaintenanceMode
|
7
|
+
class << self
|
8
|
+
extend Forwardable
|
9
|
+
def_delegator :persistence, :enable
|
10
|
+
def_delegator :persistence, :disable
|
11
|
+
def_delegator :persistence, :message
|
12
|
+
def_delegator :persistence, :enabled?
|
13
|
+
|
14
|
+
def as_json
|
15
|
+
{
|
16
|
+
enabled: enabled?,
|
17
|
+
message: message,
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_writer :persistence
|
22
|
+
|
23
|
+
def persistence
|
24
|
+
@persistence || NullPersistence.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def persist_with(persistence_method, *args, &block)
|
28
|
+
self.persistence = persistence_methods.fetch(persistence_method).new(*args, &block)
|
29
|
+
end
|
30
|
+
|
31
|
+
def register_persistence_method(name, persistence_method_class)
|
32
|
+
persistence_methods[name] = persistence_method_class
|
33
|
+
end
|
34
|
+
|
35
|
+
def reset
|
36
|
+
@persistence_methods = nil
|
37
|
+
@persistence = nil
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def persistence_methods
|
43
|
+
@persistence_methods ||= {
|
44
|
+
file: FilePersistence
|
45
|
+
}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class MaintenanceMode
|
2
|
+
class FilePersistence
|
3
|
+
def initialize(pathname)
|
4
|
+
@pathname = pathname
|
5
|
+
end
|
6
|
+
|
7
|
+
attr_reader :pathname
|
8
|
+
|
9
|
+
def enabled?
|
10
|
+
@pathname.file?
|
11
|
+
end
|
12
|
+
|
13
|
+
def enable(message='')
|
14
|
+
@pathname.write(message)
|
15
|
+
end
|
16
|
+
|
17
|
+
def disable
|
18
|
+
return unless enabled?
|
19
|
+
@pathname.unlink
|
20
|
+
end
|
21
|
+
|
22
|
+
def message
|
23
|
+
return unless enabled?
|
24
|
+
contents = @pathname.read.to_s
|
25
|
+
contents == '' ? nil : contents
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'maintenance_mode'
|
2
|
+
|
3
|
+
class MaintenanceMode
|
4
|
+
class RakeTasks
|
5
|
+
extend Rake::DSL
|
6
|
+
|
7
|
+
def self.install
|
8
|
+
namespace :maintenance do
|
9
|
+
desc 'Enable MaintenanceMode - optional message can be passed as only argument or use $MESSAGE'
|
10
|
+
task :enable, [:message] => [:configure] do |_, args|
|
11
|
+
MaintenanceMode.enable(ENV.fetch('MESSAGE', args[:message]))
|
12
|
+
end
|
13
|
+
|
14
|
+
desc 'Disable MaintenanceMode'
|
15
|
+
task :disable => [:configure] do
|
16
|
+
MaintenanceMode.disable
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'Empty hook to configure MaintenanceMode before enable/disable'
|
20
|
+
task :configure
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
MaintenanceMode::RakeTasks.install
|
File without changes
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'maintenance_mode/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "maintenance_mode"
|
8
|
+
spec.version = MaintenanceMode::VERSION
|
9
|
+
spec.authors = ["Ryan Taylor Long"]
|
10
|
+
spec.email = ["ryan.long@goodguide.com"]
|
11
|
+
spec.summary = "This provides a simple interface to a 'maintenance mode' toggle with optional maintenance message."
|
12
|
+
spec.homepage = "http://github.com/goodguide/maintenance_mode"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
21
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
22
|
+
spec.add_development_dependency "minitest"
|
23
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'pathname'
|
3
|
+
require 'tempfile'
|
4
|
+
|
5
|
+
class MaintenanceMode::FilePersistenceTest < Minitest::Test
|
6
|
+
def _file
|
7
|
+
@tempfile ||= Tempfile.new('MaintenanceMode').tap { |f| f.close }
|
8
|
+
Pathname.new(@tempfile.path)
|
9
|
+
end
|
10
|
+
|
11
|
+
def setup
|
12
|
+
_file.unlink
|
13
|
+
end
|
14
|
+
|
15
|
+
def subject
|
16
|
+
MaintenanceMode::FilePersistence.new(_file)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_enable
|
20
|
+
assert !_file.file?, 'file should not exist'
|
21
|
+
subject.enable
|
22
|
+
|
23
|
+
assert _file.file?, 'file should exist'
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_enable_with_message
|
27
|
+
assert !_file.file?, 'file should not exist'
|
28
|
+
subject.enable 'foo'
|
29
|
+
|
30
|
+
assert _file.file?, 'file should exist'
|
31
|
+
assert_equal 'foo', _file.read.to_s
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_enable_when_enabled
|
35
|
+
assert !_file.file?, 'file should not exist'
|
36
|
+
subject.enable 'foo'
|
37
|
+
subject.enable
|
38
|
+
|
39
|
+
assert _file.file?, 'file should exist'
|
40
|
+
assert_equal '', _file.read.to_s
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_disable
|
44
|
+
_file.write('foo')
|
45
|
+
assert _file.file?, 'file should exist'
|
46
|
+
subject.disable
|
47
|
+
|
48
|
+
assert !_file.file?, 'file should not exist'
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_disable_when_not_enabled
|
52
|
+
subject.disable
|
53
|
+
|
54
|
+
assert !_file.file?, 'file should not exist'
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_enabled?
|
58
|
+
_file.write('foo')
|
59
|
+
assert subject.enabled?
|
60
|
+
_file.unlink
|
61
|
+
assert !subject.enabled?
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_message
|
65
|
+
_file.write('foobar')
|
66
|
+
|
67
|
+
assert_equal 'foobar', subject.message
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_message_when_empty
|
71
|
+
_file.write('')
|
72
|
+
|
73
|
+
assert_equal nil, subject.message
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_message_when_not_enabled
|
77
|
+
assert_equal nil, subject.message
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class MaintenanceMode::NullPersistenceTest < Minitest::Test
|
4
|
+
def subject
|
5
|
+
MaintenanceMode::NullPersistence.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_enable
|
9
|
+
subject.enable
|
10
|
+
assert !subject.enabled?
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_enable_with_message
|
14
|
+
subject.enable 'foo'
|
15
|
+
assert_nil subject.message
|
16
|
+
assert !subject.enabled?
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_enable_when_enabled
|
20
|
+
subject.enable 'foo'
|
21
|
+
subject.enable
|
22
|
+
|
23
|
+
assert !subject.enabled?
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_disable
|
27
|
+
subject.disable
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_enabled?
|
31
|
+
assert !subject.enabled?
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_message
|
35
|
+
assert_nil subject.message
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
class MaintenanceModeTest
|
2
|
+
class Delegation < Minitest::Test
|
3
|
+
def persistence_method_stub
|
4
|
+
@persistence_method_stub ||= Minitest::Mock.new
|
5
|
+
end
|
6
|
+
|
7
|
+
def setup
|
8
|
+
MaintenanceMode.persistence = persistence_method_stub
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
@persistence_method_stub = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_enable
|
16
|
+
persistence_method_stub.expect :enable, nil
|
17
|
+
MaintenanceMode.enable
|
18
|
+
|
19
|
+
persistence_method_stub.verify
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_enable_with_message
|
23
|
+
persistence_method_stub.expect :enable, nil, ['foo']
|
24
|
+
MaintenanceMode.enable 'foo'
|
25
|
+
|
26
|
+
persistence_method_stub.verify
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_disable
|
30
|
+
persistence_method_stub.expect :disable, nil
|
31
|
+
MaintenanceMode.disable
|
32
|
+
|
33
|
+
persistence_method_stub.verify
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_enabled?
|
37
|
+
persistence_method_stub.expect :enabled?, :foobar
|
38
|
+
|
39
|
+
assert_equal :foobar, MaintenanceMode.enabled?
|
40
|
+
persistence_method_stub.verify
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_message
|
44
|
+
persistence_method_stub.expect :message, :foobarbaz
|
45
|
+
|
46
|
+
assert_equal :foobarbaz, MaintenanceMode.message
|
47
|
+
persistence_method_stub.verify
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_as_json
|
51
|
+
persistence_method_stub.expect :message, 'foo'
|
52
|
+
persistence_method_stub.expect :enabled?, true
|
53
|
+
|
54
|
+
assert_equal({ enabled: true, message: 'foo' }, MaintenanceMode.as_json)
|
55
|
+
persistence_method_stub.verify
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class PersistenceRegistration < Minitest::Test
|
60
|
+
def setup
|
61
|
+
MaintenanceMode.reset
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_persistence_default
|
65
|
+
assert_kind_of MaintenanceMode::NullPersistence, MaintenanceMode.persistence
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_persist_with
|
69
|
+
MaintenanceMode.persist_with :file, 'tmp/foo'
|
70
|
+
assert_kind_of MaintenanceMode::FilePersistence, MaintenanceMode.persistence
|
71
|
+
assert_equal 'tmp/foo', MaintenanceMode.persistence.pathname
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_persist_with_not_registered
|
75
|
+
assert_raises(KeyError) { MaintenanceMode.persist_with :foo }
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_register_persistence_method
|
79
|
+
fake_persistence_method_class = Class.new(Object)
|
80
|
+
MaintenanceMode.register_persistence_method :foo, fake_persistence_method_class
|
81
|
+
MaintenanceMode.persist_with :foo
|
82
|
+
assert_kind_of fake_persistence_method_class, MaintenanceMode.persistence
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
maintenance.enabled
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: maintenance_mode
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ryan Taylor Long
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-04-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- ryan.long@goodguide.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- Gemfile
|
64
|
+
- LICENSE.txt
|
65
|
+
- README.md
|
66
|
+
- Rakefile
|
67
|
+
- lib/maintenance_mode.rb
|
68
|
+
- lib/maintenance_mode/file_persistence.rb
|
69
|
+
- lib/maintenance_mode/null_persistence.rb
|
70
|
+
- lib/maintenance_mode/rake_tasks.rb
|
71
|
+
- lib/maintenance_mode/version.rb
|
72
|
+
- lib/tasks/maintenance_mode.rake
|
73
|
+
- maintenance_mode.gemspec
|
74
|
+
- test/maintenance_mode/file_persistence_test.rb
|
75
|
+
- test/maintenance_mode/null_persistence_test.rb
|
76
|
+
- test/maintenance_mode_test.rb
|
77
|
+
- test/rake_task_test_env/.gitignore
|
78
|
+
- test/rake_task_test_env/Gemfile
|
79
|
+
- test/rake_task_test_env/Gemfile.lock
|
80
|
+
- test/rake_task_test_env/Rakefile
|
81
|
+
- test/rake_task_test_env/current_state.rb
|
82
|
+
- test/rake_task_test_env/maintenance_mode_config.rb
|
83
|
+
- test/test_helper.rb
|
84
|
+
homepage: http://github.com/goodguide/maintenance_mode
|
85
|
+
licenses:
|
86
|
+
- MIT
|
87
|
+
metadata: {}
|
88
|
+
post_install_message:
|
89
|
+
rdoc_options: []
|
90
|
+
require_paths:
|
91
|
+
- lib
|
92
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
requirements: []
|
103
|
+
rubyforge_project:
|
104
|
+
rubygems_version: 2.2.2
|
105
|
+
signing_key:
|
106
|
+
specification_version: 4
|
107
|
+
summary: This provides a simple interface to a 'maintenance mode' toggle with optional
|
108
|
+
maintenance message.
|
109
|
+
test_files:
|
110
|
+
- test/maintenance_mode/file_persistence_test.rb
|
111
|
+
- test/maintenance_mode/null_persistence_test.rb
|
112
|
+
- test/maintenance_mode_test.rb
|
113
|
+
- test/rake_task_test_env/.gitignore
|
114
|
+
- test/rake_task_test_env/Gemfile
|
115
|
+
- test/rake_task_test_env/Gemfile.lock
|
116
|
+
- test/rake_task_test_env/Rakefile
|
117
|
+
- test/rake_task_test_env/current_state.rb
|
118
|
+
- test/rake_task_test_env/maintenance_mode_config.rb
|
119
|
+
- test/test_helper.rb
|
120
|
+
has_rdoc:
|