potam 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/spec/db_spec.rb ADDED
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+ require 'db'
3
+
4
+ class Test_DB < DB
5
+ end
6
+
7
+ describe DB do
8
+
9
+ let(:test_data) { [
10
+ { id: 1, param_int1: 1, param_str1: 'value1', param_int2: 1, param_str2: 'value1' },
11
+ { id: 2, param_int1: 2, param_str1: 'value2', param_int2: 2, param_str2: 'value2' },
12
+ { id: 3, param_int1: 3, param_str1: 'value3', param_int2: 3, param_str2: 'value3' }
13
+ # { id: 4, param_int1: 4, param_str1: 'value4', param_int2: 4, param_str2: 'value4' },
14
+ # { id: 5, param_int1: 5, param_str1: 'value5', param_int2: 5, param_str2: 'value5' },
15
+ # { id: 6, param_int1: 6, param_str1: 'value6', param_int2: 6, param_str2: 'value6' },
16
+ # { id: 7, param_int1: 7, param_str1: 'value7', param_int2: 7, param_str2: 'value7' },
17
+ # { id: 8, param_int1: 8, param_str1: 'value8', param_int2: 8, param_str2: 'value8' },
18
+ # { id: 9, param_int1: 9, param_str1: 'value9', param_int2: 9, param_str2: 'value9' },
19
+ # { id: 10, param_int1: 10, param_str1: 'value10', param_int2: 10, param_str2: 'value10' },
20
+ # { id: 11, param_int1: 11, param_str1: 'value11', param_int2: 11, param_str2: 'value11' },
21
+ # { id: 12, param_int1: 12, param_str1: 'value12', param_int2: 12, param_str2: 'value12' },
22
+ # { id: 13, param_int1: 13, param_str1: 'value13', param_int2: 13, param_str2: 'value13' },
23
+ ] }
24
+
25
+ let(:db) { double }
26
+
27
+ let(:db_table) { double(Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../db/potam.db")) }
28
+
29
+ before(:each) do
30
+ allow(db).to receive(:[]).with(:test_db) { db_table }
31
+ end
32
+
33
+ describe '#initialize' do
34
+ it 'should create attr_reader according class name' do
35
+ test = Test_DB.new
36
+ expect(test).to respond_to(:new_test_d_id)
37
+ end
38
+ it 'should connect to table by class name' do
39
+ expect(db).to receive(:[]).with(:test_db)
40
+ test = Test_DB.new(db)
41
+ end
42
+ end
43
+
44
+ describe '#create' do
45
+ it 'should save data to table' do
46
+ test_data.each do |record|
47
+ expect(db_table).to receive(:insert).with(record) { record[:id] }
48
+ test = Test_DB.new(db)
49
+ test.create(record)
50
+ expect(test.new_test_d_id).to eq(record[:id])
51
+ end
52
+ end
53
+ end
54
+
55
+ describe '#last' do
56
+ it 'should return 10 last records ordered by id desc' do
57
+ ordered = double
58
+ limited = double
59
+ allow(db_table).to receive(:order).with(Sequel.desc(:id)) { ordered }
60
+ allow(ordered).to receive(:limit).with(10) { limited }
61
+ expect(limited).to receive(:all)
62
+ test = Test_DB.new(db)
63
+ test.last
64
+ end
65
+ end
66
+
67
+ describe '#list' do
68
+ it 'should return all records ordered by id desc' do
69
+ ordered = double
70
+ allow(db_table).to receive(:order).with(Sequel.desc(:id)) { ordered }
71
+ expect(ordered).to receive(:all)
72
+ test = Test_DB.new(db)
73
+ test.list
74
+ end
75
+ end
76
+
77
+ describe '#info' do
78
+ it 'should return record by id' do
79
+ selected = double
80
+ allow(db_table).to receive(:where).with("id = ?", 1) { selected }
81
+ expect(selected).to receive(:first)
82
+ test = Test_DB.new(db)
83
+ test.info(1)
84
+ end
85
+ end
86
+
87
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+ require 'notes'
3
+
4
+ describe Notes do
5
+ # let(:notes) { [
6
+ # { id: 1, task_id: 1, text: 'Заметка 1', created_at: 1415791040 },
7
+ # { id: 2, task_id: 1, text: 'Заметка 2', created_at: 1415791041 },
8
+ # { id: 3, task_id: 1, text: 'Заметка 3', created_at: 1415791042 },
9
+ # { id: 4, task_id: 1, text: 'Заметка 4', created_at: 1415791043 },
10
+ # { id: 5, task_id: 1, text: 'Заметка 5', created_at: 1415791044 },
11
+ # { id: 6, task_id: 1, text: 'Заметка 6', created_at: 1415791045 },
12
+ # { id: 7, task_id: 1, text: 'Заметка 7', created_at: 1415791046 },
13
+ # { id: 8, task_id: 1, text: 'Заметка 8', created_at: 1415791047 },
14
+ # { id: 9, task_id: 1, text: 'Заметка 9', created_at: 1415791048 },
15
+ # { id: 10, task_id: 1, text: 'Заметка 10', created_at: 1415791049 },
16
+ # { id: 11, task_id: 1, text: 'Заметка 11', created_at: 1415791050 },
17
+ # { id: 12, task_id: 1, text: 'Заметка 12', created_at: 1415791051 },
18
+ # { id: 13, task_id: 1, text: 'Заметка 13', created_at: 141579104052 },
19
+ # ] }
20
+
21
+ let(:db) { double(Sequel.sqlite) }
22
+
23
+ let(:db_table) { double(Sequel::Dataset) }
24
+
25
+ before(:each) do
26
+ allow(db).to receive(:[]).with(:notes) { db_table }
27
+ end
28
+
29
+ describe '#last' do
30
+ it 'should list 10 last notes for specific task ordered by id desc' do
31
+ ordered = double
32
+ limited = double
33
+ selected = double
34
+ expect(db_table).to receive(:where).with("task_id = ?", 1) { selected }
35
+ expect(selected).to receive(:order).with(Sequel.desc(:id)) { ordered }
36
+ expect(ordered).to receive(:limit).with(10) { limited }
37
+ expect(limited).to receive(:all)
38
+ test = Notes.new(db)
39
+ test.last(1)
40
+ end
41
+ end
42
+
43
+ describe '#list' do
44
+ it 'should list all notes for specific task ordered by id desc' do
45
+ ordered = double
46
+ selected = double
47
+ expect(db_table).to receive(:where).with("task_id = ?", 1) { selected }
48
+ expect(selected).to receive(:order).with(Sequel.desc(:id)) { ordered }
49
+ expect(ordered).to receive(:all)
50
+ test = Notes.new(db)
51
+ test.list(1)
52
+ end
53
+ end
54
+
55
+ # describe 'Notes#create' do
56
+ # it 'should save note to DB' do
57
+ # db = double(Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../db/potam.db"))
58
+ # db_notes = double
59
+ # notes.each do |note|
60
+ # allow(db).to receive(:[]).with(:notes) { db_notes }
61
+ # expect(db_notes).to receive(:insert).with(
62
+ # task_id: note[:task_id], text: note[:text], created_at: note[:created_at])
63
+ # test_notes = Notes.new(db)
64
+ # test_notes.create(task_id: note[:task_id], text: note[:text], created_at: note[:created_at])
65
+ # end
66
+ # end
67
+ # end
68
+ end
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+ require 'report'
3
+
4
+ describe Report do
5
+ # Ср. нояб. 5 10:16:01
6
+ # Ср. нояб. 5 13:13:01
7
+ # Ср. нояб. 12 22:16:06
8
+ let(:tasks) { [
9
+ { id: 1, title: 'Тестовая задача 1', description: 'Описание тестовой задачи 1', created_at: 1415164561 },
10
+ { id: 2, title: 'Тестовая задача 2', description: 'Описание тестовой задачи 2', created_at: 1415175181 },
11
+ { id: 3, title: 'Тестовая задача 3', description: 'Описание тестовой задачи 3', created_at: 1415812566 }
12
+ ] }
13
+ # Ср. нояб. 5 17:00:25
14
+ # Чт. нояб. 6 10:13:21, Пн. нояб. 10 09:10:21
15
+ # Чт. нояб. 13 11:00:01
16
+ let(:subtasks) { [
17
+ { id: 1, task_id: 1, title: 'Подзадача 1', status: 0, created_at: 1415188825, finished_at: 0 },
18
+ { id: 2, task_id: 2, title: 'Подзадача 2', status: 1, created_at: 1415250801, finished_at: 1415592621 },
19
+ { id: 3, task_id: 3, title: 'Подзадача 3', status: 0, created_at: 1415858401, finished_at: 0 }
20
+ ] }
21
+ # Пт. нояб. 7 10:10:23
22
+ # Вт. нояб. 11 14:50:32
23
+ # Чт. нояб. 13 11:00:00
24
+ let(:notes) { [
25
+ { id: 1, task_id: 1, text: 'Заметка 1', created_at: 1415337023 },
26
+ { id: 2, task_id: 2, text: 'Заметка 2', created_at: 1415699432 },
27
+ { id: 3, task_id: 3, text: 'Заметка 3', created_at: 1415858400 }
28
+ ] }
29
+
30
+ let(:report) { {
31
+ tasks:
32
+ [
33
+ tasks[2], tasks[1]
34
+ ],
35
+ events:
36
+ [
37
+ {object: :task, status: :created, task_id: tasks[2][:id], text: tasks[2][:title], timestamp: tasks[2][:created_at]},
38
+ {object: :note, status: :created, task_id: tasks[2][:id], text: notes[2][:text], timestamp: notes[2][:created_at]},
39
+ {object: :subtask, status: :created, task_id: tasks[2][:id], text: subtasks[2][:title], timestamp: subtasks[2][:created_at]},
40
+ {object: :subtask, status: :finished, task_id: tasks[1][:id], text: subtasks[1][:title], timestamp: subtasks[1][:finished_at]},
41
+ {object: :note, status: :created, task_id: tasks[1][:id], text: notes[1][:text], timestamp: notes[1][:created_at]}
42
+ ]
43
+ } }
44
+
45
+ before(:each) do
46
+ FileUtils.cp(CLEANDB, TESTDB)
47
+ db = Sequel.sqlite(TESTDB)
48
+ {tasks: tasks, subtasks: subtasks, notes: notes}.each do |table_name, data|
49
+ table = db[:"#{table_name}"]
50
+ data.each do |record|
51
+ table.insert(record)
52
+ end
53
+ end
54
+ ENV['POTAMTIME'] = '1415974561'
55
+ ENV['POTAM'] = 'test'
56
+ @report = Report.new(db)
57
+ end
58
+
59
+ after(:each) do
60
+ FileUtils.cp(CLEANDB, TESTDB)
61
+ ENV['POTAM'] = 'production'
62
+ end
63
+
64
+ describe '#week' do
65
+ it 'should return weekly report' do
66
+ expect(@report.week).to eq(report)
67
+ end
68
+ end
69
+
70
+ describe '#to_event' do
71
+ it 'should add task to events' do
72
+ @report.__send__(:to_event, tasks[2])
73
+ expect(@report.instance_variable_get(:@report)[:events][0]).to eq(report[:events][0])
74
+ end
75
+ it 'should add note to events' do
76
+ @report.__send__(:to_event, notes[2])
77
+ expect(@report.instance_variable_get(:@report)[:events][0]).to eq(report[:events][1])
78
+ end
79
+ it 'should add subtask to events with started_at' do
80
+ @report.__send__(:to_event, subtasks[2])
81
+ expect(@report.instance_variable_get(:@report)[:events][0]).to eq(report[:events][2])
82
+ end
83
+ it 'should add subtask to events with finished_at' do
84
+ @report.__send__(:to_event, subtasks[1], :finished)
85
+ expect(@report.instance_variable_get(:@report)[:events][0]).to eq(report[:events][3])
86
+ end
87
+ end
88
+
89
+ end
@@ -0,0 +1,5 @@
1
+ require 'sequel'
2
+ require 'db'
3
+
4
+ CLEANDB = "#{File.expand_path(File.dirname(__FILE__))}/../test/clean.db"
5
+ TESTDB = "#{File.expand_path(File.dirname(__FILE__))}/../test/test.db"
@@ -0,0 +1,74 @@
1
+ require 'spec_helper'
2
+ require 'subtasks'
3
+
4
+ describe Subtasks do
5
+
6
+ let(:db) { double(Sequel.sqlite) }
7
+ let(:db_table) { double(Sequel::Dataset) }
8
+ let(:selected) { double(Sequel::Dataset) }
9
+
10
+ describe '#finish!' do
11
+
12
+ around(:example) do |example|
13
+ ENV['POTAMTIME'] = '1415812666'
14
+ ENV['POTAM'] = 'test'
15
+ example.run
16
+ ENV['POTAM'] = 'production'
17
+ end
18
+
19
+ it 'should change status to finished' do
20
+ expect(db).to receive(:[]).with(:subtasks) { db_table }
21
+ expect(db_table).to receive(:where).with("id = ?", 1) { selected }
22
+ expect(selected).to receive(:update).with(status: 1, finished_at: 1415812666)
23
+ test = Subtasks.new(db)
24
+ test.finish!(1)
25
+ end
26
+ end
27
+
28
+ describe '#active' do
29
+ it 'should return active subtasks for specified task' do
30
+ ordered = double
31
+ selected_by_task_id = double
32
+ expect(db).to receive(:[]).with(:subtasks) { db_table }
33
+ expect(db_table).to receive(:where).with("task_id = ?", 1) { selected_by_task_id }
34
+ expect(selected_by_task_id).to receive(:where).with("status = ?", 0) { selected }
35
+ expect(selected).to receive(:order).with(Sequel.desc(:id)) { ordered }
36
+ expect(ordered).to receive(:all)
37
+ test = Subtasks.new(db)
38
+ test.active(1)
39
+ end
40
+ end
41
+
42
+ end
43
+
44
+ # describe Subtasks do
45
+ # let(:subtasks) { [
46
+ # { id: 1, task_id: 1, title: 'Подзадача 1', status: 0, created_at: 1415791040 },
47
+ # { id: 2, task_id: 2, title: 'Подзадача 2', status: 0, created_at: 1415791041 },
48
+ # { id: 3, task_id: 3, title: 'Подзадача 3', status: 0, created_at: 1415791042 },
49
+ # { id: 4, task_id: 4, title: 'Подзадача 4', status: 0, created_at: 1415791043 },
50
+ # { id: 5, task_id: 5, title: 'Подзадача 5', status: 0, created_at: 1415791044 },
51
+ # { id: 6, task_id: 6, title: 'Подзадача 6', status: 0, created_at: 1415791045 },
52
+ # { id: 7, task_id: 7, title: 'Подзадача 7', status: 0, created_at: 1415791046 },
53
+ # { id: 8, task_id: 8, title: 'Подзадача 8', status: 0, created_at: 1415791047 },
54
+ # { id: 9, task_id: 9, title: 'Подзадача 9', status: 0, created_at: 1415791048 },
55
+ # { id: 10, task_id: 1, title: 'Подзадача 10', status: 0, created_at: 1415791049 },
56
+ # { id: 11, task_id: 1, title: 'Подзадача 11', status: 0, created_at: 1415791050 },
57
+ # { id: 12, task_id: 1, title: 'Подзадача 12', status: 0, created_at: 1415791051 },
58
+ # { id: 13, task_id: 1, title: 'Подзадача 13', status: 0, created_at: 141579104052 },
59
+ # ] }
60
+
61
+ # describe 'Subtasks#create' do
62
+ # it 'should save subtask to DB' do
63
+ # db = double(Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../db/potam.db"))
64
+ # db_subtasks = double
65
+ # subtasks.each do |subtask|
66
+ # allow(db).to receive(:[]).with(:subtasks) { db_subtasks }
67
+ # expect(db_subtasks).to receive(:insert).with(
68
+ # task_id: subtask[:task_id], title: subtask[:title], status: 0, created_at: subtask[:created_at])
69
+ # test_subtasks = Subtasks.new(db)
70
+ # test_subtasks.create(task_id: subtask[:task_id], title: subtask[:title], status: 0, created_at: subtask[:created_at])
71
+ # end
72
+ # end
73
+ # end
74
+ # end
@@ -0,0 +1,86 @@
1
+ require 'spec_helper'
2
+ require 'tasks'
3
+
4
+ describe Tasks do
5
+ let(:tasks) { [
6
+ { id: 1, title: 'Тестовая задача 1', description: 'Описание тестовой задачи 1', created_at: 1415812561 },
7
+ { id: 2, title: 'Тестовая задача 2', description: 'Описание тестовой задачи 2', created_at: 1415812566 },
8
+ { id: 3, title: 'Тестовая задача 3', description: 'Описание тестовой задачи 3', created_at: 1415812571 },
9
+ { id: 4, title: 'Тестовая задача 4', description: 'Описание тестовой задачи 4', created_at: 1415812576 },
10
+ { id: 5, title: 'Тестовая задача 5', description: 'Описание тестовой задачи 5', created_at: 1415812581 },
11
+ { id: 6, title: 'Тестовая задача 6', description: 'Описание тестовой задачи 6', created_at: 1415812586 },
12
+ { id: 7, title: 'Тестовая задача 7', description: 'Описание тестовой задачи 7', created_at: 1415812591 },
13
+ { id: 8, title: 'Тестовая задача 8', description: 'Описание тестовой задачи 8', created_at: 1415812596 },
14
+ { id: 9, title: 'Тестовая задача 9', description: 'Описание тестовой задачи 9', created_at: 1415812601 },
15
+ { id: 10, title: 'Тестовая задача 10', description: 'Описание тестовой задачи 10', created_at: 1415812606 },
16
+ { id: 11, title: 'Тестовая задача 11', description: 'Описание тестовой задачи 11', created_at: 1415812611 },
17
+ { id: 12, title: 'Тестовая задача 12', description: 'Описание тестовой задачи 12', created_at: 1415812616 },
18
+ { id: 13, title: 'Тестовая задача 13', description: 'Описание тестовой задачи 13', created_at: 1415812621 }
19
+ ] }
20
+
21
+ let(:subtasks) { [
22
+ { id: 1, task_id: 1, title: 'Подзадача 1', status: 0, created_at: 1415812626, finished_at: 0 },
23
+ { id: 2, task_id: 2, title: 'Подзадача 2', status: 1, created_at: 1415812566, finished_at: 1415812631 }
24
+ ] }
25
+
26
+ let(:notes) { [
27
+ { id: 1, task_id: 1, text: 'Заметка 1', created_at: 1415812566 },
28
+ { id: 2, task_id: 1, text: 'Заметка 2', created_at: 1415812571 },
29
+ { id: 3, task_id: 3, text: 'Заметка 3', created_at: 1415812961 }
30
+ ] }
31
+
32
+ let(:order) { [3, 2, 1] + (4..13).to_a.reverse }
33
+
34
+ # let(:db) { double(Sequel.sqlite) }
35
+
36
+ # let(:db_table) { double(Sequel::Dataset) }
37
+
38
+ # describe 'Tasks#create' do
39
+ # it 'should save task to DB' do
40
+ # db = double(Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../db/potam.db"))
41
+ # db_tasks = double
42
+ # tasks.each do |task|
43
+ # allow(db).to receive(:[]).with(:tasks) { db_tasks }
44
+ # expect(db_tasks).to receive(:insert).with(
45
+ # title: task[:title], description: task[:description], created_at: task[:created_at])
46
+ # test_tasks = Tasks.new(db)
47
+ # test_tasks.create(title: task[:title], description: task[:description], created_at: task[:created_at])
48
+ # end
49
+ # end
50
+ # end
51
+
52
+ before(:each) do
53
+ FileUtils.cp(CLEANDB, TESTDB)
54
+ db = Sequel.sqlite(TESTDB)
55
+ # @db_tasks = @db[:tasks]
56
+ {tasks: tasks, subtasks: subtasks, notes: notes}.each do |table_name, data|
57
+ table = db[:"#{table_name}"]
58
+ data.each do |record|
59
+ table.insert(record)
60
+ end
61
+ end
62
+ @test_tasks = Tasks.new(db)
63
+ end
64
+
65
+ after(:each) do
66
+ FileUtils.cp(CLEANDB, TESTDB)
67
+ end
68
+
69
+ describe '#last' do
70
+ it 'should list 10 last tasks, ordered by time of changes in subtasks or notes' do
71
+ expect(@test_tasks.last).to eq(tasks.sort_by{ |task| order.index(task[:id]) }.first(10))
72
+ end
73
+ end
74
+
75
+ describe '#list' do
76
+ it 'should list all tasks, ordered by time of changes in subtasks or notes' do
77
+ expect(@test_tasks.list).to eq(tasks.sort_by{ |task| order.index(task[:id]) })
78
+ end
79
+ end
80
+
81
+ # describe 'Tasks#info' do
82
+ # it 'should return info about task' do
83
+ # expect(@test_tasks.info(1)).to eq(tasks[0])
84
+ # end
85
+ # end
86
+ end
@@ -0,0 +1,31 @@
1
+ require 'timer'
2
+
3
+ class Test
4
+ include Timer
5
+ end
6
+
7
+ describe Timer do
8
+ let(:test) { Test.new }
9
+ let(:now) { 1415942161 }
10
+ let(:last_mon) { 1415559600 }
11
+
12
+ around(:example) do |example|
13
+ ENV['POTAMTIME'] = now.to_s
14
+ ENV['POTAM'] = 'test'
15
+ example.run
16
+ ENV['POTAM'] = 'production'
17
+ end
18
+
19
+ describe '#now' do
20
+ it 'should return test timestamp' do
21
+ expect(test.now).to eq(now)
22
+ end
23
+ end
24
+
25
+ describe '#last_mon' do
26
+ it 'should return last mondau 00:00:00 timestamp' do
27
+ expect(test.last_mon).to eq(last_mon)
28
+ end
29
+ end
30
+
31
+ end
data/test/clean.db ADDED
Binary file
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class DefaultTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ def test_the_truth
12
+ assert true
13
+ end
14
+ end
data/test/test.db ADDED
Binary file
@@ -0,0 +1,9 @@
1
+ require 'test/unit'
2
+
3
+ # Add test libraries you want to use here, e.g. mocha
4
+
5
+ class Test::Unit::TestCase
6
+
7
+ # Add global extensions to the test case class here
8
+
9
+ end
metadata ADDED
@@ -0,0 +1,148 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: potam
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Michael
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: aruba
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: gli
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.12.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.12.2
69
+ description:
70
+ email: 0x22aa2@gmail.com
71
+ executables:
72
+ - potam
73
+ extensions: []
74
+ extra_rdoc_files:
75
+ - README.rdoc
76
+ - potam.rdoc
77
+ files:
78
+ - ".rspec"
79
+ - Gemfile
80
+ - Gemfile.lock
81
+ - README.rdoc
82
+ - Rakefile
83
+ - bin/potam
84
+ - db/old.db
85
+ - db/old2.db
86
+ - db/potam.db
87
+ - features/addnote.feature
88
+ - features/addtask.feature
89
+ - features/listtasks.feature
90
+ - features/potam.feature
91
+ - features/report.feature
92
+ - features/step_definitions/potam_steps.rb
93
+ - features/subtasks.feature
94
+ - features/support/env.rb
95
+ - features/taskinfo.feature
96
+ - lib/db.rb
97
+ - lib/dialog.rb
98
+ - lib/notes.rb
99
+ - lib/potam.rb
100
+ - lib/potam/version.rb
101
+ - lib/report.rb
102
+ - lib/subtasks.rb
103
+ - lib/tasks.rb
104
+ - lib/timer.rb
105
+ - potam.gemspec
106
+ - potam.rdoc
107
+ - results.html
108
+ - spec/db_spec.rb
109
+ - spec/notes_spec.rb
110
+ - spec/report_spec.rb
111
+ - spec/spec_helper.rb
112
+ - spec/subtasks_spec.rb
113
+ - spec/tasks_spec.rb
114
+ - spec/timer_spec.rb
115
+ - test/clean.db
116
+ - test/default_test.rb
117
+ - test/test.db
118
+ - test/test_helper.rb
119
+ homepage:
120
+ licenses: []
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options:
124
+ - "--title"
125
+ - potam
126
+ - "--main"
127
+ - README.rdoc
128
+ - "-ri"
129
+ require_paths:
130
+ - lib
131
+ - lib
132
+ required_ruby_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ requirements: []
143
+ rubyforge_project:
144
+ rubygems_version: 2.4.2
145
+ signing_key:
146
+ specification_version: 4
147
+ summary: Personal Offline TAsk Manager - POTAM
148
+ test_files: []