note_taker 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 66c0a9996a137b4d8e35553ebab9d2d76d7254d3c9c5574e4fd09c1fdad4dd01
4
- data.tar.gz: dac633f42847f9e0ed7153bbca9f2e64d3979dc56fba818f4fa3a15493d4c376
3
+ metadata.gz: c920d293e39282f7518864751291d0178d4dcf2f8fb31e24f2ea8b473f9c7bad
4
+ data.tar.gz: 713a93b2e268549d06ace68e02c9b1332fed5a90b77e1f6606ca78bb26c4cfe1
5
5
  SHA512:
6
- metadata.gz: dc30637358a48a1a9777735da7347db0c56ab33a582da360bf8fff081cac0c02d5edb99d089fb1eb60ddd081d5db36a4ef4b38535c9cf27cd1c9cd2ea0173029
7
- data.tar.gz: 2eac992cd31dddab6e1ceddfb2d0a6f04c4185b2703f572c740683555e2495fcf8da256b88141544e8577d6662b90d1636d74d636b851e9750a49f37380ff062
6
+ metadata.gz: 96000bbfecb3a4b7feb22069780706172af92223a1c69dcb795d190d2723122e19844fb0a96dc67d08008b4692e80ba5d30f08fd3c9a6c71f18b5631db256273
7
+ data.tar.gz: 808f60ec1c0fc659ec9acc914235cf7e5da0d86385451cff7f987090f3d4b53bd4d953d6d9a7bb66ce77539202d70944843793669e01344b433edff7c7b0d575
data/.gitignore CHANGED
@@ -11,3 +11,5 @@
11
11
  .rspec_status
12
12
 
13
13
  *.gem
14
+
15
+ /vendor
data/Gemfile.lock ADDED
@@ -0,0 +1,95 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ note_taker (0.1.0)
5
+ tty-editor
6
+ tty-markdown
7
+ tty-prompt
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ ast (2.4.2)
13
+ coderay (1.1.3)
14
+ diff-lcs (1.4.4)
15
+ kramdown (2.3.1)
16
+ rexml
17
+ method_source (1.0.0)
18
+ parallel (1.20.1)
19
+ parser (3.0.2.0)
20
+ ast (~> 2.4.1)
21
+ pastel (0.8.0)
22
+ tty-color (~> 0.5)
23
+ pry (0.14.1)
24
+ coderay (~> 1.1)
25
+ method_source (~> 1.0)
26
+ rainbow (3.0.0)
27
+ rake (13.0.6)
28
+ regexp_parser (2.1.1)
29
+ rexml (3.2.5)
30
+ rouge (3.26.0)
31
+ rspec (3.10.0)
32
+ rspec-core (~> 3.10.0)
33
+ rspec-expectations (~> 3.10.0)
34
+ rspec-mocks (~> 3.10.0)
35
+ rspec-core (3.10.1)
36
+ rspec-support (~> 3.10.0)
37
+ rspec-expectations (3.10.1)
38
+ diff-lcs (>= 1.2.0, < 2.0)
39
+ rspec-support (~> 3.10.0)
40
+ rspec-mocks (3.10.2)
41
+ diff-lcs (>= 1.2.0, < 2.0)
42
+ rspec-support (~> 3.10.0)
43
+ rspec-support (3.10.2)
44
+ rubocop (1.20.0)
45
+ parallel (~> 1.10)
46
+ parser (>= 3.0.0.0)
47
+ rainbow (>= 2.2.2, < 4.0)
48
+ regexp_parser (>= 1.8, < 3.0)
49
+ rexml
50
+ rubocop-ast (>= 1.9.1, < 2.0)
51
+ ruby-progressbar (~> 1.7)
52
+ unicode-display_width (>= 1.4.0, < 3.0)
53
+ rubocop-ast (1.11.0)
54
+ parser (>= 3.0.1.1)
55
+ ruby-progressbar (1.11.0)
56
+ strings (0.2.1)
57
+ strings-ansi (~> 0.2)
58
+ unicode-display_width (>= 1.5, < 3.0)
59
+ unicode_utils (~> 1.4)
60
+ strings-ansi (0.2.0)
61
+ tty-color (0.6.0)
62
+ tty-cursor (0.7.1)
63
+ tty-editor (0.7.0)
64
+ tty-prompt (~> 0.22)
65
+ tty-markdown (0.7.0)
66
+ kramdown (>= 1.16.2, < 3.0)
67
+ pastel (~> 0.8)
68
+ rouge (~> 3.14)
69
+ strings (~> 0.2.0)
70
+ tty-color (~> 0.5)
71
+ tty-screen (~> 0.8)
72
+ tty-prompt (0.23.1)
73
+ pastel (~> 0.8)
74
+ tty-reader (~> 0.8)
75
+ tty-reader (0.9.0)
76
+ tty-cursor (~> 0.7)
77
+ tty-screen (~> 0.8)
78
+ wisper (~> 2.0)
79
+ tty-screen (0.8.1)
80
+ unicode-display_width (2.0.0)
81
+ unicode_utils (1.4.0)
82
+ wisper (2.0.1)
83
+
84
+ PLATFORMS
85
+ x86_64-linux
86
+
87
+ DEPENDENCIES
88
+ note_taker!
89
+ pry
90
+ rake (~> 13.0)
91
+ rspec (~> 3.0)
92
+ rubocop (~> 1.7)
93
+
94
+ BUNDLED WITH
95
+ 2.2.17
@@ -0,0 +1,120 @@
1
+ class Note
2
+ class << self
3
+ def create
4
+ prompt.say('What is the filename of the note you want to create? (or press ctrl+c to abort)')
5
+ input = prompt.ask('‣') do |q|
6
+ q.required true
7
+ end
8
+
9
+ filepath = "#{ENV['HOME']}/#{dir}/#{input}.md".shellescape
10
+ `touch #{filepath}`
11
+ new(input)
12
+ end
13
+
14
+ def search(prompt_message: 'Choose a note.')
15
+ if filenames.empty?
16
+ prompt.puts('Folder currently empty')
17
+ return
18
+ end
19
+
20
+ input = prompt.select(
21
+ prompt_message,
22
+ filenames,
23
+ filter: true,
24
+ per_page: 40,
25
+ help: '(or press ctrl+c to abort)',
26
+ show_help: :always
27
+ )
28
+ new(input)
29
+ end
30
+
31
+ def dir
32
+ NoteApplication.config['general']['directory']
33
+ end
34
+
35
+ def prompt
36
+ @prompt ||= TTY::Prompt.new(quiet: true, interrupt: -> { throw(:quit) })
37
+ end
38
+
39
+ private
40
+
41
+ def filenames
42
+ `ls ~/#{dir}`.split("\n").map { |file| file.chomp('.md') }
43
+ end
44
+ end
45
+
46
+ attr_reader :filename, :location
47
+
48
+ def initialize(filename)
49
+ @filename = filename
50
+ end
51
+
52
+ def view
53
+ catch(:note_quit) do
54
+ loop do
55
+ NoteApplication.header unless NoteApplication.inline?
56
+ parsed = TTY::Markdown.parse_file(file_path)
57
+ NoteApplication.options[:inline] ? puts(parsed) : prompt.puts(parsed)
58
+ prompt.puts("\n")
59
+
60
+ break if NoteApplication.inline?
61
+
62
+ note_menu
63
+ end
64
+ end
65
+ end
66
+
67
+ def edit
68
+ TTY::Editor.open(file_path)
69
+ end
70
+
71
+ def delete
72
+ return unless prompt.yes?("Are you sure you want to delete '#{filename}'")
73
+
74
+ `rm #{file_path.shellescape}`
75
+ end
76
+
77
+ private
78
+
79
+ def note_menu
80
+ choices = [
81
+ { key: 'e', name: 'edit', value: :edit },
82
+ { key: 'r', name: 'rename', value: :rename },
83
+ { key: 'd', name: 'delete', value: :delete },
84
+ { key: 'q', name: 'quit', value: :quit }
85
+ ]
86
+ input = prompt.expand('Action:', choices)
87
+
88
+ case input
89
+ when :edit
90
+ edit
91
+ when :rename
92
+ rename
93
+ when :delete
94
+ delete
95
+ throw(:note_quit)
96
+ when :quit
97
+ throw(:note_quit)
98
+ end
99
+ end
100
+
101
+ def rename
102
+ input = prompt.ask('What is the new filename?')
103
+
104
+ new_filename = input.shellescape
105
+ `mv #{file_path.shellescape} #{path}#{new_filename}.md"`
106
+ @filename = input
107
+ end
108
+
109
+ def path
110
+ "#{ENV['HOME']}/#{self.class.dir}/"
111
+ end
112
+
113
+ def file_path
114
+ "#{path}#{filename}.md"
115
+ end
116
+
117
+ def prompt
118
+ self.class.prompt
119
+ end
120
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NoteTaker
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
data/lib/note_taker.rb CHANGED
@@ -3,6 +3,12 @@
3
3
  require_relative "note_taker/version"
