gyunyu 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -17,10 +17,10 @@ if RUBY_VERSION < '1.9'
17
17
  end
18
18
 
19
19
  group :development do
20
- gem "rspec", "~> 2.3.0"
21
- gem "bundler", "~> 1.0.0"
22
- gem "jeweler", "~> 1.6.4"
20
+ gem "rspec", "> 2"
21
+ gem "bundler"
22
+ gem "jeweler"
23
23
  gem "yard"
24
- gem "rcov", ">= 0"
24
+ gem "simplecov"
25
25
  gem 'rr'
26
26
  end
@@ -1,10 +1,10 @@
1
1
  = gyunyu
2
2
 
3
- simple RTM app for CLI made with Ruby
3
+ Simple RTM app for CLI made with Ruby
4
4
 
5
5
  == Required
6
6
 
7
- * Ruby ( tested with Ruby 1.9.2 )
7
+ * Ruby ( tested with CRuby 1.9.2 )
8
8
  * read permission of RTM API
9
9
 
10
10
  == Install
@@ -17,6 +17,8 @@ simple RTM app for CLI made with Ruby
17
17
  Usage: gyunyu [options]
18
18
  -l, --list LIST
19
19
  -f, --filter FILTER
20
+ -c, --custom-filter FILTER
21
+ -s, --custom-filter-list
20
22
  -d, --field FIELD
21
23
  -o, --format FORMAT
22
24
  $ gyunyu -f 'dueWithin:"1 week"'
@@ -61,7 +63,6 @@ same above
61
63
 
62
64
  == Not Supported
63
65
 
64
- * Tags and notes for csv exporting ( dumped as YAML inline format )
65
66
  * Convert Date to (ISO 8601 + UTC) in search filter. Currently search results are out of alignment.
66
67
  * Default filter
67
68
 
data/Rakefile CHANGED
@@ -31,7 +31,7 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
31
31
  spec.pattern = FileList['spec/**/*_spec.rb']
32
32
  end
33
33
 
34
- RSpec::Core::RakeTask.new(:rcov) do |spec|
34
+ RSpec::Core::RakeTask.new(:simplecov) do |spec|
35
35
  spec.pattern = 'spec/**/*_spec.rb'
36
36
  spec.rcov = true
37
37
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
@@ -4,15 +4,15 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{gyunyu}
8
- s.version = "0.3.0"
7
+ s.name = "gyunyu"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{wtnabe}]
12
- s.date = %q{2012-01-08}
13
- s.description = %q{now available export command}
14
- s.email = %q{wtnabe@gmail.com}
15
- s.executables = [%q{gyunyu}]
11
+ s.authors = ["wtnabe"]
12
+ s.date = "2012-09-29"
13
+ s.description = "now available export command"
14
+ s.email = "wtnabe@gmail.com"
15
+ s.executables = ["gyunyu"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE.txt",
18
18
  "README.rdoc"
@@ -46,17 +46,18 @@ Gem::Specification.new do |s|
46
46
  "spec/app/command_spec.rb",
47
47
  "spec/app/expander_spec.rb",
48
48
  "spec/spec_helper.rb",
49
+ "spec/support/app_export.rb",
49
50
  "spec/support/task_raw_data.rb",
50
51
  "spec/token/token_spec.rb",
51
52
  "tasks/git.rake",
52
53
  "tasks/spec.rake",
53
54
  "tmp/.gitkeep"
54
55
  ]
