recollect 0.1.0 → 0.2.0
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/README.md +41 -3
- data/lib/recollect/recollect.rb +22 -5
- data/lib/recollect/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e3d00282c17fba86e18ad631460ffcc5cc226e76
|
|
4
|
+
data.tar.gz: a59f90c81d71381aa96892d9d8ee3505faf85538
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '084a527836009242fc5658f36dccc22131dede1092d1bcfc68e171c928f006e648b74cc364d1c35f0fb6d28f0c213600075fbe64826016ee8ae08d9a95158871'
|
|
7
|
+
data.tar.gz: 7395a729ae2753b11a1da054191f8e9bf0d1ff745b78985b00688e6277f5bf8ec9f9374522eb677bcea257576f82a4ec45a8ded1544f9074e6c233f90bb390cb
|
data/README.md
CHANGED
|
@@ -7,9 +7,13 @@ A simple tool for creating, managing, and viewing snippets, notes, or pretty muc
|
|
|
7
7
|
|
|
8
8
|
gem install recollect
|
|
9
9
|
|
|
10
|
-
If you haven't already, you should set your EDITOR. On OSX you can set it to Textmate with a command like:
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
### Search Functions
|
|
12
|
+
Recollect includes both a `search` directive and a recollection matching capability.
|
|
13
|
+
|
|
14
|
+
The search capability looks inside of files for a specific search string using a line match (`=~ /string/`).
|
|
15
|
+
|
|
16
|
+
The recollection match will try to find similar recollection names when showing a recollection or when using edit, remove, or append. When only one match is found the user is prompted to confirm this is the recollection intended; on confirmation the requested action will be executed. When multiple matches are found they will be displayed as suggestions.
|
|
13
17
|
|
|
14
18
|
### Usage
|
|
15
19
|
|
|
@@ -30,4 +34,38 @@ If you haven't already, you should set your EDITOR. On OSX you can set it to Tex
|
|
|
30
34
|
Note: ["new", "edit", "remove", "help", "search", "append"] are reserved and cannot be the name
|
|
31
35
|
of a recollection.
|
|
32
36
|
|
|
33
|
-
Version: 0.
|
|
37
|
+
Version: 0.2.0
|
|
38
|
+
|
|
39
|
+
### Examples
|
|
40
|
+
|
|
41
|
+
If you haven't already, you should set your EDITOR. On OSX you can set it to Textmate with a command like:
|
|
42
|
+
|
|
43
|
+
echo 'export EDITOR="mate -w" >> ~/.bash_profile
|
|
44
|
+
|
|
45
|
+
##### Create a new recollection named git
|
|
46
|
+
recollect new git # edit, save, and close the editor
|
|
47
|
+
|
|
48
|
+
##### List the available recollections
|
|
49
|
+
recollect list
|
|
50
|
+
|
|
51
|
+
##### List the available recollections under mysql/
|
|
52
|
+
recollect list mysql
|
|
53
|
+
|
|
54
|
+
##### Edit the git recollection
|
|
55
|
+
recollect edit git # edit, save, and close the editor
|
|
56
|
+
|
|
57
|
+
##### Display the git recollection
|
|
58
|
+
recollect git
|
|
59
|
+
|
|
60
|
+
##### Search for recollections containing 'postgres'
|
|
61
|
+
recollect search 'postgres'
|
|
62
|
+
|
|
63
|
+
##### Find with a partial recollection name
|
|
64
|
+
recollect ra
|
|
65
|
+
|
|
66
|
+
> **** Unable to find a recollection matching 'ra'
|
|
67
|
+
> You might have meant:
|
|
68
|
+
> raid
|
|
69
|
+
> rails
|
|
70
|
+
> unicorn/rack
|
|
71
|
+
|
data/lib/recollect/recollect.rb
CHANGED
|
@@ -5,12 +5,12 @@ require 'version'
|
|
|
5
5
|
module Recollect
|
|
6
6
|
class Recollection
|
|
7
7
|
def initialize(args)
|
|
8
|
-
@reserved = %w[new edit remove help search append]
|
|
8
|
+
@reserved = %w[new edit remove help list search append]
|
|
9
9
|
@action, @name, @append_string = args
|
|
10
10
|
usage unless args.length >= 1 && args.length <= 3
|
|
11
11
|
usage if @action == 'append' && args.length != 3
|
|
12
12
|
usage if @action != 'append' && args.length > 2
|
|
13
|
-
usage if @reserved.include?(@action) && args.length < 2
|
|
13
|
+
usage if @reserved.include?(@action) && args.length < 2 && @action != 'list'
|
|
14
14
|
usage if args.length == 2 && @reserved.include?(@name)
|
|
15
15
|
@separator = '-------------------------'
|
|
16
16
|
@recollect_path = File.join(ENV['HOME'], '.recollections')
|
|
@@ -66,10 +66,22 @@ module Recollect
|
|
|
66
66
|
def verify_name(item = @name)
|
|
67
67
|
unless item_exists?(item)
|
|
68
68
|
puts "**** Unable to find a recollection matching '#{item}'"
|
|
69
|
+
similar = find_similar(item)
|
|
69
70
|
if File.directory?(File.join(@recollect_path, item))
|
|
70
71
|
puts "Here are the contents of that category:"
|
|
71
72
|
list_recollections(item)
|
|
72
73
|
exit
|
|
74
|
+
elsif similar.length == 1
|
|
75
|
+
puts "Did you mean: '#{nice_name(similar.first)}' [Y/n]?"
|
|
76
|
+
if confirm?
|
|
77
|
+
@name = nice_name(similar.first)
|
|
78
|
+
else
|
|
79
|
+
exit
|
|
80
|
+
end
|
|
81
|
+
elsif similar.length > 1
|
|
82
|
+
puts "You might have meant:"
|
|
83
|
+
similar.each { |s| puts " #{nice_name(s)}" }
|
|
84
|
+
exit
|
|
73
85
|
else
|
|
74
86
|
usage
|
|
75
87
|
end
|
|
@@ -80,6 +92,10 @@ module Recollect
|
|
|
80
92
|
recollections.find { |e| /#{item}\./ =~ e }
|
|
81
93
|
end
|
|
82
94
|
|
|
95
|
+
def find_similar(item)
|
|
96
|
+
recollections.reject { |e| e unless /\b#{item}/ =~ nice_name(e) }
|
|
97
|
+
end
|
|
98
|
+
|
|
83
99
|
def write_file
|
|
84
100
|
fullPath = File.join(@recollect_path, @name) + '.txt'
|
|
85
101
|
subdir = File.dirname(fullPath)
|
|
@@ -117,6 +133,7 @@ module Recollect
|
|
|
117
133
|
|
|
118
134
|
def remove_recollection
|
|
119
135
|
verify_name
|
|
136
|
+
puts "Are you sure you want to remove #{@name} [Y/n]?"
|
|
120
137
|
if confirm?
|
|
121
138
|
File.delete(File.join(@recollect_path, @name) + '.txt')
|
|
122
139
|
cleanup_path(File.dirname(File.join(@recollect_path, @name)))
|
|
@@ -132,9 +149,9 @@ module Recollect
|
|
|
132
149
|
end
|
|
133
150
|
|
|
134
151
|
def print_recollection
|
|
135
|
-
verify_name
|
|
152
|
+
verify_name
|
|
136
153
|
puts @separator
|
|
137
|
-
File.open(File.join(@recollect_path, @
|
|
154
|
+
File.open(File.join(@recollect_path, @name) + '.txt', 'r') do |f|
|
|
138
155
|
f.each_line do |line|
|
|
139
156
|
puts line
|
|
140
157
|
end
|
|
@@ -159,7 +176,6 @@ module Recollect
|
|
|
159
176
|
end
|
|
160
177
|
|
|
161
178
|
def confirm?
|
|
162
|
-
puts "Are you sure you want to remove #{@name} [Y/n]?"
|
|
163
179
|
a = $stdin.gets.chomp.downcase
|
|
164
180
|
a == 'y' ? true : false
|
|
165
181
|
end
|
|
@@ -179,6 +195,7 @@ module Recollect
|
|
|
179
195
|
when 'append'
|
|
180
196
|
append_recollection
|
|
181
197
|
else
|
|
198
|
+
@name = @action
|
|
182
199
|
print_recollection
|
|
183
200
|
end
|
|
184
201
|
end
|
data/lib/recollect/version.rb
CHANGED