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.
Files changed (46) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +63 -50
  3. data/Rakefile +3 -0
  4. data/bin/{my_todo → mytodo} +1 -1
  5. data/{lib/db → db}/config.yml +3 -3
  6. data/{lib/db → db}/migrate/20160912172429_create_items.rb +2 -2
  7. data/{lib/db → db}/migrate/20160913134552_create_tags.rb +1 -1
  8. data/{lib/db → db}/migrate/20160913134610_create_stubs.rb +1 -1
  9. data/{lib/db → db}/migrate/20161003121448_create_notes.rb +1 -1
  10. data/{lib/db → db}/migrate/20161005133023_add_detailed_status_to_items.rb +1 -1
  11. data/db/migrate/20161220143613_add_default_to_item_done.rb +5 -0
  12. data/{lib/db → db}/schema.rb +6 -14
  13. data/lib/my_todo.rb +4 -114
  14. data/lib/my_todo/ar_base.rb +3 -2
  15. data/lib/my_todo/models/item.rb +4 -0
  16. data/lib/my_todo/modules/actions.rb +129 -0
  17. data/lib/my_todo/modules/finders.rb +5 -3
  18. data/lib/my_todo/modules/my_todo_actions.rb +7 -6
  19. data/lib/my_todo/modules/templates.rb +1 -0
  20. data/lib/my_todo/templates/item.erb +6 -2
  21. data/lib/my_todo/templates/list.erb +3 -1
  22. data/lib/my_todo/templates/notes.erb +8 -5
  23. data/lib/my_todo/templates/results.erb +7 -1
  24. data/lib/my_todo/templates/standalone_migrations.yml.erb +4 -4
  25. data/lib/my_todo/version.rb +1 -1
  26. data/lib/setup.rb +2 -2
  27. data/my_todo.gemspec +19 -17
  28. data/spec/actions/create_spec.rb +17 -15
  29. data/spec/actions/delete_spec.rb +10 -4
  30. data/spec/actions/list_spec.rb +6 -5
  31. data/spec/actions/note_spec.rb +9 -7
  32. data/spec/actions/notes_spec.rb +6 -7
  33. data/spec/actions/rm_note_spec.rb +7 -8
  34. data/spec/actions/rm_tag_spec.rb +9 -8
  35. data/spec/actions/search_spec.rb +12 -13
  36. data/spec/actions/tag_spec.rb +12 -10
  37. data/spec/actions/update_spec.rb +5 -6
  38. data/{lib → spec}/db/todos_test.sqlite3 +0 -0
  39. data/spec/models/item_spec.rb +1 -1
  40. data/spec/models/stub_spec.rb +6 -6
  41. data/spec/spec_helper.rb +19 -5
  42. metadata +89 -76
  43. data/.standalone_migrations +0 -6
  44. data/lib/db/migrate/20161220143613_add_default_to_item_done.rb +0 -5
  45. data/lib/db/todos_development.sqlite3 +0 -0
  46. data/lib/my_todo/db/todos_test.sqlite3 +0 -0
@@ -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
- @todo1 = FactoryGirl.create :item, done: true
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(%w[list --status=done])}.to output("ToDos FOUND: 1\n\nID: 1 | Created On: #{Date.today} | Tags: | Status: | Complete: true | Notes: 0\n\nSome Body\n****************************************************************************************************\n").to_stdout
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(%w[list])}.to output("ToDos FOUND: 1\n\nID: 2 | Created On: #{Date.today} | Tags: | Status: | Complete: false | Notes: 0\n\nSome Body\n****************************************************************************************************\n").to_stdout
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(%w[list --status=all])}.to output("ToDos FOUND: 2\n\nID: 1 | Created On: #{Date.today} | Tags: | Status: | Complete: true | Notes: 0\n\nSome Body\n****************************************************************************************************\nID: 2 | Created On: #{Date.today} | Tags: | Status: | Complete: false | Notes: 0\n\nSome Body\n****************************************************************************************************\n").to_stdout
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
@@ -2,25 +2,27 @@ require 'spec_helper'
2
2
 
3
3
  describe MyTodo do
4
4
  describe 'add_note' do
