textbringer-auto-revert 0.3.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 510415dcb98e0c25dd5c0c53c05fc63700cb0657e1ebf61290de748e7bb33751
4
- data.tar.gz: 7ee315ca74e6c87b029c5d04f23b1ae7f878c632469838b68687e7420d058bc6
3
+ metadata.gz: adaf19a20128703bbef0907ce335c38b0c2db7c4681b72d675edd27bf13c1902
4
+ data.tar.gz: a5233b3d28f1abaa4271517463d0bfde3ece0ba985b587418ca5590636698a05
5
5
  SHA512:
6
- metadata.gz: 9ad2cc40e79a3f93e1e07b5dea10d4825b1cd04ab829d2f1eaf8bcf9cb054dc1385ee6a32fafbb7c3e7ceaa65ae1f3997308f434c654bc1142a02ef546311e18
7
- data.tar.gz: b4dbc334617ec284146c7d810af63f3be130b20eeeb2e18f7f3e98b6090ad3fbe10b69592c28113950130ab32cb72ee8605c7033bc9f5351a936654462ea37f5
6
+ metadata.gz: 92281f72e3283c3e697746eb63847ae1fc8c0c66a17f8c1cee6c4156fee4ee86e21d1eca432bd9d5c686fcf9fd335bd514a833a04e1a91a890d6cf0de00f9d08
7
+ data.tar.gz: 38c770d1b8bdfb40e927b5a36a550b572e3eec37a85269affbd1a1037b5d0ba19315f5b2f183b0d06f65d3aaf9ea908b383ee47c53810ce745451c89462e3d92
data/lefthook.yml ADDED
@@ -0,0 +1,4 @@
1
+ pre-commit:
2
+ commands:
3
+ test:
4
+ run: bundle exec rake test
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Textbringer
4
4
  module AutoRevert
5
- VERSION = "0.3.0"
5
+ VERSION = "0.3.3"
6
6
  end
7
7
  end
@@ -12,7 +12,11 @@ module Textbringer
12
12
  return unless buffer.file_modified?
13
13
 
14
14
  if !buffer.modified?
15
- buffer.revert
15
+ if buffer.read_only?
16
+ buffer.read_only_edit { buffer.revert }
17
+ else
18
+ buffer.revert
19
+ end
16
20
  message("Reverted buffer from file") if CONFIG[:auto_revert_verbose]
17
21
  else
18
22
  message("Buffer has unsaved changes; file changed on disk")
@@ -30,6 +34,10 @@ module Textbringer
30
34
  end
31
35
  end
32
36
 
37
+ define_command(:global_auto_revert_mode, doc: "Toggle global auto-revert mode.") do
38
+ GlobalAutoRevertMode.toggle
39
+ end
40
+
33
41
  # Enable by default on plugin load
34
42
  GlobalAutoRevertMode.enable
35
43
  GlobalAutoRevertMode.enabled = true
data/test/test_helper.rb CHANGED
@@ -4,6 +4,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
4
4
 
5
5
  # Mock Textbringer for testing without the actual dependency
6
6
  module Textbringer
7
+ class EditorError < StandardError; end
7
8
  CONFIG = {} unless defined?(CONFIG)
8
9
  HOOKS = Hash.new { |h, k| h[k] = [] } unless defined?(HOOKS)
9
10
 
@@ -20,7 +21,7 @@ module Textbringer
20
21
  attr_accessor :current, :list
21
22
  end
22
23
 
23
- attr_accessor :file_name, :name
24
+ attr_accessor :file_name, :name, :read_only
24
25
  attr_reader :reverted, :properties
25
26
 
26
27
  def initialize(name: nil, file_name: nil)
@@ -29,9 +30,22 @@ module Textbringer
29
30
  @modified = false
30
31
  @file_modified = false
31
32
  @reverted = false
33
+ @read_only = false
32
34
  @properties = {}
33
35
  end
34
36
 
37
+ def read_only?
38
+ @read_only
39
+ end
40
+
41
+ def read_only_edit
42
+ old_read_only = @read_only
43
+ @read_only = false
44
+ yield
45
+ ensure
46
+ @read_only = old_read_only
47
+ end
48
+
35
49
  def [](key)
36
50
  @properties[key]
37
51
  end
@@ -57,6 +71,7 @@ module Textbringer
57
71
  end
58
72
 
59
73
  def revert
74
+ raise EditorError, "Read-only buffer" if @read_only
60
75
  @reverted = true
61
76
  end
62
77
  end
@@ -82,6 +97,10 @@ module Textbringer
82
97
  end
83
98
  end
84
99
 
100
+ def self.define_command(name, doc: nil, &block)
101
+ Commands.define_command(name, doc: doc, &block)
102
+ end
103
+
85
104
  class GlobalMinorMode
86
105
  class << self
87
106
  attr_accessor :enabled
@@ -87,4 +87,16 @@ class Textbringer::GlobalAutoRevertModeTest < Test::Unit::TestCase
87
87
 
88
88
  assert_equal false, @buffer.reverted
89
89
  end
90
+
91
+ test "reverts read-only buffer when file is modified" do
92
+ Textbringer::GlobalAutoRevertMode.enable
93
+ @buffer.file_modified = true
94
+ @buffer.modified = false
95
+ @buffer.read_only = true
96
+
97
+ Textbringer::GlobalAutoRevertMode::POST_COMMAND_HOOK.call
98
+
99
+ assert_equal true, @buffer.reverted
100
+ assert_equal true, @buffer.read_only?, "Buffer should remain read-only after revert"
101
+ end
90
102
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: textbringer-auto-revert
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - yancya
@@ -35,6 +35,7 @@ files:
35
35
  - LICENSE.txt
36
36
  - README.md
37
37
  - Rakefile
38
+ - lefthook.yml
38
39
  - lib/textbringer/auto-revert.rb
39
40
  - lib/textbringer/auto-revert/version.rb
40
41
  - lib/textbringer_plugin.rb