archer-rails 0.1.1 → 0.2.3
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/CHANGELOG.md +20 -2
- data/LICENSE.txt +1 -1
- data/README.md +16 -0
- data/lib/archer.rb +24 -4
- data/lib/archer/engine.rb +5 -2
- data/lib/archer/irb.rb +9 -0
- data/lib/archer/version.rb +1 -1
- data/lib/generators/archer/install_generator.rb +3 -23
- data/lib/generators/archer/templates/migration.rb.tt +1 -1
- metadata +15 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19712b8bc5685ad3770bb596c00281b60ea6c394ec3a748c2874121660d1d90f
|
4
|
+
data.tar.gz: 2470e42aa3128bac2e2c59994a0aab8a8bfb04e9887bac37d951dd294e4a1004
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14bb6c24f59394f76688c4eb75698d6d340a600e04c44f96f5214406cc7489fba74d68c3c4d5e953774915875f535eb2cbce3453f2a664d954308c4625c1395e
|
7
|
+
data.tar.gz: 9809857aa33df6b242f104845e1eaa43185e79c28c4177ed7cc6de08750ca0e097cd44c853124b873ea7d1d65aea6b6a343c11d21dc132a8609831a53a6f0f95
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,25 @@
|
|
1
|
-
## 0.
|
1
|
+
## 0.2.3 (2021-08-03)
|
2
|
+
|
3
|
+
- Added `save_session` option
|
4
|
+
|
5
|
+
## 0.2.2 (2021-01-07)
|
6
|
+
|
7
|
+
- Fixed issue with Reline detection
|
8
|
+
|
9
|
+
## 0.2.1 (2020-11-23)
|
10
|
+
|
11
|
+
- Fixed issue with not loading history
|
12
|
+
- Use `datetime` type in migration
|
13
|
+
|
14
|
+
## 0.2.0 (2020-04-09)
|
15
|
+
|
16
|
+
- Added support for Reline
|
17
|
+
- Dropped support for Rails 4.2
|
18
|
+
|
19
|
+
## 0.1.1 (2018-10-23)
|
2
20
|
|
3
21
|
- Fixed issue with not loading history on Heroku
|
4
22
|
|
5
|
-
## 0.1.0
|
23
|
+
## 0.1.0 (2018-10-23)
|
6
24
|
|
7
25
|
- First release
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -53,6 +53,14 @@ Archer.user
|
|
53
53
|
|
54
54
|
## Clearing History
|
55
55
|
|
56
|
+
Disable saving history for the current session with:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
Archer.save_session = false
|
60
|
+
```
|
61
|
+
|
62
|
+
You should do this when running sensitive commands.
|
63
|
+
|
56
64
|
Clear history for current user with:
|
57
65
|
|
58
66
|
```ruby
|
@@ -105,3 +113,11 @@ Everyone is encouraged to help improve this project. Here are a few ways you can
|
|
105
113
|
- Fix bugs and [submit pull requests](https://github.com/ankane/archer/pulls)
|
106
114
|
- Write, clarify, or fix documentation
|
107
115
|
- Suggest or add new features
|
116
|
+
|
117
|
+
To get started with development:
|
118
|
+
|
119
|
+
```sh
|
120
|
+
git clone https://github.com/ankane/archer.git
|
121
|
+
cd archer
|
122
|
+
bundle install
|
123
|
+
```
|
data/lib/archer.rb
CHANGED
@@ -3,6 +3,7 @@ require "active_support/core_ext/module/attribute_accessors"
|
|
3
3
|
|
4
4
|
# modules
|
5
5
|
require "archer/engine" if defined?(Rails)
|
6
|
+
require "archer/irb"
|
6
7
|
require "archer/version"
|
7
8
|
|
8
9
|
module Archer
|
@@ -14,13 +15,18 @@ module Archer
|
|
14
15
|
mattr_accessor :user
|
15
16
|
self.user = ENV["USER"]
|
16
17
|
|
18
|
+
mattr_accessor :save_session
|
19
|
+
self.save_session = true
|
20
|
+
|
21
|
+
# TODO remove in 0.3.0
|
17
22
|
mattr_accessor :history_file
|
18
23
|
|
19
24
|
def self.clear
|
20
25
|
quietly do
|
21
26
|
Archer::History.where(user: user).delete_all
|
22
27
|
end
|
23
|
-
Readline::HISTORY.clear
|
28
|
+
Readline::HISTORY.clear if defined?(Readline)
|
29
|
+
Reline::HISTORY.clear if defined?(Reline)
|
24
30
|
true
|
25
31
|
end
|
26
32
|
|
@@ -35,20 +41,34 @@ module Archer
|
|
35
41
|
end
|
36
42
|
|
37
43
|
if history
|
38
|
-
|
44
|
+
commands = history.commands.split("\n")
|
45
|
+
history_object.push(*commands)
|
39
46
|
end
|
40
47
|
end
|
41
48
|
|
42
49
|
def self.save
|
43
50
|
quietly do
|
44
51
|
history = Archer::History.where(user: user).first_or_initialize
|
45
|
-
history.commands =
|
46
|
-
history.save
|
52
|
+
history.commands = history_object.to_a.last(limit).join("\n")
|
53
|
+
history.save!
|
47
54
|
end
|
48
55
|
rescue ActiveRecord::StatementInvalid
|
49
56
|
warn "[archer] Unable to save history"
|
50
57
|
end
|
51
58
|
|
59
|
+
# private
|
60
|
+
# TODO use IRB.CurrentContext.io.class::HISTORY
|
61
|
+
def self.history_object
|
62
|
+
reline? ? Reline::HISTORY : Readline::HISTORY
|
63
|
+
end
|
64
|
+
|
65
|
+
# private
|
66
|
+
def self.reline?
|
67
|
+
IRB.CurrentContext.io.is_a?(IRB::ReidlineInputMethod)
|
68
|
+
rescue
|
69
|
+
false
|
70
|
+
end
|
71
|
+
|
52
72
|
# private
|
53
73
|
def self.quietly
|
54
74
|
ActiveRecord::Base.logger.silence do
|
data/lib/archer/engine.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
module Archer
|
2
2
|
class Engine < Rails::Engine
|
3
3
|
console do
|
4
|
+
# TODO remove in 0.3.0
|
4
5
|
Archer.history_file ||= Rails.root.join("tmp", ".irb-history")
|
5
|
-
|
6
|
+
|
7
|
+
# need IRB context to be ready before Archer.start
|
8
|
+
::IRB::Irb.prepend(Archer::Irb)
|
6
9
|
|
7
10
|
at_exit do
|
8
|
-
Archer.save
|
11
|
+
Archer.save if Archer.save_session
|
9
12
|
end
|
10
13
|
end
|
11
14
|
end
|
data/lib/archer/irb.rb
ADDED
data/lib/archer/version.rb
CHANGED
@@ -1,37 +1,17 @@
|
|
1
|
-
# taken from https://github.com/collectiveidea/audited/blob/master/lib/generators/audited/install_generator.rb
|
2
|
-
require "rails/generators"
|
3
|
-
require "rails/generators/migration"
|
4
|
-
require "active_record"
|
5
1
|
require "rails/generators/active_record"
|
6
2
|
|
7
3
|
module Archer
|
8
4
|
module Generators
|
9
5
|
class InstallGenerator < Rails::Generators::Base
|
10
|
-
include
|
11
|
-
source_root File.
|
12
|
-
|
13
|
-
# Implement the required interface for Rails::Generators::Migration.
|
14
|
-
def self.next_migration_number(dirname) #:nodoc:
|
15
|
-
next_migration_number = current_migration_number(dirname) + 1
|
16
|
-
if ::ActiveRecord::Base.timestamped_migrations
|
17
|
-
[Time.now.utc.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max
|
18
|
-
else
|
19
|
-
"%.3d" % next_migration_number
|
20
|
-
end
|
21
|
-
end
|
6
|
+
include ActiveRecord::Generators::Migration
|
7
|
+
source_root File.join(__dir__, "templates")
|
22
8
|
|
23
9
|
def copy_migration
|
24
10
|
migration_template "migration.rb", "db/migrate/create_archer_history.rb", migration_version: migration_version
|
25
11
|
end
|
26
12
|
|
27
13
|
def migration_version
|
28
|
-
|
29
|
-
"[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def rails5?
|
34
|
-
Rails::VERSION::MAJOR >= 5
|
14
|
+
"[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
|
35
15
|
end
|
36
16
|
end
|
37
17
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: archer-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -16,57 +16,29 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
type: :
|
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: rake
|
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
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: minitest
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
33
|
+
version: '5'
|
34
|
+
type: :runtime
|
63
35
|
prerelease: false
|
64
36
|
version_requirements: !ruby/object:Gem::Requirement
|
65
37
|
requirements:
|
66
38
|
- - ">="
|
67
39
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
69
|
-
description:
|
40
|
+
version: '5'
|
41
|
+
description:
|
70
42
|
email: andrew@chartkick.com
|
71
43
|
executables: []
|
72
44
|
extensions: []
|
@@ -79,6 +51,7 @@ files:
|
|
79
51
|
- lib/archer.rb
|
80
52
|
- lib/archer/engine.rb
|
81
53
|
- lib/archer/history.rb
|
54
|
+
- lib/archer/irb.rb
|
82
55
|
- lib/archer/version.rb
|
83
56
|
- lib/generators/archer/install_generator.rb
|
84
57
|
- lib/generators/archer/templates/migration.rb.tt
|
@@ -86,7 +59,7 @@ homepage: https://github.com/ankane/archer
|
|
86
59
|
licenses:
|
87
60
|
- MIT
|
88
61
|
metadata: {}
|
89
|
-
post_install_message:
|
62
|
+
post_install_message:
|
90
63
|
rdoc_options: []
|
91
64
|
require_paths:
|
92
65
|
- lib
|
@@ -94,16 +67,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
67
|
requirements:
|
95
68
|
- - ">="
|
96
69
|
- !ruby/object:Gem::Version
|
97
|
-
version: '2.
|
70
|
+
version: '2.4'
|
98
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
72
|
requirements:
|
100
73
|
- - ">="
|
101
74
|
- !ruby/object:Gem::Version
|
102
75
|
version: '0'
|
103
76
|
requirements: []
|
104
|
-
|
105
|
-
|
106
|
-
signing_key:
|
77
|
+
rubygems_version: 3.2.22
|
78
|
+
signing_key:
|
107
79
|
specification_version: 4
|
108
80
|
summary: Rails console history for Heroku, Docker, and more
|
109
81
|
test_files: []
|