archer-rails 0.4.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c3fdea9c7dd926570591aa18df85e82ffec3759feb6ae3768446c263db5f0e2
4
- data.tar.gz: b778542bba600b0c2146750769cc19779d7366176b19690be1ef8d91b2e7af43
3
+ metadata.gz: 58b353d7f5724ad615a279d20cc4fa15c25bcd201b5999208d334e652794120b
4
+ data.tar.gz: 7c11e204279c679949694bb9e8923466f1ba3c147e90d0272273a29579f29cdf
5
5
  SHA512:
6
- metadata.gz: ef40368afbd616f17f31e93892c100f855634f7c7d74fd41f3b66538e81bf8663b68c9e83d135d64a159ce8879433d43b59092280df8dbdb33d5f560e6440b33
7
- data.tar.gz: 59cbbd96bfe605d295057571aa70ec04ec4d9a851c10c0bf9a7d564283b589b31ebdf4de1241da5e2d945c42ddd34edc6ff89813ceacd8566a93d6c58518b4d7
6
+ metadata.gz: e339e412625e98217e69b6a5296352bf13f43b64766ccdbe58871cfd6cc1ac5f1387436accd561b31fe756a002d5dca9002154b6c6e9ad40e235e01a7a229bd8
7
+ data.tar.gz: cfcfba6da27c0de37013500b60ee33ca0c759dfea02a2e4a9ef0035d630558be3beed14ed63e154975ef38eef06fe8e2397bb24e69390d9a41358b549529f594
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 1.1.0 (2025-02-01)
2
+
3
+ - Dropped support for Ruby < 3.1 and Rails < 7
4
+
5
+ ## 1.0.0 (2024-01-10)
6
+
7
+ - Added support for multi-line commands
8
+ - Changed command serialization to JSON
9
+ - Dropped support for Ruby < 3 and Rails < 6.1
10
+
1
11
  ## 0.4.1 (2023-10-31)
2
12
 
3
13
  - Fixed error with Rails 7.1
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2018-2023 Andrew Kane
3
+ Copyright (c) 2018-2025 Andrew Kane
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -6,7 +6,7 @@ Rails console history for Heroku, Docker, and more
6
6
 
7
7
  Designed for platforms with ephemeral filesystems
8
8
 
9
- [![Build Status](https://github.com/ankane/archer/workflows/build/badge.svg?branch=master)](https://github.com/ankane/archer/actions)
9
+ [![Build Status](https://github.com/ankane/archer/actions/workflows/build.yml/badge.svg)](https://github.com/ankane/archer/actions)
10
10
 
11
11
  ## Installation
12
12
 
@@ -122,4 +122,5 @@ To get started with development:
122
122
  git clone https://github.com/ankane/archer.git
123
123
  cd archer
124
124
  bundle install
125
+ bundle exec rake test
125
126
  ```
@@ -0,0 +1,14 @@
1
+ module Archer
2
+ module Coder
3
+ def self.dump(value)
4
+ JSON.generate(value)
5
+ end
6
+
7
+ def self.load(value)
8
+ JSON.parse(value, {max_nesting: 1}) unless value.nil?
9
+ rescue JSON::ParserError
10
+ # previous format
11
+ value.split("\n")
12
+ end
13
+ end
14
+ end
@@ -1,5 +1,11 @@
1
1
  module Archer
2
2
  class History < ActiveRecord::Base
3
3
  self.table_name = "archer_history"
4
+
5
+ if ActiveRecord::VERSION::STRING.to_f >= 7.1
6
+ serialize :commands, coder: Coder
7
+ else
8
+ serialize :commands, Coder
9
+ end
4
10
  end
5
11
  end
@@ -1,3 +1,3 @@
1
1
  module Archer
2
- VERSION = "0.4.1"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/archer.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  # dependencies
2
2
  require "active_support/core_ext/module/attribute_accessors"
3
3
 
4
+ # stdlib
5
+ require "json"
6
+
4
7
  # modules
8
+ require_relative "archer/coder"
5
9
  require_relative "archer/engine" if defined?(Rails)
6
10
  require_relative "archer/irb"
7
11
  require_relative "archer/version"
@@ -35,12 +39,15 @@ module Archer
35
39
  end
36
40
 
37
41
  if history
38
- commands = history.commands.split("\n")
42
+ commands = history.commands
39
43
  history_object.clear
40
44
  history_object.push(*commands)
41
45
  end
42
46
 
43
47
  IRB.conf[:AT_EXIT].push(proc { Archer.save if Archer.save_session })
48
+ rescue
49
+ # never prevent console from booting
50
+ warn "[archer] Error loading history"
44
51
  end
45
52
 
46
53
  def save
@@ -48,7 +55,7 @@ module Archer
48
55
 
49
56
  quietly do
50
57
  history = Archer::History.where(user: user).first_or_initialize
51
- history.commands = history_object.to_a.last(limit).join("\n")
58
+ history.commands = history_object.to_a.last(limit)
52
59
  history.save!
53
60
  end
54
61
  rescue ActiveRecord::StatementInvalid
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: archer-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-10-31 00:00:00.000000000 Z
10
+ date: 2025-02-01 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: railties
@@ -16,29 +15,42 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '6'
18
+ version: '7'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '6'
25
+ version: '7'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: activerecord
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '6'
32
+ version: '7'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '6'
41
- description:
39
+ version: '7'
40
+ - !ruby/object:Gem::Dependency
41
+ name: irb
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
42
54
  email: andrew@ankane.org
43
55
  executables: []
44
56
  extensions: []
@@ -49,6 +61,7 @@ files:
49
61
  - README.md
50
62
  - lib/archer-rails.rb
51
63
  - lib/archer.rb
64
+ - lib/archer/coder.rb
52
65
  - lib/archer/engine.rb
53
66
  - lib/archer/history.rb
54
67
  - lib/archer/irb.rb
@@ -59,7 +72,6 @@ homepage: https://github.com/ankane/archer
59
72
  licenses:
60
73
  - MIT
61
74
  metadata: {}
62
- post_install_message:
63
75
  rdoc_options: []
64
76
  require_paths:
65
77
  - lib
@@ -67,15 +79,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
79
  requirements:
68
80
  - - ">="
69
81
  - !ruby/object:Gem::Version
70
- version: '2.7'
82
+ version: '3.1'
71
83
  required_rubygems_version: !ruby/object:Gem::Requirement
72
84
  requirements:
73
85
  - - ">="
74
86
  - !ruby/object:Gem::Version
75
87
  version: '0'
76
88
  requirements: []
77
- rubygems_version: 3.4.10
78
- signing_key:
89
+ rubygems_version: 3.6.2
79
90
  specification_version: 4
80
91
  summary: Rails console history for Heroku, Docker, and more
81
92
  test_files: []