toga 0.0.2 → 0.0.3

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.
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ pkg/*
5
5
  spec/test_output
6
6
  .DS_Store
7
7
  temp/
8
+ .toga
data/Togafile CHANGED
@@ -17,6 +17,7 @@ Support multiline tasks (kind of don't want to)
17
17
 
18
18
  COMPLETED
19
19
 
20
+ Add edit command for toga.
20
21
  Ensure completed task moves to completed group
21
22
  Prepend completed tasks instead of appending
22
23
  Make toga commit interactive
data/lib/toga.rb CHANGED
@@ -3,8 +3,10 @@ $:.unshift File.dirname(File.join(__FILE__))
3
3
  module Toga
4
4
  SCAFFOLD_PATH = File.join(File.dirname(__FILE__), 'toga/scaffold')
5
5
  TOGAFILE_NAME = 'Togafile'
6
+ CONFIGFILE_NAME = '.toga'
6
7
  end
7
8
 
9
+ require "toga/config"
8
10
  require "toga/extensions"
9
11
  require "toga/version"
10
12
  require "toga/error"
@@ -0,0 +1,25 @@
1
+ require 'ruby-debug'
2
+
3
+ module Toga
4
+ module Commands
5
+ class Edit < Command
6
+
7
+ def self.run!(*args)
8
+ config = Config.load!
9
+ if config.editor.nil?
10
+ puts "Type the console command you use to launch your text editor (e.g. vi, emacs, vim, mate, nano...)"
11
+ config.editor = $stdin.gets.strip
12
+ end
13
+
14
+ # Tailor arguments for specific editors
15
+ args = []
16
+ case config.editor
17
+ when "mate"
18
+ args.push "-a"
19
+ end
20
+
21
+ system "#{config.editor} #{Dir.getwd}/#{Toga::TOGAFILE_NAME} #{args.join(" ")}"
22
+ end
23
+ end
24
+ end
25
+ end
@@ -28,6 +28,7 @@ module Toga
28
28
 
29
29
  File.open(File.expand_path(File.join(dir, '.gitignore')), 'a') do |f|
30
30
  f.write Toga::TOGAFILE_NAME
31
+ f.write Toga::CONFIGFILE_NAME
31
32
  end
32
33
  end
33
34
  rescue
@@ -0,0 +1,66 @@
1
+ module Toga
2
+ class Config
3
+
4
+ attr_accessor :data
5
+ attr_accessor :path
6
+
7
+ def initialize(path)
8
+ self.data = {}
9
+ @path = path
10
+
11
+ read!
12
+ end
13
+
14
+ def self.load!
15
+ f = File.join(Dir.getwd, Toga::CONFIGFILE_NAME)
16
+ self.new(f)
17
+ end
18
+
19
+ def read!
20
+ begin
21
+ handle = File.open(@path, 'r')
22
+ rescue
23
+ # File doesn't exist yet
24
+ File.open(@path, 'w') {}
25
+ return
26
+ end
27
+
28
+ handle.each do |l|
29
+ pair = l.split('=')
30
+ key = pair.first
31
+ value = pair.last
32
+ if key.nil? or key.strip.empty? or value.nil? or value.strip.empty?
33
+ next
34
+ end
35
+ self.data[key.to_sym] = value.strip
36
+ end
37
+ end
38
+
39
+ def save!
40
+ File.open(@path, 'w') do |l|
41
+ self.data.each do |key, value|
42
+ l.puts "#{key}=#{value}"
43
+ end
44
+ end
45
+ end
46
+
47
+ def method_missing(*args)
48
+ name = args.shift.to_s
49
+
50
+ # Setter
51
+ if name[name.length-1] == "="
52
+ attribute = name.gsub(/[^A-z_]+/, '').to_sym
53
+ self.data[attribute] = args.first.strip
54
+ self.save!
55
+ return self.data[attribute]
56
+ end
57
+
58
+ # Getter
59
+ name = name.to_sym
60
+ return @data[name].strip if @data.has_key?(name)
61
+
62
+ nil
63
+ end
64
+
65
+ end
66
+ end
data/lib/toga/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Toga
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/toga.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  # s.add_development_dependency "rspec"
23
23
  s.add_runtime_dependency "git"
24
24
 
25
+ s.add_development_dependency 'ruby-debug19'
25
26
  s.add_development_dependency 'require_relative'
26
27
  s.add_development_dependency 'minitest'
27
28
  s.add_development_dependency 'mocha'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toga
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-17 00:00:00.000000000Z
12
+ date: 2012-05-21 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: git
16
- requirement: &70366277590620 !ruby/object:Gem::Requirement
16
+ requirement: &70336885694440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70366277590620
24
+ version_requirements: *70336885694440
25
+ - !ruby/object:Gem::Dependency
26
+ name: ruby-debug19
27
+ requirement: &70336885694000 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70336885694000
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: require_relative
27
- requirement: &70366277590120 !ruby/object:Gem::Requirement
38
+ requirement: &70336885693560 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: '0'
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *70366277590120
46
+ version_requirements: *70336885693560
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: minitest
38
- requirement: &70366277589620 !ruby/object:Gem::Requirement
49
+ requirement: &70336885693140 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: '0'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70366277589620
57
+ version_requirements: *70336885693140
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: mocha
49
- requirement: &70366277589200 !ruby/object:Gem::Requirement
60
+ requirement: &70336885692720 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,7 +65,7 @@ dependencies:
54
65
  version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *70366277589200
68
+ version_requirements: *70336885692720
58
69
  description: a todo list that integrates seamlessly with git
59
70
  email:
60
71
  - me@colinyoung.com
@@ -78,6 +89,7 @@ files:
78
89
  - lib/toga/commands/complete.rb
79
90
  - lib/toga/commands/completed.rb
80
91
  - lib/toga/commands/current.rb
92
+ - lib/toga/commands/edit.rb
81
93
  - lib/toga/commands/init.rb
82
94
  - lib/toga/commands/later.rb
83
95
  - lib/toga/commands/list.rb
@@ -87,6 +99,7 @@ files:
87
99
  - lib/toga/commands/strip.rb
88
100
  - lib/toga/commands/top.rb
89
101
  - lib/toga/commands/uncomplete.rb
102
+ - lib/toga/config.rb
90
103
  - lib/toga/error.rb
91
104
  - lib/toga/extensions.rb
92
105
  - lib/toga/scaffold/Togafile