toga 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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