safer_rails_console 0.3.0 → 0.4.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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -6
- data/Appraisals +5 -5
- data/gemfiles/5.2.gemfile +1 -1
- data/gemfiles/{4.2.gemfile → 6.0.gemfile} +1 -1
- data/lib/safer_rails_console/consoles/irb.rb +5 -1
- data/lib/safer_rails_console/patches/boot/sandbox_flag.rb +2 -36
- data/lib/safer_rails_console/patches/railtie/sandbox.rb +1 -1
- data/lib/safer_rails_console/patches/sandbox/auto_rollback.rb +1 -13
- data/lib/safer_rails_console/rails_version.rb +16 -6
- data/lib/safer_rails_console/version.rb +1 -1
- data/safer_rails_console.gemspec +3 -4
- metadata +12 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f61723272246766a45a0702be74e266718e55035ce8ccfa8a1c4eaab6618d28
|
4
|
+
data.tar.gz: d5d421c94e15b1fb9bfbd8d532d24ed95c9f76c8250e8620257bb95071f5e801
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8da50a1178203391fcc23bdd42f9970aa1ebe140cc5be1f3916a7b71ab1eaef44189d37fcb0cb6345b00960a566d01f907a226fdd4392c649c59840b95029af1
|
7
|
+
data.tar.gz: 2a97efb1bfba5e451a5cee1cf23bf9a2a6ac8d9898c164f5f58c890bb80acd0dbacb1fdb332f69c7be2eee632f3343f96247bde00ab0057b15e8526a5ad89f0d
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -9,26 +9,23 @@ before_install:
|
|
9
9
|
- gem install bundler
|
10
10
|
|
11
11
|
before_script:
|
12
|
-
- cp spec/internal/database.yml.travis spec/internal/rails_4_2/config/database.yml
|
13
12
|
- cp spec/internal/database.yml.travis spec/internal/rails_5_0/config/database.yml
|
14
13
|
- cp spec/internal/database.yml.travis spec/internal/rails_5_1/config/database.yml
|
15
14
|
- cp spec/internal/database.yml.travis spec/internal/rails_5_2/config/database.yml
|
15
|
+
- cp spec/internal/database.yml.travis spec/internal/rails_6_0/config/database.yml
|
16
16
|
|
17
17
|
script:
|
18
18
|
- bundle exec rubocop
|
19
19
|
- bundle exec rspec
|
20
20
|
|
21
21
|
rvm:
|
22
|
-
- 2.
|
23
|
-
- 2.3.7
|
24
|
-
- 2.4.4
|
25
|
-
- 2.5.1
|
22
|
+
- 2.5.6
|
26
23
|
|
27
24
|
gemfile:
|
28
|
-
- gemfiles/4.2.gemfile
|
29
25
|
- gemfiles/5.0.gemfile
|
30
26
|
- gemfiles/5.1.gemfile
|
31
27
|
- gemfiles/5.2.gemfile
|
28
|
+
- gemfiles/6.0.gemfile
|
32
29
|
|
33
30
|
matrix:
|
34
31
|
fast_finish: true
|
data/Appraisals
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
appraise '4.2' do
|
2
|
-
gem 'rails', '~> 4.2.0'
|
3
|
-
end
|
4
|
-
|
5
1
|
appraise '5.0' do
|
6
2
|
gem 'rails', '~> 5.0.0'
|
7
3
|
end
|
@@ -11,5 +7,9 @@ appraise '5.1' do
|
|
11
7
|
end
|
12
8
|
|
13
9
|
appraise '5.2' do
|
14
|
-
gem 'rails', '~>5.2.0'
|
10
|
+
gem 'rails', '~> 5.2.0'
|
11
|
+
end
|
12
|
+
|
13
|
+
appraise '6.0' do
|
14
|
+
gem 'rails', '~> 6.0.0'
|
15
15
|
end
|
data/gemfiles/5.2.gemfile
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
include SaferRailsConsole::Colors
|
2
2
|
|
3
|
-
app_name = ::
|
3
|
+
app_name = if SaferRailsConsole::RailsVersion.six_or_above?
|
4
|
+
::Rails.application.class.module_parent.to_s.underscore.dasherize
|
5
|
+
else
|
6
|
+
::Rails.application.class.parent.to_s.underscore.dasherize
|
7
|
+
end
|
4
8
|
env_name = SaferRailsConsole.environment_name
|
5
9
|
status = ::Rails.application.sandbox ? 'read-only' : 'writable'
|
6
10
|
color = SaferRailsConsole.prompt_color
|
@@ -15,37 +15,6 @@ module SaferRailsConsole
|
|
15
15
|
end
|
16
16
|
|
17
17
|
module Rails
|
18
|
-
module CommandsTasks4
|
19
|
-
def console
|
20
|
-
require_command!('console')
|
21
|
-
::Rails::Console.singleton_class.prepend(::SaferRailsConsole::Patches::Boot::SandboxFlag::Rails::Console4)
|
22
|
-
super
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
module Console4
|
27
|
-
def parse_arguments(arguments)
|
28
|
-
options = {}
|
29
|
-
|
30
|
-
OptionParser.new do |opt|
|
31
|
-
::SaferRailsConsole::Patches::Boot::SandboxFlag.console_options(opt, options)
|
32
|
-
opt.on('--debugger', 'Enable the debugger.') { |v| options[:debugger] = v }
|
33
|
-
opt.parse!(arguments)
|
34
|
-
end
|
35
|
-
|
36
|
-
if arguments.first && arguments.first[0] != '-'
|
37
|
-
env = arguments.first
|
38
|
-
options[:environment] = if available_environments.include? env
|
39
|
-
env
|
40
|
-
else
|
41
|
-
%w(production development test).detect { |e| e =~ /^#{env}/ } || env
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
options
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
18
|
module CommandsTasks50
|
50
19
|
def console
|
51
20
|
require_command!('console')
|
@@ -72,13 +41,10 @@ module SaferRailsConsole
|
|
72
41
|
end
|
73
42
|
end
|
74
43
|
|
75
|
-
if SaferRailsConsole::RailsVersion.
|
76
|
-
require 'rails/commands/commands_tasks'
|
77
|
-
::Rails::CommandsTasks.prepend(SaferRailsConsole::Patches::Boot::SandboxFlag::Rails::CommandsTasks4)
|
78
|
-
elsif SaferRailsConsole::RailsVersion.five_zero?
|
44
|
+
if SaferRailsConsole::RailsVersion.five_zero?
|
79
45
|
require 'rails/commands/commands_tasks'
|
80
46
|
::Rails::CommandsTasks.prepend(SaferRailsConsole::Patches::Boot::SandboxFlag::Rails::CommandsTasks50)
|
81
|
-
elsif SaferRailsConsole::RailsVersion.
|
47
|
+
elsif SaferRailsConsole::RailsVersion.five_one_or_above?
|
82
48
|
require 'rails/command'
|
83
49
|
require 'rails/commands/console/console_command'
|
84
50
|
# Rails 5.1 and 5.2 defaults `sandbox` to `false`, but we need it to NOT have a default value and be `nil` when it is not user-specified
|
@@ -25,7 +25,7 @@ module SaferRailsConsole
|
|
25
25
|
end
|
26
26
|
|
27
27
|
if SaferRailsConsole::RailsVersion.supported?
|
28
|
-
if SaferRailsConsole::RailsVersion.
|
28
|
+
if SaferRailsConsole::RailsVersion.five_one_or_above?
|
29
29
|
require 'rails/commands/console/console_command'
|
30
30
|
else
|
31
31
|
require 'rails/commands/console'
|
@@ -22,14 +22,6 @@ module SaferRailsConsole
|
|
22
22
|
|
23
23
|
module ActiveRecord
|
24
24
|
module ConnectionAdapters
|
25
|
-
module PostgreSQLAdapter42
|
26
|
-
def execute_and_clear(sql, name, binds)
|
27
|
-
super
|
28
|
-
rescue => e
|
29
|
-
SaferRailsConsole::Patches::Sandbox::AutoRollback.handle_and_reraise_exception(e)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
25
|
module PostgreSQLAdapter5
|
34
26
|
def execute_and_clear(sql, name, binds, prepare: false)
|
35
27
|
super
|
@@ -45,9 +37,5 @@ module SaferRailsConsole
|
|
45
37
|
end
|
46
38
|
|
47
39
|
if defined?(::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
|
48
|
-
|
49
|
-
::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(SaferRailsConsole::Patches::Sandbox::AutoRollback::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter42)
|
50
|
-
else
|
51
|
-
::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(SaferRailsConsole::Patches::Sandbox::AutoRollback::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter5)
|
52
|
-
end
|
40
|
+
::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(SaferRailsConsole::Patches::Sandbox::AutoRollback::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter5)
|
53
41
|
end
|
@@ -6,12 +6,7 @@ module SaferRailsConsole
|
|
6
6
|
|
7
7
|
class << self
|
8
8
|
def supported?
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
def four_two?
|
13
|
-
@is_four_two = Gem::Requirement.new('~> 4.2.0').satisfied_by?(SaferRailsConsole::RailsVersion::RAILS_VERSION) if @is_four_two.nil?
|
14
|
-
@is_four_two
|
9
|
+
five_zero? || five_one? || five_two? || six_zero?
|
15
10
|
end
|
16
11
|
|
17
12
|
def five_zero?
|
@@ -24,10 +19,25 @@ module SaferRailsConsole
|
|
24
19
|
@is_five_one
|
25
20
|
end
|
26
21
|
|
22
|
+
def five_one_or_above?
|
23
|
+
@is_five_one_or_above = SaferRailsConsole::RailsVersion::RAILS_VERSION >= ::Gem::Version.new('5.1.0') if @is_five_one_or_above.nil?
|
24
|
+
@is_five_one_or_above
|
25
|
+
end
|
26
|
+
|
27
27
|
def five_two?
|
28
28
|
@is_five_two = Gem::Requirement.new('~> 5.2.0').satisfied_by?(SaferRailsConsole::RailsVersion::RAILS_VERSION) if @is_five_two.nil?
|
29
29
|
@is_five_two
|
30
30
|
end
|
31
|
+
|
32
|
+
def six_zero?
|
33
|
+
@is_six_zero = Gem::Requirement.new('~> 6.0.0').satisfied_by?(SaferRailsConsole::RailsVersion::RAILS_VERSION) if @is_six_zero.nil?
|
34
|
+
@is_six_zero
|
35
|
+
end
|
36
|
+
|
37
|
+
def six_or_above?
|
38
|
+
@is_six_or_above = SaferRailsConsole::RailsVersion::RAILS_VERSION >= ::Gem::Version.new('6.0.0') if @is_six_or_above.nil?
|
39
|
+
@is_six_or_above
|
40
|
+
end
|
31
41
|
end
|
32
42
|
end
|
33
43
|
end
|
data/safer_rails_console.gemspec
CHANGED
@@ -31,14 +31,13 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.require_paths = ['lib']
|
32
32
|
|
33
33
|
spec.add_development_dependency 'appraisal', '~> 2.2'
|
34
|
-
spec.add_development_dependency 'bundler', '~>
|
34
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
35
35
|
spec.add_development_dependency 'mixlib-shellout', '~> 2.2'
|
36
36
|
spec.add_development_dependency 'overcommit', '~> 0.39.0'
|
37
|
-
spec.add_development_dependency 'pg', '~>
|
37
|
+
spec.add_development_dependency 'pg', '~> 1.1'
|
38
38
|
spec.add_development_dependency 'rake', '~> 12.0'
|
39
39
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
40
40
|
spec.add_development_dependency 'salsify_rubocop', '~> 0.48.0'
|
41
|
-
spec.add_development_dependency 'sqlite3', '~> 1.3'
|
42
41
|
spec.add_development_dependency 'wwtd', '~> 1.3'
|
43
|
-
spec.add_runtime_dependency 'rails', '>=
|
42
|
+
spec.add_runtime_dependency 'rails', '>= 5.0', '< 6.1'
|
44
43
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: safer_rails_console
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: appraisal
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mixlib-shellout
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '1.1'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '1.1'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,20 +122,6 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 0.48.0
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: sqlite3
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '1.3'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '1.3'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: wwtd
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,20 +142,20 @@ dependencies:
|
|
156
142
|
requirements:
|
157
143
|
- - ">="
|
158
144
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
145
|
+
version: '5.0'
|
160
146
|
- - "<"
|
161
147
|
- !ruby/object:Gem::Version
|
162
|
-
version: '
|
148
|
+
version: '6.1'
|
163
149
|
type: :runtime
|
164
150
|
prerelease: false
|
165
151
|
version_requirements: !ruby/object:Gem::Requirement
|
166
152
|
requirements:
|
167
153
|
- - ">="
|
168
154
|
- !ruby/object:Gem::Version
|
169
|
-
version: '
|
155
|
+
version: '5.0'
|
170
156
|
- - "<"
|
171
157
|
- !ruby/object:Gem::Version
|
172
|
-
version: '
|
158
|
+
version: '6.1'
|
173
159
|
description: This gem makes Rails console sessions less dangerous in specified environments
|
174
160
|
by warning, color-coding, auto-sandboxing, and allowing read-only external connections
|
175
161
|
(disables job queueing, non-GET requests, etc.)
|
@@ -192,10 +178,10 @@ files:
|
|
192
178
|
- Rakefile
|
193
179
|
- bin/console
|
194
180
|
- bin/setup
|
195
|
-
- gemfiles/4.2.gemfile
|
196
181
|
- gemfiles/5.0.gemfile
|
197
182
|
- gemfiles/5.1.gemfile
|
198
183
|
- gemfiles/5.2.gemfile
|
184
|
+
- gemfiles/6.0.gemfile
|
199
185
|
- lib/safer_rails_console.rb
|
200
186
|
- lib/safer_rails_console/colors.rb
|
201
187
|
- lib/safer_rails_console/console.rb
|
@@ -231,8 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
217
|
- !ruby/object:Gem::Version
|
232
218
|
version: '0'
|
233
219
|
requirements: []
|
234
|
-
|
235
|
-
rubygems_version: 2.7.6
|
220
|
+
rubygems_version: 3.0.3
|
236
221
|
signing_key:
|
237
222
|
specification_version: 4
|
238
223
|
summary: Make rails console less dangerous!
|