5
- before {@todo = FactoryGirl.create(:item)}
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(%W[note --id=#{@todo.id} --body=note_text])}.to change{Note.count}.by(1)
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(%W[note --id=#{@todo.id} --body=note_text])
13
- expect(@todo.notes.size).to eq 1
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(%W[note --id=#{@todo.id} --body=note_text])}.to output("Notes for 1: Some Body\nID: 1 | Created On: #{Date.today}\nnote_text\n\n\n").to_stdout
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(%W[note --id=#{@todo.id + 1}])}.to output("undefined method `notes' for nil:NilClass\n").to_stdout
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
@@ -2,25 +2,24 @@ require 'spec_helper'
2
2
 
3
3
  describe MyTodo do
4
4
  describe 'notes' do
5
- before {@todo = FactoryGirl.create(:item)}
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(%W[notes --id=#{@todo.id}])}.to output("Notes for 1: Some Body\nID: 1 | Created On: #{Date.today}\nWhat a world!\n\n\n").to_stdout
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(%W[notes --id=#{@todo.id}])}.to output("No Notes for item #{@todo.id}\n\n").to_stdout
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(%W[note --id=#{@todo.id + 1}])}.to output("undefined method `notes' for nil:NilClass\n").to_stdout
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
- before do
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(%W[rm_note --id=#{@todo.id} --noteid=#{@todo.notes.first.id}])}
12
- subject {@todo.reload.notes}
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(%W[rm_note --id=#{@todo.id + 1} --noteid=#{@todo.notes.first.id}])}.to output("undefined method `notes' for nil:NilClass\n").to_stdout
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(%W[rm_note --id=#{@todo.id} --noteid=#{@todo.notes.first.id + 1}])}.to output("undefined method `destroy!' for nil:NilClass\n").to_stdout
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
@@ -2,23 +2,24 @@ require 'spec_helper'
2
2
 
3
3
  describe MyTodo do
4
4
  describe 'rm_tag' do
5
- before do
6
- @todo = FactoryGirl.create(:item)
7
- @todo.tags.create(name: 'tag1')
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(%W[rm_tag --id=#{@todo.id} --tag=#{@todo.tags.first.name}])}
11
- subject {@todo.reload.tags}
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(%W[rm_tag --id=#{@todo.id + 1} --tag=#{@todo.tags.first.name}])}.to output("undefined method `tags' for nil:NilClass\n").to_stdout
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(%W[rm_tag --id=#{@todo.id} --tag=tag2])}.to output("undefined method `destroy!' for nil:NilClass\n").to_stdout
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
@@ -3,35 +3,34 @@ require 'spec_helper'
3
3
  describe MyTodo do
4
4
  describe 'search' do
5
5
  context 'success search' do
6
- before do
7
- @todo1 = FactoryGirl.create(:item, body: 'nfl')
8
- @todo1.tags.create(name: 'tag1')
9
- @todo2 = FactoryGirl.create(:item, body: 'rocks')
10
- @todo3 = FactoryGirl.create(:item, body: 'always')
11
- @todo3.notes.create(body: 'note1')
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( %w[search --text=nfl])}.to output("ToDos FOUND: 1\nSearch based on ransack search: body_or_detailed_status_or_tags_name_or_notes_body_cont\n\nID: 1 | Created On: #{Date.today} | Tags: tag1 | Status: | Complete: false | Notes: 0\nnfl\n\n****************************************************************************************************\n").to_stdout
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( %w[search --text=tag1])}.to output("ToDos FOUND: 1\nSearch based on ransack search: body_or_detailed_status_or_tags_name_or_notes_body_cont\n\nID: 1 | Created On: #{Date.today} | Tags: tag1 | Status: | Complete: false | Notes: 0\nnfl\n\n****************************************************************************************************\n").to_stdout
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
- @todo2.update!(detailed_status: 'None')
24
- expect{MyTodo::Todo.start( %w[search --text=None])}.to output("ToDos FOUND: 1\nSearch based on ransack search: body_or_detailed_status_or_tags_name_or_notes_body_cont\n\nID: 2 | Created On: #{Date.today} | Tags: | Status: None | Complete: false | Notes: 0\nrocks\n\n****************************************************************************************************\n").to_stdout
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( %w[search --text=note1])}.to output("ToDos FOUND: 1\nSearch based on ransack search: body_or_detailed_status_or_tags_name_or_notes_body_cont\n\nID: 3 | Created On: #{Date.today} | Tags: | Status: | Complete: false | Notes: 1\nalways\n\n [1] note1\n ----------------------------------------------------------------------------------------------------\n****************************************************************************************************\n").to_stdout
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( %w(search --text=no_body))}.to output("ToDos FOUND: 0\nSearch based on ransack search: body_or_detailed_status_or_tags_name_or_notes_body_cont\n\n").to_stdout
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
@@ -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
- before do
7
- @todo = FactoryGirl.create(:item)
8
- MyTodo::Todo.start(%W[tag --id=#{@todo.id} --tag=tag1])
9
- end
10
- subject {@todo.tags}
11
- it {is_expected.to include(Tag.first)}
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
- it 'returns a validation error when tag name is missing' do
18
- expect{MyTodo::Todo.start(%W[tag --id=#{@todo.id} --tag=])}.to output("Validation failed: Name can't be blank\n").to_stdout
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(%W[tag --id=#{@todo.id + 1} --tag=tag1])}.to output("undefined method `tags' for nil:NilClass\n").to_stdout
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
@@ -2,20 +2,19 @@ require 'spec_helper'
2
2
 
3
3
  describe MyTodo do
4
4
  describe 'update' do
5
- before do
6
- expect(Thor::LineEditor).to receive(:readline).with("Choose a status for item (1) ", {:default=>1}).and_return("In Progress")
7
- @todo = FactoryGirl.create(:item)
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(%W[update --id=#{@todo.id} --body=hello])}.to output("0: None\n1: In Progress\n2: Waiting Feedback\n3: Complete\n4: Punted\nToDo UPDATED!\nID: 1 | Created On: #{Date.today} | Tags: | Status: None | Complete: false\nhello\n").to_stdout
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(%W(update --id=#{@todo.id} --body=))}.to output("0: None\n1: In Progress\n2: Waiting Feedback\n3: Complete\n4: Punted\nValidation failed: Body can't be blank\n").to_stdout
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
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Item, type: :model do
4
- let(:item) {FactoryGirl.create :item}
4
+ let(:item) {FactoryBot.create :item}
5
5
 
6
6
  it {should have_many :stubs}
7
7
  it {should have_many :tags}
@@ -1,6 +1,6 @@
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
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
@@ -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 'factory_girl_rails'
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
- FactoryGirl.define do
30
+ FactoryBot.define do
30
31
  factory :item do
31
- body "Some 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: 3.1.1
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: 2016-12-21 00:00:00.000000000 Z
11
+ date: 2018-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.12'
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: '1.12'
26
+ version: 3.8.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
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: '10.0'
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: '10.0'
40
+ version: 4.11.1
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: database_cleaner
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
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: '3.0'
54
+ version: 1.7.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: factory_girl_rails
56
+ name: shoulda-matchers
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 4.7.0
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: 4.7.0
68
+ version: 3.1.2
69
69
  - !ruby/object:Gem::Dependency
70
- name: database_cleaner
70
+ name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.5.3
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: 1.5.3
82
+ version: 10.0.2
83
83
  - !ruby/object:Gem::Dependency
84
- name: shoulda-matchers
84
+ name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.1'
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: '3.1'
96
+ version: 0.9.5
97
97
  - !ruby/object:Gem::Dependency
98
- name: byebug
98
+ name: simplecov
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 9.0.5
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: 9.0.5
110
+ version: 0.16.1
111
111
  - !ruby/object:Gem::Dependency
112
- name: yard
112
+ name: faker
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 0.9.5
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.9.5
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: simplecov
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.12.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: 0.12.0
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: codeclimate-test-reporter
154
+ name: rake
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - ">="
157
+ - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
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: '0'
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.0.0.1
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.0.0.1
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.0.0.1
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.0.0.1
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.19.1
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.19.1
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.0.0
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.0.0
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.11
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.11
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: 1.8.2
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: 1.8.2
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
- - my_todo
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/my_todo
266
+ - bin/mytodo
254
267
  - bin/setup
255
- - lib/db/config.yml
256
- - lib/db/migrate/20160912172429_create_items.rb
257
- - lib/db/migrate/20160913134552_create_tags.rb
258
- - lib/db/migrate/20160913134610_create_stubs.rb
259
- - lib/db/migrate/20161003121448_create_notes.rb
260
- - lib/db/migrate/20161005133023_add_detailed_status_to_items.rb
261
- - lib/db/migrate/20161220143613_add_default_to_item_done.rb
262
- - lib/db/schema.rb
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: '0'
331
+ version: 1.3.1
320
332
  requirements: []
321
333
  rubyforge_project:
322
- rubygems_version: 2.4.8
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/actions/create_spec.rb
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/models/item_spec.rb
338
- - spec/models/note_spec.rb
339
- - spec/models/stub_spec.rb
340
- - spec/models/tag_spec.rb
341
- - spec/spec_helper.rb
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