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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b68ee4841d7fc0d326ec4ea7d1244b7848c0b11e
4
- data.tar.gz: 71616a574e1d1df9803564b1bd884d426943362f
3
+ metadata.gz: 002b30af6cad3c7f3496bd767f125b3cc745bfee
4
+ data.tar.gz: 78c5c58b1963a6af5b9f28e10c9292e77f6bd2b5
5
5
  SHA512:
6
- metadata.gz: 65af15904825428047f8c0cd757a2c540f68f83bf1c5dea571bcaaa663133bdc074555bfb585ea6102f69e85ba224df90cd81bf3f5ea96440f77bb809994d8aa
7
- data.tar.gz: 1c3e5dd61c8b9470efc9c4cf3068df6edf912a96e21ff3d2abe55f677c3eb29c893cda8f6b66c15438a87bf54f9d7b325dfb9caf6cde3ff07c6ca20622612ade
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
@@ -1,5 +1,7 @@
1
1
  require "noter/version"
2
2
  require "noter/file_maker"
3
+ require "noter/note_file"
4
+ require "noter/viewer"
3
5
 
4
6
  module Noter
5
7
 
@@ -10,7 +10,7 @@ module Noter
10
10
  end
11
11
 
12
12
  def dir
13
- "#{ENV['HOME']}/.notes"
13
+ NoteFile.dir
14
14
  end
15
15
 
16
16
  def new_filename
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Noter
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -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.1
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-21 00:00:00.000000000 Z
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