ruco 0.0.44 → 0.0.45
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.
- data/Readme.md +3 -2
- data/VERSION +1 -1
- data/lib/ruco/editor.rb +9 -4
- data/lib/ruco/text_area.rb +1 -0
- data/ruco.gemspec +3 -4
- data/spec/ruco/editor_spec.rb +27 -0
- metadata +11 -8
data/Readme.md
CHANGED
@@ -12,6 +12,7 @@ Features:
|
|
12
12
|
- cut, copy and paste -> Ctrl+x/c/v
|
13
13
|
- undo / redo
|
14
14
|
- stays at last position when reopening a file
|
15
|
+
- (optional) remove trailing whitespace on save
|
15
16
|
|
16
17
|
Install
|
17
18
|
=======
|
@@ -29,6 +30,7 @@ Customize
|
|
29
30
|
# set options
|
30
31
|
options.window_line_scroll_offset = 5 # default 1
|
31
32
|
options.history_entries = 10 # default 100
|
33
|
+
options.editor_remove_trailing_whitespace_on_save = true # default false
|
32
34
|
...
|
33
35
|
|
34
36
|
# bind a key
|
@@ -63,7 +65,7 @@ Customize
|
|
63
65
|
TIPS
|
64
66
|
====
|
65
67
|
- [Tabs] Ruco does not like tabs. Existing tabs are displayed as ' ' and pressing tab inserts 2*' '
|
66
|
-
- [RVM] `alias r="rvm ree exec ruco"` and you only have to install ruco once
|
68
|
+
- [RVM] `alias r="rvm ree exec ruco"` and you only have to install ruco once
|
67
69
|
- [Ruby1.9] Unicode support -> install libncursesw5-dev before installing ruby (does not work for 1.8)
|
68
70
|
- [ssh vs clipboard] access your desktops clipboard by installing `xauth` on the server and then using `ssh -X`
|
69
71
|
- [Alt key] if Alt does not work try your Meta/Win/Cmd key
|
@@ -71,7 +73,6 @@ TIPS
|
|
71
73
|
TODO
|
72
74
|
=====
|
73
75
|
- align soft-tabs
|
74
|
-
- strip whitespace after content / whitespace only lines, without removing intentional whitespace e.g. from markdown
|
75
76
|
- handle \\r and \\r\\n nicely <-> breaks curses output
|
76
77
|
- highlight tabs (e.g. strange character or reverse/underline/color)
|
77
78
|
- big warning when editing a not-writable file
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.45
|
data/lib/ruco/editor.rb
CHANGED
@@ -12,6 +12,7 @@ module Ruco
|
|
12
12
|
|
13
13
|
def initialize(file, options)
|
14
14
|
@file = file
|
15
|
+
@options = options
|
15
16
|
|
16
17
|
# check for size (10000 lines * 100 chars should be enough for everybody !?)
|
17
18
|
if File.exist?(@file) and File.size(@file) > (1024 * 1024)
|
@@ -19,16 +20,16 @@ module Ruco
|
|
19
20
|
end
|
20
21
|
|
21
22
|
content = (File.exist?(@file) ? File.read(@file) : '')
|
22
|
-
content.tabs_to_spaces! if options[:convert_tabs]
|
23
|
+
content.tabs_to_spaces! if @options[:convert_tabs]
|
23
24
|
|
24
|
-
if options[:convert_return]
|
25
|
+
if @options[:convert_return]
|
25
26
|
content.gsub!(/\r\n?/,"\n")
|
26
27
|
else
|
27
28
|
raise "Ruco does not support \\r characters, start with --convert-return to remove them" if content.include?("\r")
|
28
29
|
end
|
29
30
|
|
30
31
|
@saved_content = content
|
31
|
-
@text_area = EditorArea.new(content, options)
|
32
|
+
@text_area = EditorArea.new(content, @options)
|
32
33
|
restore_session
|
33
34
|
end
|
34
35
|
|
@@ -46,9 +47,13 @@ module Ruco
|
|
46
47
|
end
|
47
48
|
|
48
49
|
def save
|
49
|
-
|
50
|
+
lines = text_area.send(:lines)
|
51
|
+
lines.each(&:rstrip!) if @options[:remove_trailing_whitespace_on_save]
|
52
|
+
content = lines * "\n"
|
53
|
+
|
50
54
|
File.open(@file,'w'){|f| f.write(content) }
|
51
55
|
@saved_content = content
|
56
|
+
|
52
57
|
true
|
53
58
|
rescue Object => e
|
54
59
|
e.message
|
data/lib/ruco/text_area.rb
CHANGED
data/ruco.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ruco}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.45"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = %q{2011-02-
|
12
|
+
s.date = %q{2011-02-10}
|
13
13
|
s.default_executable = %q{ruco}
|
14
14
|
s.email = %q{michael@grosser.it}
|
15
15
|
s.executables = ["ruco"]
|
@@ -63,7 +63,7 @@ Gem::Specification.new do |s|
|
|
63
63
|
]
|
64
64
|
s.homepage = %q{http://github.com/grosser/ruco}
|
65
65
|
s.require_paths = ["lib"]
|
66
|
-
s.rubygems_version = %q{1.
|
66
|
+
s.rubygems_version = %q{1.4.2}
|
67
67
|
s.summary = %q{Commandline editor written in ruby}
|
68
68
|
s.test_files = [
|
69
69
|
"spec/ruco/application_spec.rb",
|
@@ -85,7 +85,6 @@ Gem::Specification.new do |s|
|
|
85
85
|
]
|
86
86
|
|
87
87
|
if s.respond_to? :specification_version then
|
88
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
89
88
|
s.specification_version = 3
|
90
89
|
|
91
90
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
data/spec/ruco/editor_spec.rb
CHANGED
@@ -691,6 +691,33 @@ describe Ruco::Editor do
|
|
691
691
|
`chmod +w #{@file}`
|
692
692
|
end
|
693
693
|
end
|
694
|
+
|
695
|
+
describe 'remove trailing whitespace' do
|
696
|
+
it "can remove trailing whitespace" do
|
697
|
+
write("a \n \nb\n\n")
|
698
|
+
editor.move(:to, 0,2)
|
699
|
+
editor.instance_eval{@options[:remove_trailing_whitespace_on_save] = true}
|
700
|
+
editor.save
|
701
|
+
editor.view.should == "a\n\nb\n"
|
702
|
+
editor.cursor.should == [0,1]
|
703
|
+
end
|
704
|
+
|
705
|
+
it "does not affect trailing newlines" do
|
706
|
+
write("\n\n\n")
|
707
|
+
editor.move(:to, 2,0)
|
708
|
+
editor.instance_eval{@options[:remove_trailing_whitespace_on_save] = true}
|
709
|
+
editor.save
|
710
|
+
editor.view.should == "\n\n\n"
|
711
|
+
editor.cursor.should == [2,0]
|
712
|
+
end
|
713
|
+
|
714
|
+
it "does not remove trailing whitespace by default" do
|
715
|
+
write("a \n \nb\n\n")
|
716
|
+
editor.save
|
717
|
+
editor.view.should == "a \n \nb\n"
|
718
|
+
editor.cursor.should == [0,0]
|
719
|
+
end
|
720
|
+
end
|
694
721
|
end
|
695
722
|
|
696
723
|
describe :delete do
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 69
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
9
|
+
- 45
|
10
|
+
version: 0.0.45
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Michael Grosser
|
@@ -14,24 +15,25 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-10 00:00:00 +01:00
|
18
19
|
default_executable: ruco
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
name: clipboard
|
22
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
23
|
none: false
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
+
hash: 51
|
27
28
|
segments:
|
28
29
|
- 0
|
29
30
|
- 9
|
30
31
|
- 4
|
31
32
|
version: 0.9.4
|
32
|
-
type: :runtime
|
33
33
|
prerelease: false
|
34
34
|
version_requirements: *id001
|
35
|
+
type: :runtime
|
36
|
+
name: clipboard
|
35
37
|
description:
|
36
38
|
email: michael@grosser.it
|
37
39
|
executables:
|
@@ -101,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
103
|
requirements:
|
102
104
|
- - ">="
|
103
105
|
- !ruby/object:Gem::Version
|
104
|
-
hash:
|
106
|
+
hash: 3
|
105
107
|
segments:
|
106
108
|
- 0
|
107
109
|
version: "0"
|
@@ -110,13 +112,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
112
|
requirements:
|
111
113
|
- - ">="
|
112
114
|
- !ruby/object:Gem::Version
|
115
|
+
hash: 3
|
113
116
|
segments:
|
114
117
|
- 0
|
115
118
|
version: "0"
|
116
119
|
requirements: []
|
117
120
|
|
118
121
|
rubyforge_project:
|
119
|
-
rubygems_version: 1.
|
122
|
+
rubygems_version: 1.4.2
|
120
123
|
signing_key:
|
121
124
|
specification_version: 3
|
122
125
|
summary: Commandline editor written in ruby
|