simple-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 +4 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +4 -0
- data/README.md +53 -0
- data/Rakefile +4 -0
- data/lib/generators/simple_maintenance_mode/install/USAGE +22 -0
- data/lib/generators/simple_maintenance_mode/install/install_generator.rb +13 -0
- data/lib/generators/simple_maintenance_mode/install/templates/create_app_settings.rb +9 -0
- data/lib/generators/simple_maintenance_mode/install/templates/maintenance.html +152 -0
- data/lib/simple-maintenance-mode/filter.rb +26 -0
- data/lib/simple-maintenance-mode/model/app_settings.rb +28 -0
- data/lib/simple-maintenance-mode/version.rb +3 -0
- data/lib/simple-maintenance-mode.rb +6 -0
- data/simple-maintenance-mode.gemspec +29 -0
- data/spec/filter_spec.rb +73 -0
- data/spec/spec_helper.rb +1 -0
- metadata +172 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 30305a8b24e502f3a5cd27850b4b502d404956938048ce83fbe032e870a141f6
|
4
|
+
data.tar.gz: 7f3d7fbb8a872454dfacb16ee610d7984a6f98bbc8a782831074030579365040
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9961fcd7fc9b4d1526c2fa2b5c8df9bb4f443d70d2ea0ffeacd49b7b8b372e77acaac5e349ec37dfe53055e434afec9987eab8dfddba2b1e019168c62fae639d
|
7
|
+
data.tar.gz: 047e7d7f832eac94d81bc2bb6b49e193d4c3747f750330c797f69a9c0f2d7281abef7a0837e0ef05f99898212abbfc4550f24b82aab3b27c9c0f8cd66cd0425a
|
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Simple Maintenance Mode
|
2
|
+
|
3
|
+
A simple maintenance mode gem for rails apps. If you need a mode/page for
|
4
|
+
maintenance purposes, this is a gem for you. It provides a simple maintenance
|
5
|
+
page, filter for your controllers and a fairly simple logic for
|
6
|
+
activation/deactivation.
|
7
|
+
|
8
|
+
When activated, users will be redirected (maintenance_mode_check filter) to a
|
9
|
+
static maintenance mode page (**/maintenance** route). The maintenance mode settings
|
10
|
+
will be stored in a app settings model. Additionally each user will get a cookie
|
11
|
+
when the mode is active and a redirection to the maintenance page will happen.
|
12
|
+
|
13
|
+
To activate the maintenance mode simply run the rails console and do this:
|
14
|
+
**SimpleMaintenanceMode::Model::AppSettings.maintenance_mode = true**
|
15
|
+
|
16
|
+
As a rails app administrator, you will be always able to access the page by using
|
17
|
+
the **maintenance_mode_override=1** GET parameter.
|
18
|
+
|
19
|
+
|
20
|
+
## Installation
|
21
|
+
|
22
|
+
Add this line to your application's Gemfile:
|
23
|
+
|
24
|
+
gem 'simple-maintenance-mode'
|
25
|
+
|
26
|
+
And then execute:
|
27
|
+
|
28
|
+
$ bundle
|
29
|
+
$ rails g simple_maintenance_mode:install
|
30
|
+
|
31
|
+
Or install it yourself as:
|
32
|
+
|
33
|
+
$ gem install simple-maintenance-mode
|
34
|
+
|
35
|
+
## Usage
|
36
|
+
|
37
|
+
Put this in your Application Controller
|
38
|
+
````
|
39
|
+
class ApplicationController < ActionController::Base
|
40
|
+
include SimpleMaintenanceMode::Filter
|
41
|
+
before_action :check_maintenance_mode
|
42
|
+
end
|
43
|
+
````
|
44
|
+
|
45
|
+
You can get/set the maintenance mode with the following method
|
46
|
+
````
|
47
|
+
# get current maintenance mode
|
48
|
+
SimpleMaintenanceMode::Model::AppSettings.maintenance_mode
|
49
|
+
# will return true|false
|
50
|
+
|
51
|
+
# set maintenance mode
|
52
|
+
SimpleMaintenanceMode::Model::AppSettings.maintenance_mode = true|false
|
53
|
+
````
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Description:
|
2
|
+
Install simple maintenance mode for your applications.
|
3
|
+
The installation will copy migrations and pages into your migrations/public
|
4
|
+
rails app folder.
|
5
|
+
|
6
|
+
What you have to do:
|
7
|
+
- Put the check_maintenance_mode filter in your application_controller.rb
|
8
|
+
- Integrate a maintenance mode checkbox in your rails app application for
|
9
|
+
convenience.
|
10
|
+
|
11
|
+
Final notes:
|
12
|
+
You will be able to access the website with the get parameter
|
13
|
+
maintenance_mode_override=1 even if the maintenance mode is active. This is
|
14
|
+
an option for administrators, who want to test the side before turning off
|
15
|
+
the maintenance mode.
|
16
|
+
|
17
|
+
Example:
|
18
|
+
rails generate simple_maintenance_mode:install
|
19
|
+
|
20
|
+
This will create following files in your rails app:
|
21
|
+
- db/migrations/..._create_app_config.rb
|
22
|
+
- public/maintenance.html
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module SimpleMaintenanceMode
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../templates", __FILE__)
|
5
|
+
|
6
|
+
def copy_migration
|
7
|
+
timestamp = Time.now.strftime('%Y%m%d%H%M%S')
|
8
|
+
template("create_app_settings.rb", "db/migrate/#{timestamp}_create_app_settings.rb")
|
9
|
+
template("maintenance.html", "public/maintenance.html")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html class="alfred">
|
3
|
+
<head>
|
4
|
+
<title>Maintenance</title>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
6
|
+
<meta name="viewport" content="width=device-width; initial-scale=1.0;"/>
|
7
|
+
|
8
|
+
<style>
|
9
|
+
/*default*/
|
10
|
+
body, html {background:#f2f2f2; font-family: arial, sans-serif; font-size:18px; margin:0; padding:0;}
|
11
|
+
.wrapper {text-align:center; margin:70px auto 0 auto; color:#999; width:50%;}
|
12
|
+
.link a+a {margin-left:5px;}
|
13
|
+
.btn {background:#aaa; border:solid 1px #fff; color:#fff; display:inline-block; font-size:14px; text-decoration:none; margin-top:5px; padding:8px 12px; border-radius:4px;}
|
14
|
+
.btn:hover {background:#999; box-shadow:0 10px 10px rgba(0, 0, 0, 0.2);}
|
15
|
+
.bg {
|
16
|
+
padding:10px 0;
|
17
|
+
background: -moz-linear-gradient(left, #f2f2f2 0%, #f9f9f9 50%, #f2f2f2 100%);
|
18
|
+
background: -webkit-linear-gradient(left, #f2f2f2 0%, #f9f9f9 50%, #f2f2f2 100%);
|
19
|
+
background: -ms-linear-gradient(left, #f2f2f2 0%, #f9f9f9 50%, #f2f2f2 100%);
|
20
|
+
background: linear-gradient(left, #f2f2f2 0%, #f9f9f9 50%, #f2f2f2 100%);
|
21
|
+
}
|
22
|
+
h1 {color:#e5e5e5; font-size:90px; font-weight:bold; text-shadow: 0 -1px 0px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(255, 255, 255, 0.8); margin:50px 0 0 0; padding:0;}
|
23
|
+
p {padding:10px 0; margin:0; letter-spacing:1px; line-height:25px;}
|
24
|
+
strong {white-space: nowrap;}
|
25
|
+
hr {background:none; box-shadow:none; border:none; border-top:solid 1px #ddd; border-bottom:solid 1px #fff; margin:0; padding:0;}
|
26
|
+
|
27
|
+
/*for alfred*/
|
28
|
+
html.alfred, .alfred body {background:#E3E0D8;}
|
29
|
+
.alfred .wrapper {color:#777;}
|
30
|
+
.alfred h1 {color:#cfccc5;}
|
31
|
+
.alfred hr {background:none; box-shadow:none; border:none; border-top:solid 1px #ccc; border-bottom:solid 1px #fff; margin:0; padding:0;}
|
32
|
+
.alfred .btn {background:#E79800;}
|
33
|
+
.alfred .bg {
|
34
|
+
padding:10px 0;
|
35
|
+
background: -moz-linear-gradient(left, #E3E0D8 0%, #ece9e1 50%, #E3E0D8 100%);
|
36
|
+
background: -webkit-linear-gradient(left, #E3E0D8 0%, #ece9e1 50%, #E3E0D8 100%);
|
37
|
+
background: -ms-linear-gradient(left, #E3E0D8 0%, #ece9e1 50%, #E3E0D8 100%);
|
38
|
+
background: linear-gradient(left, #E3E0D8 0%, #ece9e1 50%, #E3E0D8 100%);
|
39
|
+
}
|
40
|
+
|
41
|
+
@-webkit-keyframes fadeInDown {
|
42
|
+
0% {
|
43
|
+
opacity: 0;
|
44
|
+
-webkit-transform: translateY(-30px);
|
45
|
+
}
|
46
|
+
|
47
|
+
100% {
|
48
|
+
opacity: 1;
|
49
|
+
-webkit-transform: translateY(0);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
@-moz-keyframes fadeInDown {
|
54
|
+
0% {
|
55
|
+
opacity: 0;
|
56
|
+
-moz-transform: translateY(-30px);
|
57
|
+
}
|
58
|
+
|
59
|
+
100% {
|
60
|
+
opacity: 1;
|
61
|
+
-moz-transform: translateY(0);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
@-ms-keyframes fadeInDown {
|
66
|
+
0% {
|
67
|
+
opacity: 0;
|
68
|
+
-ms-transform: translateY(-30px);
|
69
|
+
}
|
70
|
+
|
71
|
+
100% {
|
72
|
+
opacity: 1;
|
73
|
+
-ms-transform: translateY(0);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
@-o-keyframes fadeInDown {
|
78
|
+
0% {
|
79
|
+
opacity: 0;
|
80
|
+
-ms-transform: translateY(-30px);
|
81
|
+
}
|
82
|
+
|
83
|
+
100% {
|
84
|
+
opacity: 1;
|
85
|
+
-ms-transform: translateY(0);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
@keyframes fadeInDown {
|
90
|
+
0% {
|
91
|
+
opacity: 0;
|
92
|
+
transform: translateY(-30px);
|
93
|
+
}
|
94
|
+
|
95
|
+
100% {
|
96
|
+
opacity: 1;
|
97
|
+
transform: translateY(0);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
.animation{
|
102
|
+
-webkit-transition: all 0.1s linear;
|
103
|
+
-o-transition: all 0.1s linear;
|
104
|
+
-moz-transition: all 0.1s linear;
|
105
|
+
-ms-transition: all 0.1s linear;
|
106
|
+
-kthtml-transition: all 0.1s linear;
|
107
|
+
transition: all 0.1s linear;
|
108
|
+
transition-delay:0.0s;
|
109
|
+
}
|
110
|
+
.animated {
|
111
|
+
-webkit-animation: 1s ease;
|
112
|
+
-moz-animation: 1s ease;
|
113
|
+
-ms-animation: 1s ease;
|
114
|
+
-o-animation: 1s ease;
|
115
|
+
animation: 1s ease;
|
116
|
+
}
|
117
|
+
.fadeInDown {
|
118
|
+
-webkit-animation-name: fadeInDown;
|
119
|
+
-moz-animation-name: fadeInDown;
|
120
|
+
-ms-animation-name: fadeInDown;
|
121
|
+
-o-animation-name: fadeInDown;
|
122
|
+
animation-name: fadeInDown;
|
123
|
+
}
|
124
|
+
@media (max-width: 800px) {
|
125
|
+
h1 {font-size:40px;}
|
126
|
+
}
|
127
|
+
|
128
|
+
</style>
|
129
|
+
|
130
|
+
</head>
|
131
|
+
|
132
|
+
<body class="animated fadeInDown">
|
133
|
+
|
134
|
+
<div class="wrapper">
|
135
|
+
<h1>Maintenance</h1>
|
136
|
+
<hr />
|
137
|
+
<div class="bg">
|
138
|
+
<p>
|
139
|
+
The website is currently in maintenance.
|
140
|
+
</p>
|
141
|
+
<p>
|
142
|
+
Sorry for the inconvenience.
|
143
|
+
</p>
|
144
|
+
<p class="link">
|
145
|
+
<a href="your-website-url" title="website title" class="animation btn">Your Website URL</a>
|
146
|
+
</p>
|
147
|
+
</div>
|
148
|
+
<hr />
|
149
|
+
</div>
|
150
|
+
|
151
|
+
</body>
|
152
|
+
</html>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module SimpleMaintenanceMode
|
2
|
+
module Filter
|
3
|
+
|
4
|
+
def check_maintenance_mode(override = false)
|
5
|
+
maintenance_mode_override = override
|
6
|
+
if params[:maintenance_mode_override].present?
|
7
|
+
maintenance_mode_override = true
|
8
|
+
cookies[:maintenance_mode_override] = true
|
9
|
+
end
|
10
|
+
if cookies[:maintenance_mode_override].present?
|
11
|
+
maintenance_mode_override = true
|
12
|
+
end
|
13
|
+
|
14
|
+
if app_settings.maintenance_mode.present? && !maintenance_mode_override
|
15
|
+
redirect_to '/maintenance'
|
16
|
+
end
|
17
|
+
if app_settings.maintenance_mode.blank?
|
18
|
+
cookies.delete(:maintenance_mode_override) # cleanup unused cookie
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def app_settings
|
23
|
+
@app_settings ||= SimpleMaintenanceMode::Model::AppSettings.instance
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'acts_as_singleton'
|
3
|
+
|
4
|
+
module SimpleMaintenanceMode
|
5
|
+
module Model
|
6
|
+
class AppSettings < ActiveRecord::Base
|
7
|
+
|
8
|
+
acts_as_singleton
|
9
|
+
|
10
|
+
def self.maintenance_mode=(active=false)
|
11
|
+
app_settings = SimpleMaintenanceMode::Model::AppSettings.instance
|
12
|
+
app_settings.maintenance_mode = active
|
13
|
+
app_settings.save
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.maintenance_mode
|
17
|
+
SimpleMaintenanceMode::Model::AppSettings.instance.maintenance_mode
|
18
|
+
end
|
19
|
+
|
20
|
+
def as_json
|
21
|
+
{
|
22
|
+
maintenance_mode: self.maintenance_mode
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'simple-maintenance-mode/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "simple-maintenance-mode"
|
8
|
+
spec.version = SimpleMaintenanceMode::VERSION
|
9
|
+
spec.authors = ["Adam Musial-Bright"]
|
10
|
+
spec.summary = %q{Simple maintenance mode for production rails apps.}
|
11
|
+
spec.description = %q{Use simple model and before filter to activate the maintenance mode.}
|
12
|
+
spec.homepage = "https://github.com/musial-bright/simple-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_dependency 'activesupport'
|
21
|
+
spec.add_dependency 'activemodel'
|
22
|
+
spec.add_dependency 'activerecord'
|
23
|
+
spec.add_dependency 'acts_as_singleton'
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler"
|
26
|
+
spec.add_development_dependency "rake"
|
27
|
+
spec.add_development_dependency 'rspec'
|
28
|
+
spec.add_development_dependency 'sqlite3'
|
29
|
+
end
|
data/spec/filter_spec.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'SimpleMaintenanceMode::Filter' do
|
4
|
+
|
5
|
+
let(:app_settings) do
|
6
|
+
double(SimpleMaintenanceMode::Model::AppSettings)
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:generic_controller) do
|
10
|
+
class GenericController
|
11
|
+
include SimpleMaintenanceMode::Filter
|
12
|
+
|
13
|
+
attr_accessor :cookies, :params
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@cookies = Hash.new
|
17
|
+
@params = Hash.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def redirect_to
|
21
|
+
end
|
22
|
+
end
|
23
|
+
gc = GenericController.new
|
24
|
+
gc.stub(:app_settings).and_return(app_settings)
|
25
|
+
gc
|
26
|
+
end
|
27
|
+
|
28
|
+
def maintenace_mode_activated
|
29
|
+
app_settings.stub(maintenance_mode: true)
|
30
|
+
end
|
31
|
+
|
32
|
+
def maintenace_mode_deactivated
|
33
|
+
app_settings.stub(maintenance_mode: false)
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'with deactivated maintenance mode' do
|
37
|
+
before :each do
|
38
|
+
maintenace_mode_deactivated
|
39
|
+
end
|
40
|
+
it 'should not redirect' do
|
41
|
+
generic_controller.should_not_receive(:redirect_to)
|
42
|
+
generic_controller.check_maintenance_mode
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe 'with activated maintenance mode' do
|
47
|
+
before :each do
|
48
|
+
maintenace_mode_activated
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should redirect' do
|
52
|
+
generic_controller.should_receive(:redirect_to)
|
53
|
+
generic_controller.check_maintenance_mode
|
54
|
+
end
|
55
|
+
|
56
|
+
describe 'overridden check with method attribute' do
|
57
|
+
it 'should not redirect' do
|
58
|
+
generic_controller.should_not_receive(:redirect_to)
|
59
|
+
generic_controller.check_maintenance_mode(true)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe 'overridden check with get params' do
|
64
|
+
it 'should not redirect' do
|
65
|
+
generic_controller.should_not_receive(:redirect_to)
|
66
|
+
generic_controller.params[:maintenance_mode_override] = true
|
67
|
+
generic_controller.check_maintenance_mode
|
68
|
+
generic_controller.cookies[:maintenance_mode_override].should be_present
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'simple-maintenance-mode'
|
metadata
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: simple-maintenance-mode
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Adam Musial-Bright
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-02-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activemodel
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activerecord
|
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: acts_as_singleton
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: sqlite3
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: Use simple model and before filter to activate the maintenance mode.
|
126
|
+
email:
|
127
|
+
executables: []
|
128
|
+
extensions: []
|
129
|
+
extra_rdoc_files: []
|
130
|
+
files:
|
131
|
+
- ".gitignore"
|
132
|
+
- CHANGELOG.md
|
133
|
+
- Gemfile
|
134
|
+
- README.md
|
135
|
+
- Rakefile
|
136
|
+
- lib/generators/simple_maintenance_mode/install/USAGE
|
137
|
+
- lib/generators/simple_maintenance_mode/install/install_generator.rb
|
138
|
+
- lib/generators/simple_maintenance_mode/install/templates/create_app_settings.rb
|
139
|
+
- lib/generators/simple_maintenance_mode/install/templates/maintenance.html
|
140
|
+
- lib/simple-maintenance-mode.rb
|
141
|
+
- lib/simple-maintenance-mode/filter.rb
|
142
|
+
- lib/simple-maintenance-mode/model/app_settings.rb
|
143
|
+
- lib/simple-maintenance-mode/version.rb
|
144
|
+
- simple-maintenance-mode.gemspec
|
145
|
+
- spec/filter_spec.rb
|
146
|
+
- spec/spec_helper.rb
|
147
|
+
homepage: https://github.com/musial-bright/simple-maintenance-mode
|
148
|
+
licenses:
|
149
|
+
- MIT
|
150
|
+
metadata: {}
|
151
|
+
post_install_message:
|
152
|
+
rdoc_options: []
|
153
|
+
require_paths:
|
154
|
+
- lib
|
155
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
requirements: []
|
166
|
+
rubygems_version: 3.1.6
|
167
|
+
signing_key:
|
168
|
+
specification_version: 4
|
169
|
+
summary: Simple maintenance mode for production rails apps.
|
170
|
+
test_files:
|
171
|
+
- spec/filter_spec.rb
|
172
|
+
- spec/spec_helper.rb
|