hackademic 0.2.0 → 0.2.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
  SHA1:
3
- metadata.gz: c2e7259df01f7ad5ae1790905497a2455230fd8a
4
- data.tar.gz: 682e0d0194273a23ba78c8853b66b6fbe8454a2e
3
+ metadata.gz: b5e2b1841bdc6508424f5c79886a3ecb6cbce4b1
4
+ data.tar.gz: e19c545b50617ddf53fb597cfacec420f93082a5
5
5
  SHA512:
6
- metadata.gz: 2caeaaf5f13b5452ab6fd9cade812ffa2fb944d2d7b27ceebf760a6eb20f419a0ab54254ec3bb5c717992291611d238bf8cd9f57983f84bda6ef5c7bd7c79444
7
- data.tar.gz: 63ed6080284fc0265f53da0c5956c8f6ebda3133b2267d90cbb89d971168ed0dc83dd07b726a3f84c7570488361254531c76a7d1b23b43b5f3a8fe8197226d3a
6
+ metadata.gz: d0fe70cfd3f2b28c9994386344fe0804adfa4c91c455bbe482ea4b07d9a4064c0d3786ef68a675427d3db835e964c58a10e39d7fbcb0bd2ee07a16d095d2713e
7
+ data.tar.gz: e7d02fc4c4d42749c4e65ada5a3fc10e8c8de92c9994a9991773548b4bf7d9a686920f8295f89f8fa1e70c2e8cab266cfa581c087b3fa34a731b8b92d7661e4f
data/hackademic.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'hackademic'
3
- s.version = '0.2.0'
3
+ s.version = '0.2.5'
4
4
  s.date = '2016-01-03'
5
5
  s.summary = "Create and manage your academic workflow"
6
6
  s.description = "Hackademic manages your plain-text academic workflow."
data/lib/hackademic.rb CHANGED
@@ -2,6 +2,7 @@ require "rubygems"
2
2
  require "yaml"
3
3
  require "thor"
4
4
  require 'active_support'
5
+ require_relative 'hackademy/sync'
5
6
 
6
7
  class Hackademic < Thor
7
8
 
@@ -9,6 +10,8 @@ class Hackademic < Thor
9
10
 
10
11
  Hackademic.source_root('$HOME/Dropbox')
11
12
 
13
+ register Sync, :sync, "sync [subcommand]", "Synchronize!"
14
+
12
15
  desc "setup [FOLDER]", "Setup a new Hackademic repository at [FOLDER]"
13
16
  def setup(root_directory)
14
17
 
@@ -18,6 +21,7 @@ class Hackademic < Thor
18
21
 
19
22
  directory = "#{root_directory}/Hackademic"
20
23
  empty_directory(directory)
24
+ File.open("#{ENV['HOME']}/.hackademic", "w+"){|config| config << directory }
21
25
 
22
26
  empty_directory "#{directory}/Libraries"
23
27
  empty_directory "#{directory}/Libraries/My-Library"
@@ -48,7 +52,7 @@ class Hackademic < Thor
48
52
  say "--------------------------------------------------------------", :cyan
49
53
  say "⫸⫸⫸⫸ Setting up project #{project_name}!", :cyan
50
54
 
51
- project = "~/Dropbox/Hackademic/Projects/#{project_name}"
55
+ project = "#{hackademic_directory}/Projects/#{project_name}"
52
56
  empty_directory(project)
53
57
 
54
58
  say "»»»»» Creating *_WORKING_* directory:", :green
@@ -108,6 +112,9 @@ class Hackademic < Thor
108
112
 
109
113
  no_tasks {
110
114
 
115
+ def hackademic_directory
116
+ @hackademic_directory ||= File.open("#{ENV['HOME']}/.hackademic", "r").read.chomp
117
+ end
111
118
  }
112
119
 
113
120
  end
@@ -0,0 +1,34 @@
1
+ class Sync < Thor
2
+ desc "notes", "longer desc"
3
+ def notes
4
+ begin
5
+
6
+ notes_database_directory_path = "#{ENV['HOME']}/Dropbox/Hackademic/Notes"
7
+ notes_database_files = `ls -1 #{notes_database_directory_path}`.split("\n")
8
+
9
+ # project_directory_root_path = "/Users/lodestone/Sync/Code/overall-linking-example/001-DISS"
10
+ # for every directory in the projects folder, do this stuff:
11
+ # p notes_database_directory_path
12
+ Dir.glob("#{ENV['HOME']}/Dropbox/Hackademic/Projects/*").each do |dir|
13
+
14
+ project_directory_root_path = dir
15
+ referenced_files = `grep -a -h -r -o -G "{{.*}}" #{project_directory_root_path}`.split("\n").map{|f| f.gsub("{{", "").gsub("}}", "") }
16
+
17
+ referenced_files.each do |file|
18
+ if notes_database_files.include? file
19
+ `unison -silent #{notes_database_directory_path}/#{file} #{project_directory_root_path}/Resources/Notes/#{file}`
20
+ end
21
+ end
22
+
23
+ project_notes = `ls -1 #{project_directory_root_path}/Resources/Notes`.split("\n")
24
+ project_notes.each do |file|
25
+ `unison -silent #{project_directory_root_path}/Resources/Notes/#{file} #{notes_database_directory_path}/#{file}`
26
+ end
27
+ end
28
+
29
+ rescue => ex
30
+ File.open("#{ENV['HOME']}/Library/Logs/hackademic-error.log", "a"){|file| file << ex }
31
+ end
32
+
33
+ end
34
+ end
@@ -1,3 +1,5 @@
1
1
  # MAIN DRAFT FOR <%= @project_name %>
2
2
 
3
3
  *Write lots of good stuff here*
4
+
5
+ {{SampleNote.md}}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hackademic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Petty
@@ -25,6 +25,7 @@ files:
25
25
  - lib/hackademic.rb
26
26
  - lib/hackademy/hackademy.rb
27
27
  - lib/hackademy/setup.rb
28
+ - lib/hackademy/sync.rb
28
29
  - templates/CHANGELOG.md.tt
29
30
  - templates/Config.yml.tt
30
31
  - templates/DRAFT.md.tt