my_todo 3.1.1 → 4.0.0.pre1
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 +5 -5
- data/README.md +63 -50
- data/Rakefile +3 -0
- data/bin/{my_todo → mytodo} +1 -1
- data/{lib/db → db}/config.yml +3 -3
- data/{lib/db → db}/migrate/20160912172429_create_items.rb +2 -2
- data/{lib/db → db}/migrate/20160913134552_create_tags.rb +1 -1
- data/{lib/db → db}/migrate/20160913134610_create_stubs.rb +1 -1
- data/{lib/db → db}/migrate/20161003121448_create_notes.rb +1 -1
- data/{lib/db → db}/migrate/20161005133023_add_detailed_status_to_items.rb +1 -1
- data/db/migrate/20161220143613_add_default_to_item_done.rb +5 -0
- data/{lib/db → db}/schema.rb +6 -14
- data/lib/my_todo.rb +4 -114
- data/lib/my_todo/ar_base.rb +3 -2
- data/lib/my_todo/models/item.rb +4 -0
- data/lib/my_todo/modules/actions.rb +129 -0
- data/lib/my_todo/modules/finders.rb +5 -3
- data/lib/my_todo/modules/my_todo_actions.rb +7 -6
- data/lib/my_todo/modules/templates.rb +1 -0
- data/lib/my_todo/templates/item.erb +6 -2
- data/lib/my_todo/templates/list.erb +3 -1
- data/lib/my_todo/templates/notes.erb +8 -5
- data/lib/my_todo/templates/results.erb +7 -1
- data/lib/my_todo/templates/standalone_migrations.yml.erb +4 -4
- data/lib/my_todo/version.rb +1 -1
- data/lib/setup.rb +2 -2
- data/my_todo.gemspec +19 -17
- data/spec/actions/create_spec.rb +17 -15
- data/spec/actions/delete_spec.rb +10 -4
- data/spec/actions/list_spec.rb +6 -5
- data/spec/actions/note_spec.rb +9 -7
- data/spec/actions/notes_spec.rb +6 -7
- data/spec/actions/rm_note_spec.rb +7 -8
- data/spec/actions/rm_tag_spec.rb +9 -8
- data/spec/actions/search_spec.rb +12 -13
- data/spec/actions/tag_spec.rb +12 -10
- data/spec/actions/update_spec.rb +5 -6
- data/{lib → spec}/db/todos_test.sqlite3 +0 -0
- data/spec/models/item_spec.rb +1 -1
- data/spec/models/stub_spec.rb +6 -6
- data/spec/spec_helper.rb +19 -5
- metadata +89 -76
- data/.standalone_migrations +0 -6
- data/lib/db/migrate/20161220143613_add_default_to_item_done.rb +0 -5
- data/lib/db/todos_development.sqlite3 +0 -0
- data/lib/my_todo/db/todos_test.sqlite3 +0 -0
data/spec/actions/list_spec.rb
CHANGED
@@ -2,21 +2,22 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'list' do
|
5
|
+
let(:todo1) {FactoryBot.create :item, done: true}
|
6
|
+
let(:todo2) {FactoryBot.create :item}
|
5
7
|
before do
|
6
|
-
|
7
|
-
@todo2 = FactoryGirl.create :item
|
8
|
+
todo1;todo2
|
8
9
|
end
|
9
10
|
|
10
11
|
it 'displays items with done set to true' do
|
11
|
-
expect{MyTodo::Todo.start(
|
12
|
+
expect{MyTodo::Todo.start(['list', 'done'])}.to output("Items Found: 1\n\nid: 1 notes: 0 tags: \ncreated: #{Date.today} status: None (done: Yes)\n\n#{todo1.body}\n#{'*' * 100}\n").to_stdout
|
12
13
|
end
|
13
14
|
|
14
15
|
it 'displays items with done set to false by default' do
|
15
|
-
expect{MyTodo::Todo.start(
|
16
|
+
expect{MyTodo::Todo.start(['list'])}.to output("Items Found: 1\n\nid: 2 notes: 0 tags: \ncreated: #{Date.today} status: None (done: No)\n\n#{todo2.body}\n#{'*' * 100}\n").to_stdout
|
16
17
|
end
|
17
18
|
|
18
19
|
it 'displays all items' do
|
19
|
-
expect{MyTodo::Todo.start(
|
20
|
+
expect{MyTodo::Todo.start(['list', 'all'])}.to output("Items Found: 2\n\nid: 1 notes: 0 tags: \ncreated: #{Date.today} status: None (done: Yes)\n\n#{todo1.body}\n#{'*' * 100}\nid: 2 notes: 0 tags: \ncreated: #{Date.today} status: None (done: No)\n\n#{todo2.body}\n#{'*' * 100}\n").to_stdout
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
data/spec/actions/note_spec.rb
CHANGED
@@ -2,25 +2,27 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'add_note' do
|
5
|
-
|
5
|
+
let(:todo) {FactoryBot.create :item}
|
6
|
+
let(:body) {Faker::Lorem.words(5).join("\s")}
|
7
|
+
|
6
8
|
context 'successful creation' do
|
7
9
|
it 'creates a note' do
|
8
|
-
expect{MyTodo::Todo.start(
|
10
|
+
expect{MyTodo::Todo.start(['note', todo.id, body])}.to change{Note.count}.by(1)
|
9
11
|
end
|
10
12
|
|
11
|
-
it 'associates note to item' do
|
12
|
-
MyTodo::Todo.start(
|
13
|
-
expect(
|
13
|
+
it 'associates note to item', 'ehh' do
|
14
|
+
MyTodo::Todo.start(['note', todo.id, body])
|
15
|
+
expect(todo.notes.size).to eq 1
|
14
16
|
end
|
15
17
|
|
16
18
|
it 'displays item with notes' do
|
17
|
-
expect{MyTodo::Todo.start(
|
19
|
+
expect{MyTodo::Todo.start(['note', todo.id, body])}.to output("notes for item #{todo.id}: #{todo.body}\n\nid: 1\ncreated: #{Date.today}\n\n#{body}\n\n\n").to_stdout
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
21
23
|
context 'unsuccessful creation' do
|
22
24
|
it 'returns exception if partent item is not found' do
|
23
|
-
expect{MyTodo::Todo.start(
|
25
|
+
expect{MyTodo::Todo.start(['note', todo.id + 1])}.to output("undefined method `notes' for nil:NilClass\n").to_stdout
|
24
26
|
end
|
25
27
|
end
|
26
28
|
end
|
data/spec/actions/notes_spec.rb
CHANGED
@@ -2,25 +2,24 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'notes' do
|
5
|
-
|
6
|
-
|
5
|
+
let(:item) {FactoryBot.create(:item)}
|
6
|
+
let(:note) {FactoryBot.create :note}
|
7
|
+
|
7
8
|
context 'item has a note' do
|
8
|
-
before {@todo.notes.create(body: 'What a world!')}
|
9
|
-
|
10
9
|
it 'displays note' do
|
11
|
-
expect{MyTodo::Todo.start(
|
10
|
+
expect{MyTodo::Todo.start(['notes', note.item.id])}.to output("notes for item #{note.item.id}: #{note.item.body}\n\nid: 1\ncreated: #{Date.today}\n\n#{note.body}\n\n\n").to_stdout
|
12
11
|
end
|
13
12
|
end
|
14
13
|
|
15
14
|
context "doesn't have a note" do
|
16
15
|
it 'displays no notes message' do
|
17
|
-
expect{MyTodo::Todo.start(
|
16
|
+
expect{MyTodo::Todo.start(['notes', item.id])}.to output("No Notes for item #{item.id}\n\n").to_stdout
|
18
17
|
end
|
19
18
|
end
|
20
19
|
|
21
20
|
context 'unsuccessful creation' do
|
22
21
|
it 'returns exception if parent item is not found' do
|
23
|
-
expect{MyTodo::Todo.start(
|
22
|
+
expect{MyTodo::Todo.start(['note', item.id + 1])}.to output("undefined method `notes' for nil:NilClass\n").to_stdout
|
24
23
|
end
|
25
24
|
end
|
26
25
|
end
|
@@ -2,24 +2,23 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'rm_note' do
|
5
|
-
|
6
|
-
@todo = FactoryGirl.create :item
|
7
|
-
@todo.notes.create(body: 'Body of text')
|
8
|
-
end
|
5
|
+
let(:note) {FactoryBot.create :note}
|
9
6
|
|
10
7
|
context 'a successful delete' do
|
11
|
-
before {MyTodo::Todo.start(
|
12
|
-
|
8
|
+
before {MyTodo::Todo.start(['rm_note', note.item.id, note.id])}
|
9
|
+
|
10
|
+
subject {note.item.reload.notes}
|
11
|
+
|
13
12
|
it {is_expected.to eq []}
|
14
13
|
end
|
15
14
|
|
16
15
|
context 'an unsuccessful delete' do
|
17
16
|
it 'returns exception if item is not found' do
|
18
|
-
expect {MyTodo::Todo.start(
|
17
|
+
expect {MyTodo::Todo.start(['rm_note', note.item.id + 1, note.id])}.to output("undefined method `id' for nil:NilClass\n").to_stdout
|
19
18
|
end
|
20
19
|
|
21
20
|
it 'returns exception if note is not found' do
|
22
|
-
expect {MyTodo::Todo.start(
|
21
|
+
expect {MyTodo::Todo.start(['rm_note', note.item.id, 0])}.to output("Note removed from item: #{note.item.id}\n\nid: #{note.item.id} notes: #{note.item.notes.count} tags: \ncreated: #{Date.today} status: None (done: No) \n\n#{note.item.body}\n").to_stdout
|
23
22
|
end
|
24
23
|
end
|
25
24
|
end
|
data/spec/actions/rm_tag_spec.rb
CHANGED
@@ -2,23 +2,24 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'rm_tag' do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
5
|
+
let(:tag) {FactoryBot.create :tag}
|
6
|
+
let(:tagged_item) {FactoryBot.create :item, tags: [tag]}
|
7
|
+
|
9
8
|
context 'a successful delete' do
|
10
|
-
before {MyTodo::Todo.start(
|
11
|
-
|
9
|
+
before {MyTodo::Todo.start(['rm_tag', tagged_item.id, tag.name])}
|
10
|
+
|
11
|
+
subject {tagged_item.reload.tags}
|
12
|
+
|
12
13
|
it {is_expected.to eq []}
|
13
14
|
end
|
14
15
|
|
15
16
|
context 'an unsuccessful delete' do
|
16
17
|
it 'returns nil exception if item is not found' do
|
17
|
-
expect {MyTodo::Todo.start(
|
18
|
+
expect {MyTodo::Todo.start(['rm_tag', tagged_item.id + 1, tag.name])}.to output("undefined method `id' for nil:NilClass\n").to_stdout
|
18
19
|
end
|
19
20
|
|
20
21
|
it 'returns nil exception if tag is not round' do
|
21
|
-
expect {MyTodo::Todo.start(
|
22
|
+
expect {MyTodo::Todo.start(['rm_tag', tagged_item.id, 'abc123'])}.to output("Tags removed from item #{tagged_item.id}\n\nid: #{tagged_item.id} notes: 0 tags: #{tag.name}\ncreated: #{Date.today} status: None (done: No) \n\n#{tagged_item.body}\n").to_stdout
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
data/spec/actions/search_spec.rb
CHANGED
@@ -3,35 +3,34 @@ require 'spec_helper'
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'search' do
|
5
5
|
context 'success search' do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
6
|
+
let(:tag) {FactoryBot.create :tag}
|
7
|
+
let(:item1) {FactoryBot.create :item, tags: [tag]}
|
8
|
+
let(:item2) {FactoryBot.create :item}
|
9
|
+
let(:note) {FactoryBot.create :note}
|
10
|
+
|
11
|
+
before {item1; item2; note}
|
13
12
|
|
14
13
|
it 'finds todo item by body' do
|
15
|
-
expect{MyTodo::Todo.start(
|
14
|
+
expect{MyTodo::Todo.start(['search', item1.body])}.to output("Items Found: 1\n\nSearch Text: #{item1.body}\n\n\nid: #{item1.id} notes: 0 tags: #{tag.name}\ncreated: #{Date.today} status: None (done: No)\n\n#{item1.body}\n\n#{'*' * 100}\n").to_stdout
|
16
15
|
end
|
17
16
|
|
18
17
|
it 'finds todo items by associated tag' do
|
19
|
-
expect{MyTodo::Todo.start(
|
18
|
+
expect{MyTodo::Todo.start(['search', tag.name])}.to output("Items Found: 1\n\nSearch Text: #{tag.name}\n\n\nid: #{item1.id} notes: 0 tags: #{tag.name}\ncreated: #{Date.today} status: None (done: No)\n\n#{item1.body}\n\n#{'*' * 100}\n").to_stdout
|
20
19
|
end
|
21
20
|
|
22
21
|
it 'finds todo items by detailed status' do
|
23
|
-
|
24
|
-
expect{MyTodo::Todo.start(
|
22
|
+
item2.update!(detailed_status: 'Punted')
|
23
|
+
expect{MyTodo::Todo.start(['search', 'Punted'])}.to output("Items Found: 1\n\nSearch Text: Punted\n\n\nid: #{item2.id} notes: 0 tags: \ncreated: #{Date.today} status: Punted (done: Yes)\n\n#{item2.body}\n\n#{'*' * 100}\n").to_stdout
|
25
24
|
end
|
26
25
|
|
27
26
|
it 'finds todo items by notes' do
|
28
|
-
expect{MyTodo::Todo.start(
|
27
|
+
expect{MyTodo::Todo.start(['search', note.body])}.to output("Items Found: 1\n\nSearch Text: #{note.body}\n\n\nid: #{note.item.id} notes: 1 tags: \ncreated: #{Date.today} status: None (done: No)\n\n#{note.item.body}\n\n\s\s[#{note.id}] #{note.body}\n\s\s#{'-' * 100}\n#{'*' * 100}\n").to_stdout
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
32
31
|
context 'unsuccessful search' do
|
33
32
|
it 'returns no results when searching on invalid body' do
|
34
|
-
expect{MyTodo::Todo.start(
|
33
|
+
expect{MyTodo::Todo.start(['search', 'abc123'])}.to output("Items Found: 0\n\nSearch Text: abc123\n\n").to_stdout
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|
data/spec/actions/tag_spec.rb
CHANGED
@@ -2,24 +2,26 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'add_tag' do
|
5
|
+
let(:item) {FactoryBot.create :item}
|
6
|
+
|
5
7
|
context 'a successful add' do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
subject {
|
11
|
-
|
8
|
+
|
9
|
+
|
10
|
+
before {MyTodo::Todo.start(['tag', item.id, 'tag1'])}
|
11
|
+
|
12
|
+
subject {item.tags.map(&:name)}
|
13
|
+
|
14
|
+
it {is_expected.to eq ['tag1']}
|
12
15
|
end
|
13
16
|
|
14
17
|
context 'an unsuccessful add' do
|
15
|
-
before {@todo = FactoryGirl.create(:item)}
|
16
18
|
|
17
|
-
|
18
|
-
expect{MyTodo::Todo.start(
|
19
|
+
xit 'returns a validation error when tag name is missing', 'needs addressing' do
|
20
|
+
expect{MyTodo::Todo.start(['tag', item.id])}.to output("Validation failed: Name can't be blank\n").to_stdout
|
19
21
|
end
|
20
22
|
|
21
23
|
it 'returns nil exception' do
|
22
|
-
expect{MyTodo::Todo.start(
|
24
|
+
expect{MyTodo::Todo.start(['tag', item.id + 1, 'tag2'])}.to output("undefined method `id' for nil:NilClass\n").to_stdout
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
data/spec/actions/update_spec.rb
CHANGED
@@ -2,20 +2,19 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe MyTodo do
|
4
4
|
describe 'update' do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
5
|
+
let(:item) {FactoryBot.create :item}
|
6
|
+
let(:statuses) {"0: None\n1: In Progress\n2: Waiting Feedback\n3: Complete\n4: Punted"}
|
7
|
+
before {expect(Thor::LineEditor).to receive(:readline).with("Choose a status for item (0) ", {default: 0}).and_return("")}
|
9
8
|
|
10
9
|
context 'successful update' do
|
11
10
|
it 'displays the update' do
|
12
|
-
expect{MyTodo::Todo.start(
|
11
|
+
expect{MyTodo::Todo.start(['update', item.id, 'hello'])}.to output("#{statuses}\nItem Updated\n\nid: #{item.id} notes: 0 tags: \ncreated: #{Date.today} status: None (done: No) \n\nhello\n").to_stdout
|
13
12
|
end
|
14
13
|
end
|
15
14
|
|
16
15
|
context 'unsuccessful update' do
|
17
16
|
it 'returns validation error when body is missing' do
|
18
|
-
expect{MyTodo::Todo.start(
|
17
|
+
expect{MyTodo::Todo.start(['update', item.id])}.to output("#{statuses}\nItem Updated\n\nid: #{item.id} notes: 0 tags: \ncreated: #{Date.today} status: None (done: No) \n\n#{item.body}\n").to_stdout
|
19
18
|
end
|
20
19
|
end
|
21
20
|
end
|
Binary file
|
data/spec/models/item_spec.rb
CHANGED
data/spec/models/stub_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Stub, type: :model do
|
4
|
-
|
5
|
-
|
6
|
-
end
|
1
|
+
# require 'spec_helper'
|
2
|
+
#
|
3
|
+
# describe Stub, type: :model do
|
4
|
+
# it {should belong_to(:item)}
|
5
|
+
# it {should belong_to(:tag)}
|
6
|
+
# end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
# code climent must be loaded and started before RAILS_ENV is declared
|
2
|
-
require "codeclimate-test-reporter"
|
2
|
+
# require "codeclimate-test-reporter"
|
3
3
|
ENV['CODECLIMATE_REPO_TOKEN'] = ENV['MYTODO_CC']
|
4
|
-
CodeClimate::TestReporter.start
|
4
|
+
# CodeClimate::TestReporter.start
|
5
5
|
ENV["RAILS_ENV"] = 'test'
|
6
6
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
7
7
|
require 'database_cleaner'
|
8
|
-
require '
|
8
|
+
require 'factory_bot_rails'
|
9
9
|
require 'shoulda-matchers'
|
10
|
+
require 'faker'
|
10
11
|
require 'byebug'
|
11
12
|
require 'my_todo'
|
12
13
|
require 'simplecov'
|
@@ -26,9 +27,19 @@ end
|
|
26
27
|
|
27
28
|
Dir['spec/support/**/*.rb'].each { |f| require f }
|
28
29
|
|
29
|
-
|
30
|
+
FactoryBot.define do
|
30
31
|
factory :item do
|
31
|
-
body
|
32
|
+
body { Faker::Lorem.paragraph }
|
33
|
+
detailed_status {'None'}
|
34
|
+
end
|
35
|
+
|
36
|
+
factory :note do
|
37
|
+
item
|
38
|
+
body {Faker::Lorem.paragraph}
|
39
|
+
end
|
40
|
+
|
41
|
+
factory :tag do
|
42
|
+
name {Faker::Lorem.word}
|
32
43
|
end
|
33
44
|
end
|
34
45
|
|
@@ -39,3 +50,6 @@ RSpec.configure do |config|
|
|
39
50
|
config.include(Shoulda::Matchers::ActiveModel, type: :model)
|
40
51
|
config.include(Shoulda::Matchers::ActiveRecord, type: :model)
|
41
52
|
end
|
53
|
+
|
54
|
+
# If I need to check rubocop
|
55
|
+
# rubocop --require rubocop-rspec --only FactoryBot/AttributeDefinedStatically --auto-correct
|
metadata
CHANGED
@@ -1,275 +1,286 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: my_todo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.8.0
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: factory_bot_rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 4.11.1
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 4.11.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: database_cleaner
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.7.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.7.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: shoulda-matchers
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 3.1.2
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 3.1.2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: byebug
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 10.0.2
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 10.0.2
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: yard
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 0.9.5
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 0.9.5
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: simplecov
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 0.16.1
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 0.16.1
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: faker
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0
|
117
|
+
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0
|
124
|
+
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: rubocop-rspec
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - "
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
131
|
+
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: bundler
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
135
142
|
requirements:
|
136
143
|
- - "~>"
|
137
144
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
145
|
+
version: 1.16.0
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 1.16.0
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
154
|
+
name: rake
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - "
|
157
|
+
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
146
|
-
type: :
|
159
|
+
version: 12.3.1
|
160
|
+
type: :runtime
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - "
|
164
|
+
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: 12.3.1
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: activerecord
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version: 5.
|
173
|
+
version: 5.2.1
|
160
174
|
type: :runtime
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
178
|
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version: 5.
|
180
|
+
version: 5.2.1
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: activesupport
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: 5.
|
187
|
+
version: 5.2.1
|
174
188
|
type: :runtime
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: 5.
|
194
|
+
version: 5.2.1
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: thor
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
184
198
|
requirements:
|
185
199
|
- - "~>"
|
186
200
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
201
|
+
version: 0.20.0
|
188
202
|
type: :runtime
|
189
203
|
prerelease: false
|
190
204
|
version_requirements: !ruby/object:Gem::Requirement
|
191
205
|
requirements:
|
192
206
|
- - "~>"
|
193
207
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
208
|
+
version: 0.20.0
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: standalone_migrations
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
198
212
|
requirements:
|
199
213
|
- - "~>"
|
200
214
|
- !ruby/object:Gem::Version
|
201
|
-
version: 5.
|
215
|
+
version: 5.2.6
|
202
216
|
type: :runtime
|
203
217
|
prerelease: false
|
204
218
|
version_requirements: !ruby/object:Gem::Requirement
|
205
219
|
requirements:
|
206
220
|
- - "~>"
|
207
221
|
- !ruby/object:Gem::Version
|
208
|
-
version: 5.
|
222
|
+
version: 5.2.6
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: sqlite3
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
212
226
|
requirements:
|
213
227
|
- - "~>"
|
214
228
|
- !ruby/object:Gem::Version
|
215
|
-
version: 1.3.
|
229
|
+
version: 1.3.13
|
216
230
|
type: :runtime
|
217
231
|
prerelease: false
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
219
233
|
requirements:
|
220
234
|
- - "~>"
|
221
235
|
- !ruby/object:Gem::Version
|
222
|
-
version: 1.3.
|
236
|
+
version: 1.3.13
|
223
237
|
- !ruby/object:Gem::Dependency
|
224
238
|
name: ransack
|
225
239
|
requirement: !ruby/object:Gem::Requirement
|
226
240
|
requirements:
|
227
241
|
- - "~>"
|
228
242
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
243
|
+
version: 2.0.1
|
230
244
|
type: :runtime
|
231
245
|
prerelease: false
|
232
246
|
version_requirements: !ruby/object:Gem::Requirement
|
233
247
|
requirements:
|
234
248
|
- - "~>"
|
235
249
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
250
|
+
version: 2.0.1
|
237
251
|
description: A terminal based todo application for creating todo items. Adding tags
|
238
252
|
makes for an easy way to group and search for related items. Create additional notes
|
239
253
|
for a todo item as new related information comes up
|
240
254
|
email:
|
241
255
|
- lovell.mcilwain@gmail.com
|
242
256
|
executables:
|
243
|
-
-
|
257
|
+
- mytodo
|
244
258
|
extensions: []
|
245
259
|
extra_rdoc_files: []
|
246
260
|
files:
|
247
|
-
- ".standalone_migrations"
|
248
261
|
- Gemfile
|
249
262
|
- LICENSE.txt
|
250
263
|
- README.md
|
251
264
|
- Rakefile
|
252
265
|
- bin/console
|
253
|
-
- bin/
|
266
|
+
- bin/mytodo
|
254
267
|
- bin/setup
|
255
|
-
-
|
256
|
-
-
|
257
|
-
-
|
258
|
-
-
|
259
|
-
-
|
260
|
-
-
|
261
|
-
-
|
262
|
-
-
|
263
|
-
- lib/db/todos_development.sqlite3
|
264
|
-
- lib/db/todos_test.sqlite3
|
268
|
+
- db/config.yml
|
269
|
+
- db/migrate/20160912172429_create_items.rb
|
270
|
+
- db/migrate/20160913134552_create_tags.rb
|
271
|
+
- db/migrate/20160913134610_create_stubs.rb
|
272
|
+
- db/migrate/20161003121448_create_notes.rb
|
273
|
+
- db/migrate/20161005133023_add_detailed_status_to_items.rb
|
274
|
+
- db/migrate/20161220143613_add_default_to_item_done.rb
|
275
|
+
- db/schema.rb
|
265
276
|
- lib/my_todo.rb
|
266
277
|
- lib/my_todo/ar_base.rb
|
267
278
|
- lib/my_todo/configuration.rb
|
268
|
-
- lib/my_todo/db/todos_test.sqlite3
|
269
279
|
- lib/my_todo/models/item.rb
|
270
280
|
- lib/my_todo/models/note.rb
|
271
281
|
- lib/my_todo/models/stub.rb
|
272
282
|
- lib/my_todo/models/tag.rb
|
283
|
+
- lib/my_todo/modules/actions.rb
|
273
284
|
- lib/my_todo/modules/finders.rb
|
274
285
|
- lib/my_todo/modules/my_todo_actions.rb
|
275
286
|
- lib/my_todo/modules/templates.rb
|
@@ -292,6 +303,7 @@ files:
|
|
292
303
|
- spec/actions/search_spec.rb
|
293
304
|
- spec/actions/tag_spec.rb
|
294
305
|
- spec/actions/update_spec.rb
|
306
|
+
- spec/db/todos_test.sqlite3
|
295
307
|
- spec/models/item_spec.rb
|
296
308
|
- spec/models/note_spec.rb
|
297
309
|
- spec/models/stub_spec.rb
|
@@ -314,28 +326,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
314
326
|
version: '0'
|
315
327
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
316
328
|
requirements:
|
317
|
-
- - "
|
329
|
+
- - ">"
|
318
330
|
- !ruby/object:Gem::Version
|
319
|
-
version:
|
331
|
+
version: 1.3.1
|
320
332
|
requirements: []
|
321
333
|
rubyforge_project:
|
322
|
-
rubygems_version: 2.
|
334
|
+
rubygems_version: 2.7.7
|
323
335
|
signing_key:
|
324
336
|
specification_version: 4
|
325
337
|
summary: A basic todo application with tags.
|
326
338
|
test_files:
|
327
|
-
- spec/
|
339
|
+
- spec/spec_helper.rb
|
340
|
+
- spec/models/tag_spec.rb
|
341
|
+
- spec/models/stub_spec.rb
|
342
|
+
- spec/models/item_spec.rb
|
343
|
+
- spec/models/note_spec.rb
|
328
344
|
- spec/actions/delete_spec.rb
|
329
345
|
- spec/actions/list_spec.rb
|
330
|
-
- spec/actions/note_spec.rb
|
331
346
|
- spec/actions/notes_spec.rb
|
332
|
-
- spec/actions/rm_note_spec.rb
|
333
|
-
- spec/actions/rm_tag_spec.rb
|
334
347
|
- spec/actions/search_spec.rb
|
335
348
|
- spec/actions/tag_spec.rb
|
336
349
|
- spec/actions/update_spec.rb
|
337
|
-
- spec/
|
338
|
-
- spec/
|
339
|
-
- spec/
|
340
|
-
- spec/
|
341
|
-
- spec/
|
350
|
+
- spec/actions/create_spec.rb
|
351
|
+
- spec/actions/rm_note_spec.rb
|
352
|
+
- spec/actions/rm_tag_spec.rb
|
353
|
+
- spec/actions/note_spec.rb
|
354
|
+
- spec/db/todos_test.sqlite3
|