55
- s.homepage = %q{http://github.com/wtnabe/gyunyu}
56
- s.licenses = [%q{MIT}]
57
- s.require_paths = [%q{lib}]
58
- s.rubygems_version = %q{1.8.6}
59
- s.summary = %q{Simple RTM app for CLI}
56
+ s.homepage = "http://github.com/wtnabe/gyunyu"
57
+ s.licenses = ["MIT"]
58
+ s.require_paths = ["lib"]
59
+ s.rubygems_version = "1.8.23"
60
+ s.summary = "Simple RTM app for CLI"
60
61
 
61
62
  if s.respond_to? :specification_version then
62
63
  s.specification_version = 3
@@ -65,32 +66,32 @@ Gem::Specification.new do |s|
65
66
  s.add_runtime_dependency(%q<rtmilk>, [">= 0"])
66
67
  s.add_runtime_dependency(%q<xml-simple>, [">= 0"])
67
68
  s.add_runtime_dependency(%q<rtm-time>, [">= 0.2.0"])
68
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
69
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
70
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
69
+ s.add_development_dependency(%q<rspec>, ["> 2"])
70
+ s.add_development_dependency(%q<bundler>, [">= 0"])
71
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
71
72
  s.add_development_dependency(%q<yard>, [">= 0"])
72
- s.add_development_dependency(%q<rcov>, [">= 0"])
73
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
73
74
  s.add_development_dependency(%q<rr>, [">= 0"])
74
75
  else
75
76
  s.add_dependency(%q<rtmilk>, [">= 0"])
76
77
  s.add_dependency(%q<xml-simple>, [">= 0"])
77
78
  s.add_dependency(%q<rtm-time>, [">= 0.2.0"])
78
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
79
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
80
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
79
+ s.add_dependency(%q<rspec>, ["> 2"])
80
+ s.add_dependency(%q<bundler>, [">= 0"])
81
+ s.add_dependency(%q<jeweler>, [">= 0"])
81
82
  s.add_dependency(%q<yard>, [">= 0"])
82
- s.add_dependency(%q<rcov>, [">= 0"])
83
+ s.add_dependency(%q<simplecov>, [">= 0"])
83
84
  s.add_dependency(%q<rr>, [">= 0"])
84
85
  end
85
86
  else
86
87
  s.add_dependency(%q<rtmilk>, [">= 0"])
87
88
  s.add_dependency(%q<xml-simple>, [">= 0"])
88
89
  s.add_dependency(%q<rtm-time>, [">= 0.2.0"])
89
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
90
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
91
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
90
+ s.add_dependency(%q<rspec>, ["> 2"])
91
+ s.add_dependency(%q<bundler>, [">= 0"])
92
+ s.add_dependency(%q<jeweler>, [">= 0"])
92
93
  s.add_dependency(%q<yard>, [">= 0"])
93
- s.add_dependency(%q<rcov>, [">= 0"])
94
+ s.add_dependency(%q<simplecov>, [">= 0"])
94
95
  s.add_dependency(%q<rr>, [">= 0"])
95
96
  end
96
97
  end
@@ -1,6 +1,8 @@
1
1
  require 'rtmilk'
2
2
  require 'rtm-time'
3
3
 
4
+ Version = open(File.dirname(__FILE__) + '/../VERSION').read
5
+
4
6
  module Gyunyu
5
7
  end
6
8
 
@@ -9,8 +9,8 @@ module Gyunyu
9
9
  def initialize
10
10
  @argv ||= ARGV
11
11
  @token ||= Gyunyu::Token.get
12
- @lists ||= RTM::List.alive_all
13
12
 
13
+ _init_lists
14
14
  _init_option( @argv )
15
15
  end
16
16
  attr_reader :option, :token, :lists
@@ -36,6 +36,13 @@ module Gyunyu
36
36
  Format.const_get(format)
37
37
  end
38
38
 
39
+ #
40
+ # [return] Array
41
+ #
42
+ def _init_lists
43
+ @lists ||= RTM::List.alive_all
44
+ end
45
+
39
46
  #
40
47
  # [param] Array argv
41
48
  # [return] Option
@@ -11,6 +11,7 @@ module Gyunyu
11
11
  module Export
12
12
  module Format
13
13
  module Csv
14
+ @tags = []
14
15
  @num_tags = nil
15
16
  @num_notes = nil
16
17
 
@@ -23,7 +24,9 @@ module Gyunyu
23
24
  tasks.each { |t|
24
25
  csv << fields.map { |f|
25
26
  case f
26
- when 'tags', 'notes'
27
+ when 'tags'
28
+ t[f] = expand_tags( t[f] )
29
+ when 'notes'
27
30
  num = instance_variable_get( "@num_#{f}" )
28
31
  while t[f].size < num
29
32
  t[f] += ['']
@@ -56,9 +59,8 @@ module Gyunyu
56
59
  else
57
60
  []
58
61
  end
59
- if !@num_tags or tags.size > @num_tags
60
- @num_tags = tags.size
61
- end
62
+ update_tags_field( tags )
63
+
62
64
  t['tags'] = tags.sort
63
65
 
64
66
  t
@@ -80,6 +82,12 @@ module Gyunyu
80
82
  t
81
83
  end
82
84
 
85
+ def update_tags_field( tags )
86
+ @tags = (@tags | tags).sort
87
+
88
+ @num_tags = @tags.size
89
+ end
90
+
83
91
  def expand_fields( fields )
84
92
  fields.map { |e|
85
93
  case e
@@ -95,6 +103,12 @@ module Gyunyu
95
103
  end
96
104
  }.flatten
97
105
  end
106
+
107
+ def expand_tags( tags )
108
+ @tags.map { |e|
109
+ tags.include?(e) ? e : ''
110
+ }
111
+ end
98
112
  end
99
113
  end
100
114
  end
@@ -2,7 +2,7 @@
2
2
  require File.dirname(__FILE__) + '/../../../spec_helper'
3
3
 
4
4
  describe Gyunyu::Command::Export::App do
5
- let(:app) { Gyunyu::Command::Export::App.new }
5
+ let(:app) { app_export }
6
6
 
7
7
  describe 'build_filter' do
8
8
  subject {
@@ -4,7 +4,7 @@ require File.dirname(__FILE__) + '/../../../../spec_helper'
4
4
  describe Gyunyu::Command::Export::Format::Csv do
5
5
  csv_formatter = Gyunyu::Command::Export::Format::Csv
6
6
 
7
- let(:app) { Gyunyu::Command::Export::App.new }
7
+ let(:app) { app_export }
8
8
 
9
9
  before {
10
10
  stub(app).task_list { task_raw_data }
@@ -26,10 +26,10 @@ describe Gyunyu::Command::Export::Format::Csv do
26
26
  }
27
27
  it {
28
28
  should == <<EOD
29
- list,name,tags,""
30
- 仕事,jsのlintについて,research,writing
31
- 仕事,あの本読む,reading,""
32
- 仕事,この本読む,reading,""
29
+ list,name,tags,"",""
30
+ 仕事,jsのlintについて,"",research,writing
31
+ 仕事,あの本読む,reading,"",""
32
+ 仕事,この本読む,reading,"",""
33
33
  EOD
34
34
  }
35
35
  end
@@ -20,6 +20,12 @@ describe Gyunyu::Command do
20
20
  describe 'dispatch' do
21
21
  context 'correct command' do
22
22
  before {
23
+ Gyunyu::Command::Export::App.class_eval {
24
+ def _init_lists
25
+ @lists = []
26
+ end
27
+ }
28
+
23
29
  stub.instance_of(Gyunyu::Command::Export::App).run {
24
30
  "`export' dispatched"
25
31
  }
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ class TestingAppExport < Gyunyu::Command::Export::App
4
+ def _init_lists
5
+ @lists = [
6
+ RTM::List.new({ 'id' => '1234',
7
+ 'name' => 'Inbox' }),
8
+ RTM::List.new({ 'id' => '2345',
9
+ 'name' => '個人' }),
10
+ RTM::List.new({ 'id' => '3456',
11
+ 'name' => '勉強' })
12
+ ]
13
+ end
14
+ end
15
+
16
+ def app_export
17
+ app = TestingAppExport.new
18
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  namespace :spec do
4
4
  Dir.glob( File.dirname(__FILE__) + '/../spec/*' ).select { |e|
5
- File.directory? e
5
+ File.directory? e and File.basename( e ) != 'support'
6
6
  }.each { |d|
7
7
  RSpec::Core::RakeTask.new( File.basename( d ) ) { |spec|
8
8
  spec.pattern = "#{d}/**/*.rb"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gyunyu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
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-01-08 00:00:00.000000000Z
12
+ date: 2012-09-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rtmilk
16
- requirement: &3040340 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *3040340
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: xml-simple
27
- requirement: &3040040 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *3040040
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rtm-time
38
- requirement: &3039770 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,43 +53,63 @@ dependencies:
43
53
  version: 0.2.0
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *3039770
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.2.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rspec
49
- requirement: &3039510 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
- - - ~>
67
+ - - ! '>'
53
68
  - !ruby/object:Gem::Version
54
- version: 2.3.0
69
+ version: '2'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *3039510
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>'
76
+ - !ruby/object:Gem::Version
77
+ version: '2'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: bundler
60
- requirement: &3039210 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
- - - ~>
83
+ - - ! '>='
64
84
  - !ruby/object:Gem::Version
65
- version: 1.0.0
85
+ version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *3039210
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: jeweler
71
- requirement: &3038910 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
- - - ~>
99
+ - - ! '>='
75
100
  - !ruby/object:Gem::Version
76
- version: 1.6.4
101
+ version: '0'
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *3038910
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: yard
82
- requirement: &3038620 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: '0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *3038620
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  - !ruby/object:Gem::Dependency
92
- name: rcov
93
- requirement: &3038350 !ruby/object:Gem::Requirement
127
+ name: simplecov
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: '0'
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *3038350
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: rr
104
- requirement: &3038090 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ! '>='
@@ -109,7 +149,12 @@ dependencies:
109
149
  version: '0'
110
150
  type: :development
111
151
  prerelease: false
112
- version_requirements: *3038090
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
113
158
  description: now available export command
114
159
  email: wtnabe@gmail.com
115
160
  executables:
@@ -147,6 +192,7 @@ files:
147
192
  - spec/app/command_spec.rb
148
193
  - spec/app/expander_spec.rb
149
194
  - spec/spec_helper.rb
195
+ - spec/support/app_export.rb
150
196
  - spec/support/task_raw_data.rb
151
197
  - spec/token/token_spec.rb
152
198
  - tasks/git.rake
@@ -167,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
167
213
  version: '0'
168
214
  segments:
169
215
  - 0
170
- hash: -22170513
216
+ hash: 3332948423612070695
171
217
  required_rubygems_version: !ruby/object:Gem::Requirement
172
218
  none: false
173
219
  requirements:
@@ -176,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
222
  version: '0'
177
223
  requirements: []
178
224
  rubyforge_project:
179
- rubygems_version: 1.8.6
225
+ rubygems_version: 1.8.23
180
226
  signing_key:
181
227
  specification_version: 3
182
228
  summary: Simple RTM app for CLI