ruco 0.0.35 → 0.0.36
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 +15 -12
- data/VERSION +1 -1
- data/lib/ruco/editor.rb +9 -0
- data/ruco.gemspec +1 -1
- data/spec/ruco/editor_spec.rb +22 -2
- data/spec/spec_helper.rb +8 -0
- metadata +3 -3
data/Readme.md
CHANGED
@@ -25,14 +25,18 @@ Customize
|
|
25
25
|
|
26
26
|
# ~/.ruco.rb
|
27
27
|
Ruco.configure do
|
28
|
-
# bind a key
|
29
|
-
#
|
30
|
-
#
|
28
|
+
# bind a key
|
29
|
+
# - you can use Integers and Symbols
|
30
|
+
# - use "ruco --debug-keys foo" to see which keys are possible
|
31
|
+
# - have a look at lib/ruco/keyboard.rb
|
31
32
|
bind(:"Ctrl+e") do
|
32
|
-
ask('
|
33
|
-
if response
|
34
|
-
editor.
|
35
|
-
|
33
|
+
ask('foo') do |response|
|
34
|
+
if response == 'bar'
|
35
|
+
editor.insert('baz')
|
36
|
+
else
|
37
|
+
editor.move(:to, 0,0)
|
38
|
+
editor.delete(99999)
|
39
|
+
editor.insert('FAIL!')
|
36
40
|
end
|
37
41
|
end
|
38
42
|
end
|
@@ -40,11 +44,11 @@ Customize
|
|
40
44
|
# bind an existing action
|
41
45
|
puts @actions.keys
|
42
46
|
|
43
|
-
bind
|
44
|
-
bind
|
45
|
-
bind
|
47
|
+
bind :"Ctrl+x", :quit
|
48
|
+
bind :"Ctrl+o", :save
|
49
|
+
bind :"Ctrl+k", :delete_line
|
46
50
|
|
47
|
-
#
|
51
|
+
# create reusable actions
|
48
52
|
action(:first){ editor.move(:to_column, 0) }
|
49
53
|
bind(:"Ctrl+a", :first)
|
50
54
|
bind(:home, :first)
|
@@ -58,7 +62,6 @@ TIPS
|
|
58
62
|
|
59
63
|
TODO
|
60
64
|
=====
|
61
|
-
- limit possible file size to e.g. 1MB (would hang/be too slow with big files)
|
62
65
|
- find next (Alt+n)
|
63
66
|
- add selection colors to forms in command_bar
|
64
67
|
- session storage (stay at same line/column when reopening)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.36
|
data/lib/ruco/editor.rb
CHANGED
@@ -12,7 +12,15 @@ module Ruco
|
|
12
12
|
|
13
13
|
def initialize(file, options)
|
14
14
|
@file = file
|
15
|
+
|
16
|
+
# check for size (10000 lines * 100 chars should be enough for everybody !?)
|
17
|
+
if File.exist?(@file) and File.size(@file) > (1024 * 1024)
|
18
|
+
raise "#{@file} is larger than 1MB, did you really want to open that with Ruco?"
|
19
|
+
end
|
20
|
+
|
15
21
|
content = (File.exist?(@file) ? File.read(@file) : '')
|
22
|
+
|
23
|
+
# check for tabs
|
16
24
|
if content.include?("\t")
|
17
25
|
if options[:convert_tabs]
|
18
26
|
content.tabs_to_spaces!
|
@@ -20,6 +28,7 @@ module Ruco
|
|
20
28
|
raise "#{@file} contains tabs.\nRuco atm does not support tabs, but will happily convert them to spaces if started with --convert-tabs or -c"
|
21
29
|
end
|
22
30
|
end
|
31
|
+
|
23
32
|
@saved_content = content
|
24
33
|
@text_area = EditorArea.new(content, options)
|
25
34
|
end
|
data/ruco.gemspec
CHANGED
data/spec/ruco/editor_spec.rb
CHANGED
@@ -12,8 +12,11 @@ describe Ruco::Editor do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
describe 'convert tabs' do
|
15
|
-
|
15
|
+
before do
|
16
16
|
write("\t\ta")
|
17
|
+
end
|
18
|
+
|
19
|
+
it "reads tab as spaces when option is set" do
|
17
20
|
editor = Ruco::Editor.new(@file, :lines => 3, :columns => 5, :convert_tabs => true)
|
18
21
|
editor.view.should == " a\n\n\n"
|
19
22
|
end
|
@@ -25,6 +28,23 @@ describe Ruco::Editor do
|
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
31
|
+
describe 'huge-files' do
|
32
|
+
it "does not try to open huge files" do
|
33
|
+
write('a'*(1024*1024 + 1))
|
34
|
+
lambda{
|
35
|
+
Ruco::Editor.new(@file, :lines => 3, :columns => 5)
|
36
|
+
}.should raise_error
|
37
|
+
end
|
38
|
+
|
39
|
+
it "opens large files and does not take forever" do
|
40
|
+
write('a'*(1024*1024))
|
41
|
+
Time.benchmark do
|
42
|
+
editor = Ruco::Editor.new(@file, :lines => 3, :columns => 5)
|
43
|
+
editor.view
|
44
|
+
end.should < 1
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
28
48
|
describe :move do
|
29
49
|
before do
|
30
50
|
write(" \n \n ")
|
@@ -678,7 +698,7 @@ describe Ruco::Editor do
|
|
678
698
|
end
|
679
699
|
end
|
680
700
|
|
681
|
-
describe :
|
701
|
+
describe :modified? do
|
682
702
|
it "is unchanged by default" do
|
683
703
|
editor.modified?.should == false
|
684
704
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 87
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 36
|
10
|
+
version: 0.0.36
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Grosser
|