posto 0.2.0 → 0.3.1

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.
@@ -1,48 +1,66 @@
1
1
  require 'posto/list'
2
+ require 'posto/file'
2
3
 
3
4
  module Posto
4
5
  class Application
5
- def initialize(arguments, list = List, io = STDOUT)
6
+ def initialize(arguments)
6
7
  @arguments = arguments
7
- @list = list
8
- @io = io
9
- end
10
-
11
- def run(items)
12
- send(@arguments.command, items, *@arguments.params)
8
+ @list_utility = List
9
+ @io = STDOUT
10
+ @file = Posto::File.new(@arguments.filename)
13
11
  end
14
12
 
15
13
  def list(items)
16
- @io.puts items
17
14
  items
18
15
  end
19
16
 
20
- def sort(items)
21
- list @list.sort(items)
17
+ def run(items)
18
+ @io.puts send(@arguments.command, items, *@arguments.params)
22
19
  end
23
20
 
24
- def unsort(items, n = 1)
25
- list @list.unsort(items, n.to_i)
21
+ def sort(items)
22
+ @file.write @list_utility.sort(items)
26
23
  end
27
24
 
28
25
  def resort(items)
29
- list @list.resort(items)
26
+ @file.write @list_utility.resort(items)
27
+ end
28
+
29
+ def unsort(items, n = 1)
30
+ @file.write @list_utility.unsort(items, n.to_i)
31
+ lookup_item(items, n)
30
32
  end
31
33
 
32
34
  def done(items, n = 1)
33
- list @list.done(items, n.to_i)
35
+ @file.write @list_utility.done(items, n.to_i)
36
+ lookup_item(items, n)
37
+ end
38
+
39
+ def top(items, n = nil)
40
+ if n.nil?
41
+ lookup_item(items, 1)
42
+ else
43
+ @file.write @list_utility.top(items, n.to_i)
44
+ lookup_item(items, n)
45
+ end
46
+ end
47
+
48
+ def quick(items, n = 1)
49
+ @file.write @list_utility.quick(items, n.to_i)
50
+ lookup_item(items, n)
34
51
  end
35
52
 
36
53
  def add(items, item)
37
- list @list.add(items, item)
54
+ @file.write @list_utility.add(items, item)
55
+ item
38
56
  end
39
57
 
40
- def top(items, n = 1)
41
- list @list.top(items, n.to_i)
58
+ def commit(items)
59
+ @file.commit(done(items))
42
60
  end
43
61
 
44
- def quick(items, n = 1)
45
- list @list.quick(items, n.to_i)
62
+ def lookup_item(items, n)
63
+ Posto::Item.hide_markdown(items[n.to_i - 1])
46
64
  end
47
65
 
48
66
  def method_missing(symbol, *args)
data/lib/posto/file.rb CHANGED
@@ -7,8 +7,12 @@ module Posto
7
7
  end
8
8
 
9
9
  def write(items)
10
- todo_list = Template.todo_list(items)
11
- IO.write(@filename, todo_list)
10
+ IO.write(@filename, Template.todo_list(items))
11
+ end
12
+
13
+ def commit(msg)
14
+ `git add #{@filename}`
15
+ `git commit -m "#{msg}"`
12
16
  end
13
17
 
14
18
  def lines
data/lib/posto.rb CHANGED
@@ -8,10 +8,8 @@ module Posto
8
8
  class << self
9
9
  def main(args)
10
10
  arguments = Arguments.new(args)
11
- file = File.new(arguments.filename)
12
- items = List.choose_item_lines(file.lines)
13
- result = Application.new(arguments).run(items)
14
- file.write(result)
11
+ items = List.choose_item_lines(File.new(arguments.filename).lines)
12
+ Application.new(arguments).run(items)
15
13
  end
16
14
  end
17
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: posto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-11 00:00:00.000000000 Z
12
+ date: 2012-09-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -66,7 +66,6 @@ files:
66
66
  - test/item_test.rb
67
67
  - test/arguments_test.rb
68
68
  - test/test_helper.rb
69
- - test/application_test.rb
70
69
  - test/monkeypatch_array_test.rb
71
70
  homepage: http://github.com/mattraibert/posto
72
71
  licenses:
@@ -81,6 +80,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
80
  - - ! '>='
82
81
  - !ruby/object:Gem::Version
83
82
  version: '0'
83
+ segments:
84
+ - 0
85
+ hash: 3448850985226509015
84
86
  required_rubygems_version: !ruby/object:Gem::Requirement
85
87
  none: false
86
88
  requirements:
@@ -98,5 +100,4 @@ test_files:
98
100
  - test/item_test.rb
99
101
  - test/arguments_test.rb
100
102
  - test/test_helper.rb
101
- - test/application_test.rb
102
103
  - test/monkeypatch_array_test.rb
@@ -1,54 +0,0 @@
1
- require 'test_helper'
2
- require 'posto/application'
3
- require 'grasshopper'
4
- require 'minitest/mock'
5
-
6
- class ApplicationTest < MiniTest::Unit::TestCase
7
- def test_default
8
- array = []
9
- result = Posto::Application.new(Stub.like(:command => "list", :params => []), Mock.new, Mock.new).run(array)
10
- assert_same(array, result)
11
- end
12
-
13
- def test_sort
14
- mock = Mock.new
15
- Posto::Application.new(Stub.like(:command => "sort", :params => []), mock, Mock.new).run([])
16
- Mock.verify(mock).sort([])
17
- end
18
-
19
- def test_unsort
20
- mock = Mock.new
21
- Posto::Application.new(Stub.like(:command => "unsort", :params => ["4"]), mock, Mock.new).run([])
22
- Mock.verify(mock).unsort([], 4)
23
- end
24
-
25
- def test_resort
26
- mock = Mock.new
27
- Posto::Application.new(Stub.like(:command => "resort", :params => []), mock, Mock.new).run([])
28
- Mock.verify(mock).resort([])
29
- end
30
-
31
- def test_done
32
- mock = Mock.new
33
- Posto::Application.new(Stub.like(:command => "done", :params => ["4"]), mock, Mock.new).run([])
34
- Mock.verify(mock).done([], 4)
35
- end
36
-
37
- def test_add
38
- mock = Mock.new
39
- Posto::Application.new(Stub.like(:command => "add", :params => ["a brand new item"]), mock, Mock.new).run([])
40
- Mock.verify(mock).add([], "a brand new item")
41
- end
42
-
43
- def test_quick
44
- mock = Mock.new
45
- Posto::Application.new(Stub.like(:command => "quick", :params => ["4"]), mock, Mock.new).run([])
46
- Mock.verify(mock).quick([], 4)
47
- end
48
-
49
- def test_top
50
- mock = Mock.new
51
- Posto::Application.new(Stub.like(:command => "top", :params => ["4"]), mock, Mock.new).run([])
52
- Mock.verify(mock).top([], 4)
53
- end
54
- end