instructions_list 0.1.13.beta → 1.0.0.beta

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
  SHA1:
3
- metadata.gz: 830ad1c69058fcac6fbe947e83013a6655d90166
4
- data.tar.gz: 9d9f90b7111ac13537da1df90d34fcc6ff7c2c6e
3
+ metadata.gz: 85893549c4b07a547a2d75e029d926bbc78f05b0
4
+ data.tar.gz: 420aeed99c53df1d2b417dd311c78e5a27c50a27
5
5
  SHA512:
6
- metadata.gz: fc9271f97d4c83591722221af6117253306677c6841fc6b5badf3e1a7d1c6dc5bf8c193d23196ec052c33f56df9df2d4a2f590d94917f03bce1371608dd4665e
7
- data.tar.gz: b281dad6c422dbde045ee3d9c82d5c2f1a7cef18aa296b4f0f49af794e8f9a484b2c873ffd6aa996943e22c70c7bed5523a46f9fea19e92844dbe1d440e20066
6
+ metadata.gz: 731c4bb40d6a1e7403875de14a611b6d5e21093919037529d0905d57574e5ad198d81a3ed36f9c395757b33ad91f764771cd22ab3247ff9c98d82e8d574d922d
7
+ data.tar.gz: b5a4ad4028491cf9cbafa9a17603968eca25244315a309a4fe93a4a80043ff0829eb32e7d8f4739c3613db5c3a48b33c2694e705146d4f4754f2e1ecb0867121
data/.byebug_history ADDED
@@ -0,0 +1,9 @@
1
+ exit
2
+ instruction
3
+ continue
4
+ exit
5
+ clear
6
+ exit
7
+ content["instructions"]
8
+ content[:instructions]
9
+ content
data/.instructions/key ADDED
@@ -0,0 +1 @@
1
+ ILSCZUWANID
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
-
3
2
  require "bundler/setup"
4
3
  require "instructions_list"
4
+ require "byebug"
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
data/exe/il CHANGED
@@ -24,25 +24,38 @@ module InstructionsList
24
24
  def self.source_root
25
25
  File.dirname(__FILE__)
26
26
  end
27
- desc "init", "initialize a il directory"
28
- def init
27
+ desc "init KEY", "initialize a il directory with list key"
28
+ def init key
29
29
  `mkdir -p ./.instructions/`
30
30
  `mkdir -p instructions`
31
+ `touch ./.instructions/key`
32
+ `echo #{key} > ./.instructions/key`
33
+ connect key
31
34
  end
32
35
  desc "reset", "reset state"
33
- def reset
36
+ def reset name=:all
34
37
  instructable do
35
- `rm ./.instructions/state`
38
+ `rm ./.instructions/state` if name == :all
39
+ `ex +g/#{name}/d -cwq ./.instructions/state`
36
40
  end
37
41
  end
38
42
  desc "sync", "synchronize the instructions"
43
+ option :reset
39
44
  def sync
45
+
46
+ `mkdir -p /tmp/il/cache`
47
+
48
+ if options[:reset]
49
+ `rm -rf #{CACHE}` if Dir.exists? CACHE
50
+ return
51
+ end
52
+
40
53
  instructable do
41
- if Dir.exists? "./.git"
42
- `git stash`
43
- `git pull `
44
- `git stash apply`
45
- end
54
+ begin
55
+ CacheBuilder.new.build
56
+ rescue SocketError
57
+
58
+ end
46
59
  end
47
60
  end
48
61
 
@@ -53,7 +66,11 @@ module InstructionsList
53
66
  say show_command_for path
54
67
  end
55
68
  puts ""
56
- list_from "Home Directory","~/instructions/" do |path|
69
+ list_from "Cloud", CACHE << "/" do |path|
70
+ say show_command_for path
71
+ end
72
+ puts ""
73
+ list_from "Home Directory","#{ENV['HOME']}/instructions/" do |path|
57
74
  say show_command_for path
58
75
  end
59
76
  puts ""
@@ -63,23 +80,53 @@ module InstructionsList
63
80
  end
64
81
  puts ""
65
82
  end
83
+
84
+ desc "info" , "display information"
85
+ def info
86
+ say "connected to\ key: #{get_key}"
87
+ end
88
+
89
+ desc "connect KEY" , "connect to a list"
90
+ def connect key
91
+ instructable do
92
+ `echo #{key} > ./.instructions/key`
93
+ end
94
+
95
+ end
96
+
97
+ desc "disconnect" , "disconnect from a list"
98
+ def disconnect
99
+ instructable do
100
+ `rm ./.instructions/key`
101
+ end
102
+ end
103
+
66
104
  desc "do", "do an instruction"
67
105
  option :force
68
106
  def do name=:all
69
107
  instructable do
70
108
  load_from "Defaults","#{File.join(File.dirname(__FILE__), "../instructions/")}"
71
- load_from "User","~/instructions/"
109
+ load_from "User","#{ENV['HOME']}/instructions/"
72
110
  load_from "Project","./instructions/"
111
+ load_from "Cloud", CACHE << "/"
73
112
  handle_instruction name,force: options[:force]
74
113
  end
75
114
  end
76
115
 
116
+ map list: :instructions
117
+
77
118
  no_tasks do
119
+ def get_key
120
+ return "Not connected!" unless File.exists? KEY_PATH
121
+ File.read(KEY_PATH)
122
+ end
78
123
  def instructable
79
124
  if Dir.exists? "./instructions"
80
125
  if Dir.exists? "./.instructions"
