noter 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/noter +4 -0
- data/lib/noter.rb +2 -0
- data/lib/noter/file_maker.rb +1 -1
- data/lib/noter/note_file.rb +27 -0
- data/lib/noter/version.rb +1 -1
- data/lib/noter/viewer.rb +16 -0
- data/spec/lib/noter/note_file_spec.rb +37 -0
- data/spec/lib/noter/viewer_spec.rb +30 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 002b30af6cad3c7f3496bd767f125b3cc745bfee
|
4
|
+
data.tar.gz: 78c5c58b1963a6af5b9f28e10c9292e77f6bd2b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5f7007bb761ecaae4a5f0b95bca50fc7e22a00e2e8d273193d0e4dc0561a0a400c39b5fce2cc981f3904e2e6b4e90c2859d1df23dfa0dec3a4415474dff9438
|
7
|
+
data.tar.gz: 7b3c39cc077ad2d82264d00b3c11158a7d20ab3ea42e5f907f25fef3ae6208948e6528b0e5402b69f8166a211223acb4270eb9a08ddd543d692d4a807baf7287
|
data/bin/noter
CHANGED
@@ -10,6 +10,10 @@ class NoteRunner
|
|
10
10
|
Noter::FileMaker.new.make_from_file(filename)
|
11
11
|
end
|
12
12
|
|
13
|
+
opts.on("-l", "--one-line", "Show first lines of each note file") do
|
14
|
+
Noter::Viewer.new.show_first_lines
|
15
|
+
end
|
16
|
+
|
13
17
|
opts.on("-m", "--message MESSAGE", "Use the given message as the note") do |message|
|
14
18
|
Noter::FileMaker.new(message).save_file
|
15
19
|
end
|
data/lib/noter.rb
CHANGED
data/lib/noter/file_maker.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Noter
|
2
|
+
class NoteFile
|
3
|
+
attr_reader :filename
|
4
|
+
|
5
|
+
def initialize(filename)
|
6
|
+
@filename = filename
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.dir
|
10
|
+
"#{ENV['HOME']}/.notes"
|
11
|
+
end
|
12
|
+
|
13
|
+
def formatted_time
|
14
|
+
basename = File.basename(@filename, ".txt")
|
15
|
+
numbers = basename.split("_")
|
16
|
+
"#{numbers[1]}-#{numbers[2]} #{numbers[3]}:#{numbers[4]}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def content
|
20
|
+
File.read(filename)
|
21
|
+
end
|
22
|
+
|
23
|
+
def first_line
|
24
|
+
content.split("\n")[0]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/noter/version.rb
CHANGED
data/lib/noter/viewer.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "noter/note_file"
|
2
|
+
|
3
|
+
module Noter
|
4
|
+
class Viewer
|
5
|
+
def existing_files
|
6
|
+
Dir.glob("#{NoteFile.dir}/*")
|
7
|
+
end
|
8
|
+
|
9
|
+
def show_first_lines
|
10
|
+
existing_files.each do |filename|
|
11
|
+
file = NoteFile.new(filename)
|
12
|
+
puts "#{file.formatted_time}: #{file.first_line}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "pp" # to avoid an error in fakefs
|
2
|
+
require "fakefs"
|
3
|
+
require "noter/note_file"
|
4
|
+
|
5
|
+
module Noter
|
6
|
+
describe NoteFile do
|
7
|
+
let(:file) { Noter::NoteFile.new("2014_09_21_18_20_22.txt") }
|
8
|
+
|
9
|
+
before do
|
10
|
+
FileUtils.mkdir_p NoteFile.dir
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns a formatted time from the filename" do
|
14
|
+
expect(file.formatted_time).to eql("09-21 18:20")
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#content" do
|
18
|
+
before do
|
19
|
+
File.write(file.filename, "some content")
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns the content of the file" do
|
23
|
+
expect(file.content).to eql("some content")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#first_line" do
|
28
|
+
before do
|
29
|
+
File.write(file.filename, "some content\nline 2")
|
30
|
+
end
|
31
|
+
|
32
|
+
it "returns the content of the file" do
|
33
|
+
expect(file.first_line).to eql("some content")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "pp" # to avoid an error in fakefs
|
2
|
+
require "fakefs"
|
3
|
+
require "noter/viewer"
|
4
|
+
|
5
|
+
module Noter
|
6
|
+
describe Viewer do
|
7
|
+
let(:viewer) { Noter::Viewer.new }
|
8
|
+
|
9
|
+
before do
|
10
|
+
FileUtils.mkdir_p NoteFile.dir
|
11
|
+
File.write("#{NoteFile.dir}/2014_09_21_18_20_22.txt", "file 1\nline 2")
|
12
|
+
File.write("#{NoteFile.dir}/2014_09_21_19_20_22.txt", "file 2\nline 2")
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#existing_files" do
|
16
|
+
it "returns the names of all the existing files" do
|
17
|
+
expect(viewer.existing_files).to eql(%W{#{NoteFile.dir}/2014_09_21_18_20_22.txt #{NoteFile.dir}/2014_09_21_19_20_22.txt})
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#show_first_lines" do
|
22
|
+
it "shows first lines" do
|
23
|
+
expect(viewer).to receive(:puts).with("09-21 18:20: file 1")
|
24
|
+
expect(viewer).to receive(:puts).with("09-21 19:20: file 2")
|
25
|
+
viewer.show_first_lines
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: noter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Roush
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -125,9 +125,13 @@ files:
|
|
125
125
|
- bin/noter
|
126
126
|
- lib/noter.rb
|
127
127
|
- lib/noter/file_maker.rb
|
128
|
+
- lib/noter/note_file.rb
|
128
129
|
- lib/noter/version.rb
|
130
|
+
- lib/noter/viewer.rb
|
129
131
|
- noter.gemspec
|
130
132
|
- spec/lib/noter/file_maker_spec.rb
|
133
|
+
- spec/lib/noter/note_file_spec.rb
|
134
|
+
- spec/lib/noter/viewer_spec.rb
|
131
135
|
homepage: https://github.com/jeff-r/noter
|
132
136
|
licenses:
|
133
137
|
- MIT
|
@@ -154,3 +158,5 @@ specification_version: 4
|
|
154
158
|
summary: Creates timestamped notes.
|
155
159
|
test_files:
|
156
160
|
- spec/lib/noter/file_maker_spec.rb
|
161
|
+
- spec/lib/noter/note_file_spec.rb
|
162
|
+
- spec/lib/noter/viewer_spec.rb
|