gottani 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.rubocop.yml +0 -0
- data/Gemfile +3 -0
- data/README.md +4 -1
- data/Rakefile +8 -8
- data/gottani.gemspec +27 -27
- data/lib/gottani/version.rb +2 -1
- data/lib/gottani_core.rb +4 -3
- data/lib/indents/base.rb +14 -13
- data/lib/indents/hatena.rb +3 -2
- data/lib/indents/markdown.rb +3 -2
- data/lib/indents/space2.rb +3 -2
- data/lib/indents/space4.rb +3 -2
- data/lib/indents/tab.rb +3 -2
- data/spec/gottani_core_spec.rb +3 -1
- data/spec/indents/tab_spec.rb +8 -5
- data/spec/spec_helper.rb +9 -1
- metadata +46 -32
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c163f3d32476fea1787d06988097e67c345af0fe
|
4
|
+
data.tar.gz: e0627cae0b94fb768c44eeb10c2d029d9821a46c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3ffd6dd42c1ed4098b87a46282a5b01784863313cfa176398caff460a5d58cfe0b69692a8dbdcd8b5a9bcb5836607c90028aa3910c2d4af69c5fcfcf936f3866
|
7
|
+
data.tar.gz: ad948b24fb91db913740353e93daa1121472b001834a5f05a7472d4e4a2b981dd30e635386fda6d3efdb18deb5053db622bfb7eb90c53e095a498560868c6049
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.rubocop.yml
ADDED
File without changes
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
# Gottani
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/gottani.svg)](http://badge.fury.io/rb/gottani)
|
3
4
|
[![Build Status](https://travis-ci.org/tbpgr/gottani.png?branch=master)](https://travis-ci.org/tbpgr/gottani)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/tbpgr/gottani/badge.png?branch=master)](https://coveralls.io/r/tbpgr/gottani?branch=master)
|
6
|
+
[![Code Climate](https://codeclimate.com/github/tbpgr/gottani.png)](https://codeclimate.com/github/tbpgr/gottani)
|
4
7
|
|
5
|
-
Gottani is
|
8
|
+
Gottani is converter for indent-style text.
|
6
9
|
|
7
10
|
## Support type
|
8
11
|
|
data/Rakefile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require 'rspec/core'
|
3
|
-
require 'rspec/core/rake_task'
|
4
|
-
task :
|
5
|
-
|
6
|
-
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
8
|
-
end
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
task default: [:spec]
|
5
|
+
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
8
|
+
end
|
data/gottani.gemspec
CHANGED
@@ -1,27 +1,27 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'gottani/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
8
|
-
spec.version = Gottani::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.description = %q
|
12
|
-
spec.summary = %q
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
15
|
-
|
16
|
-
spec.files = `git ls-files`.split(
|
17
|
-
spec.executables = spec.files.grep(
|
18
|
-
spec.test_files = spec.files.grep(
|
19
|
-
spec.require_paths = [
|
20
|
-
|
21
|
-
spec.add_runtime_dependency
|
22
|
-
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'gottani/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'gottani'
|
8
|
+
spec.version = Gottani::VERSION
|
9
|
+
spec.authors = ['tbpgr']
|
10
|
+
spec.email = ['tbpgr@tbpgr.jp']
|
11
|
+
spec.description = %q(Gottani is converter for indent-style text.)
|
12
|
+
spec.summary = %q(Gottani is converter for indent-style text.)
|
13
|
+
spec.homepage = 'https://github.com/tbpgr/gottani'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
17
|
+
spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_runtime_dependency 'activesupport'
|
22
|
+
|
23
|
+
spec.add_development_dependency 'bundler'
|
24
|
+
spec.add_development_dependency 'rake'
|
25
|
+
spec.add_development_dependency 'rspec'
|
26
|
+
spec.add_development_dependency 'simplecov'
|
27
|
+
end
|
data/lib/gottani/version.rb
CHANGED
data/lib/gottani_core.rb
CHANGED
@@ -7,6 +7,7 @@ require 'indents/markdown'
|
|
7
7
|
require 'indents/hatena'
|
8
8
|
|
9
9
|
module Gottani
|
10
|
+
# Gottani::Core
|
10
11
|
class Core
|
11
12
|
attr_reader :type, :common
|
12
13
|
FORMAT = {
|
@@ -14,16 +15,16 @@ module Gottani
|
|
14
15
|
space2: Gottani::Space2,
|
15
16
|
space4: Gottani::Space4,
|
16
17
|
markdown: Gottani::Markdown,
|
17
|
-
hatena: Gottani::Hatena
|
18
|
+
hatena: Gottani::Hatena
|
18
19
|
}
|
19
20
|
|
20
21
|
def initialize(type, base)
|
21
22
|
instance = FORMAT[type].new
|
22
|
-
@common = instance.send "#{type
|
23
|
+
@common = instance.send "#{type}_to_common", base
|
23
24
|
end
|
24
25
|
|
25
26
|
def method_missing(method_name, *args, &block)
|
26
|
-
method_name.match
|
27
|
+
method_name.match(/^to_(.*)$/)
|
27
28
|
super unless Regexp.last_match[1]
|
28
29
|
instance = FORMAT[Regexp.last_match[1].to_sym].new
|
29
30
|
return instance.send("to_#{Regexp.last_match[1]}", @common) if instance
|
data/lib/indents/base.rb
CHANGED
@@ -2,44 +2,45 @@
|
|
2
2
|
require 'active_support/concern'
|
3
3
|
|
4
4
|
module Gottani
|
5
|
+
# Gottani::Base
|
5
6
|
module Base
|
6
7
|
extend ActiveSupport::Concern
|
7
8
|
attr_accessor :indent_char, :separator
|
8
9
|
|
10
|
+
# ClassMethods
|
9
11
|
module ClassMethods
|
10
12
|
def define_to_common(base)
|
11
|
-
define_method "#{base
|
12
|
-
to_common text
|
13
|
+
define_method "#{base}_to_common".to_sym do |text|
|
14
|
+
to_common text
|
13
15
|
end
|
14
|
-
alias_method "to_#{base
|
16
|
+
alias_method "to_#{base}".to_sym, :to_indent_text
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
20
|
def initialize
|
19
|
-
@indent_char =
|
21
|
+
@indent_char = indent_char
|
20
22
|
@zero_start = zero_start?
|
21
|
-
@separator =
|
23
|
+
@separator = separator
|
22
24
|
end
|
23
25
|
|
24
|
-
def to_common(text
|
25
|
-
ret
|
26
|
-
|
27
|
-
chopped_line = line.chop
|
26
|
+
def to_common(text)
|
27
|
+
text.each_line.reduce([]) do |ret, line|
|
28
|
+
chopped = line.chop
|
28
29
|
line_hash = {}
|
29
|
-
level = zero_start? ? indent_level(
|
30
|
+
level = zero_start? ? indent_level(chopped) - 1 : indent_level(chopped)
|
30
31
|
line_hash[:level] = level
|
31
|
-
line_hash[:value] = indentless_line(
|
32
|
+
line_hash[:value] = indentless_line(chopped)
|
32
33
|
line_hash[:value].gsub!(/^#{@separator}/, '') unless @separator.nil?
|
33
34
|
ret << line_hash
|
35
|
+
ret
|
34
36
|
end
|
35
|
-
ret
|
36
37
|
end
|
37
38
|
|
38
39
|
def to_indent_text(common)
|
39
40
|
common.reduce([]) do |ret, line|
|
40
41
|
level = zero_start? ? line[:level] + 1 : line[:level]
|
41
42
|
indent = @indent_char * level
|
42
|
-
indent
|
43
|
+
indent += @separator unless @separator.nil?
|
43
44
|
ret << "#{indent}#{line[:value]}"
|
44
45
|
end.join("\n") + "\n"
|
45
46
|
end
|
data/lib/indents/hatena.rb
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
require 'indents/base'
|
3
3
|
|
4
4
|
module Gottani
|
5
|
+
# Gottani::Hatena
|
5
6
|
class Hatena
|
6
7
|
include Base
|
7
8
|
define_to_common :hatena
|
8
9
|
|
9
|
-
def
|
10
|
+
def indent_char
|
10
11
|
'*'
|
11
12
|
end
|
12
13
|
|
@@ -14,7 +15,7 @@ module Gottani
|
|
14
15
|
true
|
15
16
|
end
|
16
17
|
|
17
|
-
def
|
18
|
+
def separator
|
18
19
|
nil
|
19
20
|
end
|
20
21
|
end
|
data/lib/indents/markdown.rb
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
require 'indents/base'
|
3
3
|
|
4
4
|
module Gottani
|
5
|
+
# Gottani::Markdown
|
5
6
|
class Markdown
|
6
7
|
include Base
|
7
8
|
|
8
9
|
define_to_common :markdown
|
9
10
|
|
10
|
-
def
|
11
|
+
def indent_char
|
11
12
|
'#'
|
12
13
|
end
|
13
14
|
|
@@ -15,7 +16,7 @@ module Gottani
|
|
15
16
|
true
|
16
17
|
end
|
17
18
|
|
18
|
-
def
|
19
|
+
def separator
|
19
20
|
' '
|
20
21
|
end
|
21
22
|
end
|
data/lib/indents/space2.rb
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
require 'indents/base'
|
3
3
|
|
4
4
|
module Gottani
|
5
|
+
# Gottani::Space2
|
5
6
|
class Space2
|
6
7
|
include Base
|
7
8
|
define_to_common :space2
|
8
9
|
|
9
|
-
def
|
10
|
+
def indent_char
|
10
11
|
' '
|
11
12
|
end
|
12
13
|
|
@@ -14,7 +15,7 @@ module Gottani
|
|
14
15
|
false
|
15
16
|
end
|
16
17
|
|
17
|
-
def
|
18
|
+
def separator
|
18
19
|
nil
|
19
20
|
end
|
20
21
|
end
|
data/lib/indents/space4.rb
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
require 'indents/base'
|
3
3
|
|
4
4
|
module Gottani
|
5
|
+
# Gottani::Space4
|
5
6
|
class Space4
|
6
7
|
include Base
|
7
8
|
define_to_common :space4
|
8
9
|
|
9
|
-
def
|
10
|
+
def indent_char
|
10
11
|
' '
|
11
12
|
end
|
12
13
|
|
@@ -14,7 +15,7 @@ module Gottani
|
|
14
15
|
false
|
15
16
|
end
|
16
17
|
|
17
|
-
def
|
18
|
+
def separator
|
18
19
|
nil
|
19
20
|
end
|
20
21
|
end
|
data/lib/indents/tab.rb
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
require 'indents/base'
|
3
3
|
|
4
4
|
module Gottani
|
5
|
+
# Gottani::Tab
|
5
6
|
class Tab
|
6
7
|
include Base
|
7
8
|
|
8
9
|
define_to_common :tab
|
9
10
|
|
10
|
-
def
|
11
|
+
def indent_char
|
11
12
|
"\t"
|
12
13
|
end
|
13
14
|
|
@@ -15,7 +16,7 @@ module Gottani
|
|
15
16
|
false
|
16
17
|
end
|
17
18
|
|
18
|
-
def
|
19
|
+
def separator
|
19
20
|
nil
|
20
21
|
end
|
21
22
|
end
|
data/spec/gottani_core_spec.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
require 'gottani_core'
|
4
4
|
|
5
|
+
# rubocop:disable Tab, UnusedMethodArgument
|
5
6
|
describe Gottani::Core do
|
6
7
|
context :to_tab do
|
7
8
|
TAB = <<-EOS
|
@@ -112,7 +113,7 @@ root
|
|
112
113
|
input: MARKDOWN,
|
113
114
|
method_name: :to_hatena,
|
114
115
|
expected: HATENA
|
115
|
-
}
|
116
|
+
}
|
116
117
|
]
|
117
118
|
|
118
119
|
cases.each do |c|
|
@@ -143,3 +144,4 @@ root
|
|
143
144
|
end
|
144
145
|
end
|
145
146
|
end
|
147
|
+
# rubocop:enable Tab, UnusedMethodArgument
|
data/spec/indents/tab_spec.rb
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
require 'indents/tab'
|
4
4
|
|
5
|
+
# rubocop:disable Tab, UnusedMethodArgument
|
5
6
|
describe Gottani::Tab do
|
7
|
+
# ConcreteTab
|
6
8
|
class ConcreteTab
|
7
9
|
attr_reader :text, :common
|
8
10
|
|
@@ -66,9 +68,9 @@ root
|
|
66
68
|
{
|
67
69
|
level: 1,
|
68
70
|
value: 'child3'
|
69
|
-
}
|
70
|
-
]
|
71
|
-
}
|
71
|
+
}
|
72
|
+
]
|
73
|
+
}
|
72
74
|
]
|
73
75
|
|
74
76
|
cases.each do |c|
|
@@ -151,10 +153,10 @@ root
|
|
151
153
|
{
|
152
154
|
level: 1,
|
153
155
|
value: 'child3'
|
154
|
-
}
|
156
|
+
}
|
155
157
|
],
|
156
158
|
expected: EXPECTED_TABTREE_CASE1
|
157
|
-
}
|
159
|
+
}
|
158
160
|
]
|
159
161
|
|
160
162
|
cases.each do |c|
|
@@ -186,3 +188,4 @@ root
|
|
186
188
|
end
|
187
189
|
end
|
188
190
|
end
|
191
|
+
# rubocop:enable Tab, UnusedMethodArgument
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'simplecov'
|
3
|
-
|
3
|
+
require 'coveralls'
|
4
|
+
Coveralls.wear!
|
5
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
6
|
+
SimpleCov::Formatter::HTMLFormatter,
|
7
|
+
Coveralls::SimpleCov::Formatter
|
8
|
+
]
|
9
|
+
SimpleCov.start do
|
10
|
+
add_filter '/spec/'
|
11
|
+
end
|
4
12
|
RSpec.configure do |config|
|
5
13
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
6
14
|
config.run_all_when_everything_filtered = true
|
metadata
CHANGED
@@ -1,80 +1,96 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gottani
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- tbpgr
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: bundler
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: rake
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rspec
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: simplecov
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- -
|
73
|
+
- - '>='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: '0'
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
69
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Gottani is converter for indent-style text.
|
70
84
|
email:
|
71
85
|
- tbpgr@tbpgr.jp
|
72
86
|
executables: []
|
73
87
|
extensions: []
|
74
88
|
extra_rdoc_files: []
|
75
89
|
files:
|
90
|
+
- .coveralls.yml
|
76
91
|
- .gitignore
|
77
92
|
- .rspec
|
93
|
+
- .rubocop.yml
|
78
94
|
- .travis.yml
|
79
95
|
- Gemfile
|
80
96
|
- LICENSE.txt
|
@@ -95,30 +111,28 @@ files:
|
|
95
111
|
homepage: https://github.com/tbpgr/gottani
|
96
112
|
licenses:
|
97
113
|
- MIT
|
114
|
+
metadata: {}
|
98
115
|
post_install_message:
|
99
116
|
rdoc_options: []
|
100
117
|
require_paths:
|
101
118
|
- lib
|
102
119
|
required_ruby_version: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
120
|
requirements:
|
105
|
-
- -
|
121
|
+
- - '>='
|
106
122
|
- !ruby/object:Gem::Version
|
107
123
|
version: '0'
|
108
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
125
|
requirements:
|
111
|
-
- -
|
126
|
+
- - '>='
|
112
127
|
- !ruby/object:Gem::Version
|
113
128
|
version: '0'
|
114
129
|
requirements: []
|
115
130
|
rubyforge_project:
|
116
|
-
rubygems_version:
|
131
|
+
rubygems_version: 2.3.0
|
117
132
|
signing_key:
|
118
|
-
specification_version:
|
119
|
-
summary: Gottani is
|
133
|
+
specification_version: 4
|
134
|
+
summary: Gottani is converter for indent-style text.
|
120
135
|
test_files:
|
121
136
|
- spec/gottani_core_spec.rb
|
122
137
|
- spec/indents/tab_spec.rb
|
123
138
|
- spec/spec_helper.rb
|
124
|
-
has_rdoc:
|