snail_parser 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0ac283bb474f376a1777787bff35b8623a419ea
4
- data.tar.gz: a71eca840272647c1c9d2dc62365866397baeaa0
3
+ metadata.gz: dde26dcd7525f6c28134a6e2f246ae58337d5df2
4
+ data.tar.gz: 69d3bd6c1c10d4b86c6a1fc9bf08d140fa376978
5
5
  SHA512:
6
- metadata.gz: e840d5f7ae9885c25b84513036253fa86c9ea46e943d8845c9d679b62366de9f85ef76c36140ebe699bedb9514ad577934bbdbc7b868f61c9bb2d1199dd454fe
7
- data.tar.gz: 2940a1652a413a43d53598b6ddcc788398ebe476a68a18fc7481a14622951db9d074bbbc9fb780bbac17e39692375ce07869cdf7522910e4d2325c763e5b7fff
6
+ metadata.gz: 7848aea8a83a11b63109d53ac326e04cacfdcb9fe0ce1955d2c0e3d573fc0a28747299ab2ddbe8ef6ac758df15e23d54a751afa5060896a693962a55eb72cf2f
7
+ data.tar.gz: 0c7d25f628097cab22bfaeb7b28534b9d367ddcff9caecdd74e584743035c411e7da77e5e5c4ffe49c13f03cc5dda09ae5b6cb9340d7b9c6118fed03fe5f863b
@@ -2,6 +2,7 @@ module SnailParser
2
2
  class Formatter
3
3
  autoload :Json, 'snail_parser/formatter/json'
4
4
  autoload :Default, 'snail_parser/formatter/default'
5
+ autoload :Vim, 'snail_parser/formatter/vim'
5
6
 
6
7
  def initialize(result)
7
8
  @result = result
@@ -0,0 +1,22 @@
1
+ class SnailParser::Formatter::Vim < SnailParser::Formatter
2
+ def report
3
+ rows = @result.each_with_object([]) do |row, result|
4
+ line = row.map { |key, value| "'#{key}':#{cast_value_to_vim_object(value)}" }
5
+ result << "{#{line.join(',')}}"
6
+ end
7
+
8
+ "[#{rows.join(',')}]"
9
+ end
10
+
11
+ private
12
+
13
+ def cast_value_to_vim_object(value)
14
+ value = case value
15
+ when Time
16
+ sprintf('%02d:%02d:%02d', value.hour, value.min, value.sec)
17
+ when Date, String, Integer, NilClass
18
+ value
19
+ end
20
+ "'#{value}'"
21
+ end
22
+ end
@@ -20,8 +20,7 @@ module SnailParser
20
20
  end
21
21
 
22
22
  parser.on('--formatter FORMATTER') do |klass|
23
- # SnailParser.configuration[:formatter] = Formatter.const_get(klass)
24
- SnailParser.configuration[:formatter] = Formatter::Json
23
+ SnailParser.configuration[:formatter] = Formatter.const_get(klass)
25
24
  end
26
25
 
27
26
  parser.on_tail('-h', '--help', 'Show this usage message and quit.') do |setting|
@@ -1,3 +1,3 @@
1
1
  module SnailParser
2
- Version = '0.0.2'
2
+ Version = '0.0.3'
3
3
  end
@@ -1,17 +1,4 @@
1
1
  RSpec.describe SnailParser::Formatter::Json do
2
- let(:formatter) { described_class.new(result) }
3
- let(:result) do
4
- [
5
- {
6
- title: 'do_something2',
7
- status: 'Overdue',
8
- beginning_at: Date.new,
9
- completed_at: nil,
10
- time_spent: Time.new
11
- }
12
- ]
13
- end
14
-
15
2
  describe '#report' do
16
3
  subject { formatter.report }
17
4
  it 'report as json' do
@@ -0,0 +1,10 @@
1
+ RSpec.describe SnailParser::Formatter::Vim do
2
+ describe '#report' do
3
+ subject { formatter.report }
4
+ let(:expected){"[{'title':'do_something2','status':'Overdue','beginning_at':'2014-09-26','completed_at':'','time_spent':'01:02:03'}]"}
5
+
6
+ it 'report for vim' do
7
+ is_expected.to eq expected
8
+ end
9
+ end
10
+ end
@@ -18,8 +18,8 @@ RSpec.describe SnailParser::OptionParser do
18
18
  end
19
19
  end
20
20
 
21
- it_should_behave_like 'parsing option', :formatter, SnailParser::Formatter::Json do
22
- let(:argv) { %w(--formatter Json) }
21
+ it_should_behave_like 'parsing option', :formatter, SnailParser::Formatter::Vim do
22
+ let(:argv) { %w(--formatter Vim) }
23
23
  end
24
24
 
25
25
  it_should_behave_like 'parsing option', :path, 'path' do
@@ -0,0 +1,22 @@
1
+ module FormatterSupport
2
+ def self.included(klass)
3
+ klass.class_eval do
4
+ let(:formatter) { described_class.new(result) }
5
+ let(:result) do
6
+ [
7
+ {
8
+ title: 'do_something2',
9
+ status: 'Overdue',
10
+ beginning_at: Date.parse('2014-09-26'),
11
+ completed_at: nil,
12
+ time_spent: Time.parse('01:02:03')
13
+ }
14
+ ]
15
+ end
16
+ end
17
+ end
18
+
19
+ RSpec.configure do |config|
20
+ config.include self, file_path: /lib\/snail_parser\/formatter/
21
+ end
22
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snail_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - alpaca-tc
@@ -66,16 +66,19 @@ files:
66
66
  - lib/snail_parser/formatter.rb
67
67
  - lib/snail_parser/formatter/default.rb
68
68
  - lib/snail_parser/formatter/json.rb
69
+ - lib/snail_parser/formatter/vim.rb
69
70
  - lib/snail_parser/option_parser.rb
70
71
  - lib/snail_parser/parser.rb
71
72
  - lib/snail_parser/version.rb
72
73
  - spec/fixtures/test.csv
73
74
  - spec/lib/snail_parser/formatter/json_spec.rb
75
+ - spec/lib/snail_parser/formatter/vim_spec.rb
74
76
  - spec/lib/snail_parser/option_parser_spec.rb
75
77
  - spec/lib/snail_parser/parser_spec.rb
76
78
  - spec/lib/snail_parser/version_spec.rb
77
79
  - spec/lib/snail_parser_spec.rb
78
80
  - spec/spec_helper.rb
81
+ - spec/support/formatter_support.rb
79
82
  homepage: https://github.com/alpaca-tc/snail_parser
80
83
  licenses:
81
84
  - MIT
@@ -103,8 +106,10 @@ summary: ''
103
106
  test_files:
104
107
  - spec/fixtures/test.csv
105
108
  - spec/lib/snail_parser/formatter/json_spec.rb
109
+ - spec/lib/snail_parser/formatter/vim_spec.rb
106
110
  - spec/lib/snail_parser/option_parser_spec.rb
107
111
  - spec/lib/snail_parser/parser_spec.rb
108
112
  - spec/lib/snail_parser/version_spec.rb
109
113
  - spec/lib/snail_parser_spec.rb
110
114
  - spec/spec_helper.rb
115
+ - spec/support/formatter_support.rb