81
- yield
82
- return
126
+ if File.exists? "./.instructions/key"
127
+ yield
128
+ return
129
+ end
83
130
  end
84
131
  end
85
132
 
@@ -95,7 +142,6 @@ module InstructionsList
95
142
 
96
143
  def list_from location,path
97
144
  puts "#{location}"
98
-
99
145
  if Dir["#{path}*.rb"].any?
100
146
  Dir["#{path}*.rb"].each {|file|
101
147
  pn = Pathname.new(file)
@@ -107,16 +153,11 @@ module InstructionsList
107
153
  end
108
154
 
109
155
  def load_from name, path
110
- #puts "search in #{name}"
111
-
112
156
  if Dir["#{path}*.rb"].any?
113
157
  Dir["#{path}*.rb"].each {|file|
114
158
  pn = Pathname.new(file)
115
159
  require file
116
- #puts " #{File.basename(pn)}".gsub(".rb","")
117
160
  }
118
- else
119
- #puts " none"
120
161
  end
121
162
  end
122
163
 
File without changes
@@ -28,7 +28,8 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "rake", "~> 10.0"
29
29
  spec.add_development_dependency "riot"
30
30
  spec.add_development_dependency "rr"
31
+ spec.add_development_dependency "byebug"
31
32
  spec.add_dependency "thor"
32
33
  spec.add_dependency "pry"
33
-
34
+
34
35
  end
@@ -1,3 +1,3 @@
1
1
  module InstructionsList
2
- VERSION = "0.1.13.beta"
2
+ VERSION = "1.0.0.beta"
3
3
  end
@@ -1,18 +1,28 @@
1
-
1
+ require "open-uri"
2
+ require "json"
2
3
  require_relative "instructions_list/version"
3
4
 
5
+
4
6
  module InstructionsList
5
7
  INSTRUCTIONS=[]
6
- class ItIs
7
- def self.done? name
8
- return false unless File.exists? "./.instructions/state"
9
- File.readlines("./.instructions/state").include? "#{name}\n"
10
- end
11
- def self.running? name
12
- !`ps aux | grep #{name} | grep -v grep`.empty?
8
+ CACHE = "/tmp/il/cache"
9
+ KEY_PATH="./.instructions/key"
10
+ HOST= ENV.fetch('INSTRUCTIONS_LIST_HOST',"instructionslist.com")
11
+ class It
12
+ def self.exists? path
13
+ File.exists? path
13
14
  end
14
- def self.installed? path
15
- !`[ -d "#{path}"]`.empty?
15
+ class Is
16
+ def self.done? name
17
+ return false unless File.exists? "./.instructions/state"
18
+ File.readlines("./.instructions/state").include? "#{name}\n"
19
+ end
20
+ def self.running? name
21
+ !`ps aux | grep #{name} | grep -v grep`.empty?
22
+ end
23
+ def self.installed? path
24
+ !`[ -d "#{path}"]`.empty?
25
+ end
16
26
  end
17
27
  end
18
28
 
@@ -69,6 +79,39 @@ module InstructionsList
69
79
  system "echo #{name} ✔︎"
70
80
  end
71
81
  end
82
+
83
+
84
+ class CacheItem
85
+ def initialize(file_name)
86
+ @file_name = file_name
87
+ end
88
+ def write content
89
+ File.open("#{CACHE}/#{@file_name}","w") do |file|
90
+ file.puts content
91
+ end
92
+ end
93
+ end
94
+
95
+ class CacheBuilder
96
+ def initialize(key="ILSCZUWANID",host=HOST)
97
+ @key = key
98
+ @host = host
99
+ end
100
+ def build
101
+ begin
102
+ content = JSON.parse open("http://#{@host}/lists/#{@key}.json").read
103
+ `mkdir -p #{CACHE}`
104
+ content["instructions"].each do |instruction|
105
+ CacheItem
106
+ .new(instruction["file_name"])
107
+ .write(instruction["file_contents"])
108
+ end
109
+ rescue SocketError,JSON::ParserError
110
+ puts "cant find #{@host}"
111
+ end
112
+
113
+ end
114
+ end
72
115
  end
73
116
 
74
117
  Object.send :include, InstructionsList
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instructions_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13.beta
4
+ version: 1.0.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coco Coder (aka Delaney Burke)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-27 00:00:00.000000000 Z
11
+ date: 2017-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: thor
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -103,7 +117,9 @@ executables:
103
117
  extensions: []
104
118
  extra_rdoc_files: []
105
119
  files:
120
+ - ".byebug_history"
106
121
  - ".gitignore"
122
+ - ".instructions/key"
107
123
  - CODE_OF_CONDUCT.md
108
124
  - Gemfile
109
125
  - LICENSE.txt
@@ -112,8 +128,7 @@ files:
112
128
  - bin/console
113
129
  - bin/setup
114
130
  - exe/il
115
- - instructions/git.rb
116
- - instructions/test.rb
131
+ - instructions/.keep
117
132
  - instructions_list.gemspec
118
133
  - lib/instructions_list.rb
119
134
  - lib/instructions_list/version.rb
data/instructions/git.rb DELETED
@@ -1,8 +0,0 @@
1
- instruction "git" do
2
- instructed?{
3
- ItIs.done? "git"
4
- }
5
- instruct{
6
- `echo git`
7
- }
8
- end
data/instructions/test.rb DELETED
@@ -1,8 +0,0 @@
1
- instruction "test" do
2
- instructed?{
3
- ItIs.done? "test"
4
- }
5
- instruct{
6
- `echo test`
7
- }
8
- end