lense 0.1.31 → 0.1.32

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/lense +3 -3
  3. data/lib/lense.rb +67 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c87de13b1733ae9f75203599c6bf3aadc779a9f5
4
- data.tar.gz: 6e33398067eb91a40ff3dbf2e50cf5eed0c267cd
3
+ metadata.gz: ecf97e0a23acb96f3d84a029e60a585241041ff0
4
+ data.tar.gz: b8bd992c51ffa86246dfed2c4104655658e425af
5
5
  SHA512:
6
- metadata.gz: c1d8f8808a3b9f4088ce1450b94a3cf4f28ed0a7d7d6d21cb65751f1a3db0fb72950f2bf1b307bfaeace10c412d8506c95e8758132807a17efc39d863cae2005
7
- data.tar.gz: fd0864cb9f74af352ecfc5b4a6983360efed45baecb2836dab2c30689b2ad3f5c3452cd443f9f3fa80cfac512d61bdf7f4b8bf142893173dbd0cacbff002d902
6
+ metadata.gz: e3e3f1fbb7ce8c3afa1817a5c3414fc217d8e3cfac4e7ed5f49b836bd584bf99eb5d24ef0fa2f3c09001a671482bc4d642351de31bd48771e39f81eff09b0871
7
+ data.tar.gz: 5542bd124a099f7292723fa27989f15fc0d1e41a65500c56f78a7f060b60f45fe2d0c3eb48bc2092cb9f28ecfd292bfa0b1ccf6bc45a366298081394ce039c73
data/bin/lense CHANGED
@@ -18,7 +18,7 @@ pre do |global_options,command,options,args|
18
18
  found_docker_compose = system_check('which docker-compose')
19
19
  docker_running = found_docker && system_check('docker version')
20
20
  found_vagrant = system_check('which vagrant')
21
- found_git = system_check('which git')
21
+ found_sqlite3 = system_check('which sqlite3')
22
22
 
23
23
  be_quiet = global_options[:quiet] || LENSE_APP.config["quiet"]
24
24
  puts "WARNING: Docker not found. Unable to run courses that use Docker!" unless found_docker || be_quiet
@@ -27,7 +27,7 @@ pre do |global_options,command,options,args|
27
27
  puts "WARNING: Vagrant not found. Unable to run courses that use Vagrant!" unless found_vagrant || be_quiet
28
28
 
29
29
  minimal_needed = found_docker || found_vagrant
30
- exit_now!("Must have git installed!") unless found_git
30
+ exit_now!("Must have sqlite3 installed!") unless found_sqlite3
31
31
  exit_now!("Must have either Docker or Vagrant!") unless minimal_needed
32
32
 
33
33
  minimal_needed
@@ -91,7 +91,7 @@ end
91
91
 
92
92
  command :commit do |c|
93
93
  c.action do
94
- puts 'TODO implement saving of current course'
94
+ LENSE_APP.commit
95
95
  end
96
96
  end
97
97
 
data/lib/lense.rb CHANGED
@@ -1,11 +1,12 @@
1
1
  require 'rest-client'
2
2
  require 'highline/import'
3
3
  require 'digest'
4
+ require 'sqlite3'
4
5
 
5
6
  class LENSE
6
7
  attr_reader :config, :current_course, :lense_file_hash
7
8
 
8
- VERSION = '0.1.31'
9
+ VERSION = '0.1.32'
9
10
  LENSE_DIR = File.join(ENV['HOME'],'.lense')
10
11
  COURSES_DIR = File.join(LENSE_DIR,'courses')
11
12
  CURRENT_COURSE_FILE = File.join(LENSE_DIR,'current_course')
@@ -28,6 +29,8 @@ class LENSE
28
29
  @current_course = File.read(CURRENT_COURSE_FILE).strip()
29
30
  @current_course = '> NOT SET <' if @current_course.empty?
30
31
  @lense_file_hash = Digest::SHA256.hexdigest(File.read(LENSE_FILE)) if File.file?(LENSE_FILE)
32
+ @DB = SQLite3::Database.new File.join(LOCAL_LENSE_DIR,'db')
33
+ setup_db()
31
34
  end
32
35
 
33
36
  def select_course(course)
@@ -134,5 +137,68 @@ class LENSE
134
137
  def status()
135
138
  say "Hash : #{@lense_file_hash}"
136
139
  exit_now!("Not a LENSE project: .lense") unless File.directory?(LOCAL_LENSE_DIR)
140
+ # check changes in depenancy files
141
+ # - for each depenceny
142
+ # - - get the current file hash
143
+ # - - check against .lense/deps/#{rel_path_to_dep}
144
+ # - - output any ones that have changed
145
+ end
146
+
147
+ def commit()
148
+ # copy LENSEfile to .lense/refs/#{hash}
149
+ # write the new hash to the CURRENT_REF_FILE
150
+ # loop through staged dependancies
151
+ # - update expected hashes for dependancies
152
+ end
153
+
154
+ def stage(file)
155
+ end
156
+
157
+ def unstage(file)
158
+ end
159
+
160
+ def remove(file)
161
+ end
162
+
163
+ private
164
+ def setup_db()
165
+ @db.execute <<-SQL
166
+ CREATE TABLE IF NOT EXISTS dependencies (
167
+ id integer primary key autoincrement,
168
+ path text not null,
169
+ added_at datetime not null
170
+ );
171
+ SQL
172
+ @db.execute <<-SQL
173
+ CREATE UNIQUE INDEX IF NOT EXISTS dependency_path_idx ON dependencies (path);
174
+ SQL
175
+ @db.execute <<-SQL
176
+ CREATE TABLE IF NOT EXISTS commits (
177
+ id integer primary key autoincrement,
178
+ hash text not null,
179
+ created_at datetime not null
180
+ );
181
+ SQL
182
+ @db.execute <<-SQL
183
+ CREATE INDEX IF NOT EXISTS commits_hash_idx ON commits (hash);
184
+ SQL
185
+ @db.execute <<-SQL
186
+ CREATE TABLE IF NOT EXISTS revisions (
187
+ id integer primary key autoincrement,
188
+ dependency_id integer not null,
189
+ commit_id integer not null,
190
+ hash text not null,
191
+ created_at datetime not null
192
+ );
193
+ SQL
194
+ @db.execute <<-SQL
195
+ CREATE INDEX IF NOT EXISTS revisions_hash_idx ON revisions (hash);
196
+ SQL
197
+ @db.execute <<-SQL
198
+ CREATE INDEX IF NOT EXISTS revisions_dependency_id_idx ON revisions (dependency_id);
199
+ SQL
200
+ @db.execute <<-SQL
201
+ CREATE INDEX IF NOT EXISTS revisions_commit_id_idx ON revisions (commit_id);
202
+ SQL
137
203
  end
138
204
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lense
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.31
4
+ version: 0.1.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel Zubieta