todo-json 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/bin/todo +62 -0
  3. metadata +129 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1d67aca764e9aab79d1623e1a13cf056eaa888d5597567822df14c944baf698a
4
+ data.tar.gz: bc3d952162d85c71ddf84c3a14e4550654f7aa3eb0824c8cbf74684c74dcebcd
5
+ SHA512:
6
+ metadata.gz: 648ccdd5972811ef4a121d7bd435c76ccdabc108571f24ad49088deb3e17a41eb434ddcf6525ec6ab444fd069d755d61df022d0e25121c1032261f3bdef107d9
7
+ data.tar.gz: abc35de78544f5187bf8b08fca2cd20faed6c9f1029824dd18041ebdbe651d2a7726252c7a0768c0245723f4baf5507888840c7f15db8845f905f2b63e207a14
data/bin/todo ADDED
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+
5
+ class List
6
+ def initialize(filename = nil)
7
+ @items = JSON.parse(IO.read(filename)) unless filename.nil?
8
+ @items ||= []
9
+ end
10
+
11
+ # Should be able to push/pop/delete/etc
12
+ def items(tag = nil)
13
+ if tag.nil?
14
+ @items
15
+ else
16
+ @items.select { |item| item['tags'].include? tag }
17
+ end
18
+ end
19
+ end
20
+
21
+ list = List.new(ARGV[0])
22
+ ARGV.clear # so we can gets properly later on
23
+ quit = false
24
+
25
+ puts "Ready"
26
+
27
+ until quit
28
+ print "> "
29
+ case gets.chomp
30
+ when "list"
31
+ list.items.each_with_index { |item, index| puts "#{index}. #{item['name']}" }
32
+ when "search"
33
+ print "Tag: "
34
+ tag = gets.chomp
35
+ list.items(tag).each_with_index { |item, index| puts "#{index}. #{item['name']}" }
36
+ when "new"
37
+ print "Name: "
38
+ name = gets.chomp
39
+ print "Tags: "
40
+ tags = gets.chomp.split(',').map { |tag| tag.strip }
41
+ list.items.push({ 'name' => name, 'tags' => tags })
42
+ when "edit"
43
+ print "Element #: "
44
+ index = gets.chomp.to_i
45
+ print "Old Name: #{list.items[index]['name']}\nNew Name: "
46
+ list.items[index]['name'] = gets.chomp
47
+ when "delete"
48
+ print "Element #: "
49
+ index = gets.chomp.to_i
50
+ print "Name: #{list.items[index]['name']}\nConfirm (y/n)? "
51
+ list.items.delete_at(index) if gets.chomp == 'y'
52
+ when "exit"
53
+ quit = true
54
+ else
55
+ #print help
56
+ end
57
+ end
58
+
59
+ print "File to save to: "
60
+ outfile = gets.chomp
61
+ IO.write(outfile, list.items.to_json) unless outfile.empty?
62
+ puts "Done!"
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: todo-json
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Caleb Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubocop
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.49'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.49'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.15'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.15'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '12.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '12.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: test-unit
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: github_changelog_generator
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.14'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.14'
97
+ description: To-Do List App which Saves Data in JSON Format
98
+ email: karagenit@outlook.com
99
+ executables:
100
+ - todo
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - bin/todo
105
+ homepage: https://github.com/karagenit/lists
106
+ licenses:
107
+ - MIT
108
+ metadata: {}
109
+ post_install_message:
110
+ rdoc_options: []
111
+ require_paths:
112
+ - bin/
113
+ required_ruby_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ requirements: []
124
+ rubyforge_project:
125
+ rubygems_version: 2.7.4
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: To-Do List App
129
+ test_files: []