4
4
  require_relative 'note_taker/note.rb'
5
5
 
6
+ require 'yaml'
7
+ require 'getoptlong'
8
+ require 'tty-editor'
9
+ require 'tty-markdown'
10
+ require 'tty-prompt'
11
+
6
12
  module NoteTaker
7
13
  class Error < StandardError; end
8
14
 
data/note_taker.gemspec CHANGED
@@ -18,18 +18,17 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  # Specify which files should be added to the gem when it is released.
20
20
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
- spec.files = [".gitignore", ".rspec", ".rubocop.yml", "CHANGELOG.md", "Gemfile", "README.md", "Rakefile", "bin/console", "bin/setup", "exe/note_taker", "lib/note_taker.rb", "lib/note_taker/version.rb", "note_taker.gemspec"]
22
- # spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
- # `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
24
- # end
21
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
23
+ end
25
24
  spec.bindir = "exe"
26
25
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
27
26
  spec.require_paths = ["lib"]
28
27
 
29
28
  # Uncomment to register a new dependency of your gem
30
- spec.add_dependency "tty-editor"
31
- spec.add_dependency "tty-markdown"
32
- spec.add_dependency "tty-prompt"
29
+ spec.add_runtime_dependency "tty-editor"
30
+ spec.add_runtime_dependency "tty-markdown"
31
+ spec.add_runtime_dependency "tty-prompt"
33
32
 
34
33
  spec.add_development_dependency "pry"
35
34
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: note_taker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harry Venables
@@ -79,12 +79,14 @@ files:
79
79
  - ".rubocop.yml"
80
80
  - CHANGELOG.md
81
81
  - Gemfile
82
+ - Gemfile.lock
82
83
  - README.md
83
84
  - Rakefile
84
85
  - bin/console
85
86
  - bin/setup
86
87
  - exe/note_taker
87
88
  - lib/note_taker.rb
89
+ - lib/note_taker/note.rb
88
90
  - lib/note_taker/version.rb
89
91
  - note_taker.gemspec
90
92
  homepage: https://github.com/hvenables/note_taker
@@ -108,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
110
  - !ruby/object:Gem::Version
109
111
  version: '0'
110
112
  requirements: []
111
- rubygems_version: 3.1.4
113
+ rubygems_version: 3.2.27
112
114
  signing_key:
113
115
  specification_version: 4
114
116
  summary: A Note taking gem