notenote 0.0.4 → 0.0.5

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: 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