notenote 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b6879e1aa7c6522ca4115b8cc9e2bb35e5b35c56d3d844546fbf5207472bd6b
4
- data.tar.gz: 1b88305949d1ae6d7d8b1b63a0704942f8b3bf14df7ddb47b9c976675e079b46
3
+ metadata.gz: ecfda3937a0ea3defb410fab57624938d0d3b1c6d1396c9f26ba8fe43d092e03
4
+ data.tar.gz: 0ae3216b3fa3b55c1717f9e7667344285c2416217c4f3069e5e3032a96ad5080
5
5
  SHA512:
6
- metadata.gz: 0c710812b969e74bc21283132d006af95fa2883cbf64a510cf6bc32cf1170998ee770db5243cca139593094c1f181293781f6758e4d60734773cd6dbc5eab4c2
7
- data.tar.gz: 582f0e27bb423fc3f54f5997c4d42d4c1ebf54f637e2a2931921ab4016af1e8f5e7ba4e5064a62ff5608d48b02dcdffc76143e81d572f6e40df400717011a786
6
+ metadata.gz: 7d4d126d852699215f245f83ee14dec71e0e1fee91bda9bead8ea9b7c1a5631fe5fc60149271fd2639e6a2377fb3ffe4e982ef09c1511c3e55d0439694a09059
7
+ data.tar.gz: 45a92cfbc51472c916481172c5434df36d296273b7e09dba62b2b8b795717027070fc218d6c8ed5e052400c0309c0508718a898ec4c2d56997ee852d872e09d8
data/lib/note/cli.rb CHANGED
@@ -64,6 +64,10 @@ module Note
64
64
  end tell
65
65
  END
66
66
 
67
+ 0
68
+ elsif args.first == "push"
69
+ push_notes
70
+
67
71
  0
68
72
  else
69
73
  puts "Hm, I don't know this command 🤔"
@@ -104,8 +108,9 @@ module Note
104
108
 
105
109
  def create_note_file(file_name: "notes.md")
106
110
  notes_folder = notenote_config["notes_folder"]
111
+ date_format = notenote_config["date_format"]
107
112
 
108
- today_folder = File.join(notes_folder, Time.now.strftime("%d-%m-%Y"))
113
+ today_folder = File.join(notes_folder, Time.now.strftime(date_format))
109
114
 
110
115
  Dir.mkdir(today_folder) unless Dir.exist?(today_folder)
111
116
 
@@ -139,5 +144,54 @@ module Note
139
144
  def unindent(str)
140
145
  str.gsub(/^#{str.scan(/^[ \t]+(?=\S)/).min}/, "")
141
146
  end
147
+
148
+ # This function parses the output of diffstat:
149
+ #
150
+ # git diff HEAD | diffstat -Cm
151
+ #
152
+ # notes.md | 2 ++
153
+ # testing.md | 5 ----!
154
+ # 2 files changed, 2 insertions(+), 4 deletions(-), 1 modification(!)
155
+ #
156
+ # { "+" => 2, "-" => 4, "!" => 1}
157
+ def git_diff_stat
158
+ Dir.chdir(notenote_config["notes_folder"])
159
+
160
+ raw_diffstat = `git diff HEAD | diffstat -Cm`
161
+
162
+ raw_changes = raw_diffstat.split("\n").last.split(",").map(&:strip)
163
+
164
+ raw_changes.each_with_object({}) do |change, o|
165
+ next unless change =~ /[\+\-\!]/
166
+
167
+ type = change.scan(/([\+\-\!])/)[0][0]
168
+ num = change.scan(/\A(\d+)\s/)[0][0]
169
+
170
+ o[type] = num
171
+ end
172
+ end
173
+
174
+ def notes_changed_or_deleted?
175
+ diff_stat = git_diff_stat
176
+
177
+ diff_stat.member?("-") || diff_stat.member?("!")
178
+ end
179
+
180
+ def push_notes
181
+ if notes_changed_or_deleted?
182
+ puts "Some of the notes were mofified or deleted. Please, check them up and push manually."
183
+ return
184
+ end
185
+
186
+ Dir.chdir(notenote_config["notes_folder"])
187
+
188
+ system "git add ."
189
+
190
+ system %(git commit -m "#{notenote_config["commit_message"]}")
191
+
192
+ system "git push"
193
+
194
+ puts "Pushed. ✅"
195
+ end
142
196
  end
143
197
  end
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "notes_folder": "%{notes_folder}",
3
+ "date_format": "%d-%m-%Y",
3
4
  "editor_command": "code",
4
5
  "commit_message": "Added new notes"
5
6
  }
data/lib/note/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Note
2
- VERSION = "0.0.4".freeze
2
+ VERSION = "0.0.5".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notenote
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anatoli Makarevich