textlint-ruby 0.1.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34fcdaa79b17b3ea92addafa5125e0d28f4cd114fb338d0f6ec97d243070bdd1
4
- data.tar.gz: 28cd88e7d364424b8c75889f6c57fa92e03d02c2756f70974ac2d395a59e301b
3
+ metadata.gz: f766982ec45b8b0f8d59e148320890f29294eaac2855c02f516fe80c720b4e15
4
+ data.tar.gz: 1afebad572f53700aef161d9e650b3ad50ed9343e7100ce43bc67dd3dd6e7d0b
5
5
  SHA512:
6
- metadata.gz: e4b43a0e423cef7b375202b4b20f144563bd16434dd279bd991b1d29ab696f1852bb71f13dad18adb78fe407537fe9c620482ebcec692cd2c67f4224704203e6
7
- data.tar.gz: b2bc9ca563fe12d94d161508c24fdd261585db92e35088fad0ceeb83a5ae54c614454bb314a2db2b5facc62e28498508e22a10ecb4dcff4e44a78cbdb3abc2f3
6
+ metadata.gz: b15d75e4d88a06984a53e49b47138a8c96c9e2024f0cc2636111d68d88423e76a69cb4707c61d225e2db034717df7307253a373548f668a75c663f7d044dd995
7
+ data.tar.gz: eb7f82b3fc2256ae5f5a83dfc30f49d7cd02284bb29d7b7f4ba6323ce29b77dfdb1ef6e98e3d9141b5ca7cc7a310c011fbaffec26ed390af34c16a97b853a549
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [2.0.2]
4
+
5
+ - Support heredoc #4
6
+
7
+ ## [2.0.1]
8
+
9
+ - Support `on_ignored_nl` event in Ruby 2.6
10
+ - Changed the repository owner from alpaca-tc to kufu
11
+
12
+ ## [2.0.0]
13
+
14
+ - Add stdio server mode. textlint-plugin-ruby(>= v2.0.0) can connect with textlint-ruby via stdio.
15
+ - Remove textlint-ruby-optimized command
16
+
3
17
  ## [0.1.1]
4
18
 
5
19
  - Support ruby 2.5
data/CODE_OF_CONDUCT.md CHANGED
@@ -39,8 +39,6 @@ This Code of Conduct applies within all community spaces, and also applies when
39
39
 
40
40
  ## Enforcement
41
41
 
42
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at alpaca-tc@alpaca.tc. All complaints will be reviewed and investigated promptly and fairly.
43
-
44
42
  All community leaders are obligated to respect the privacy and security of the reporter of any incident.
45
43
 
46
44
  ## Enforcement Guidelines
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2021 alpaca-tc
3
+ Copyright (c) 2021 SmartHR
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,11 +1,9 @@
1
1
  # textlint-ruby
2
2
 
3
- Ruby AST parser for [textlint-ruby-plugin](https://github.com/alpaca-tc/textlint-ruby-plugin).
3
+ Ruby AST parser for [textlint-plugin-ruby](https://github.com/kufu/textlint-plugin-ruby).
4
4
 
5
5
  ## Installation
6
6
 
7
- **TODO: release gems**
8
-
9
7
  Add this line to your application's Gemfile:
10
8
 
11
9
  ```ruby
@@ -25,11 +23,12 @@ Or install it yourself as:
25
23
  Parse ruby to textlint AST
26
24
 
27
25
  ```sh
26
+ # Parse specific file
28
27
  $ textlint-ruby ./path/to/file.rb
29
28
  {"type":"Document","raw":"...","range":[0,465],"loc":{"start":{"line":1,"column":0},"end":{"line":26,"column":0}},"children":[...]}
30
29
 
31
- # textlint-ruby-optimized is 10x faster but many features of ruby are disabled.
32
- $ textlint-ruby-optimized ./path/to/file.rb
30
+ # Boot textlint-ruby server for textlint-plugin-ruby
31
+ $ textlint-ruby --stdio
33
32
  ```
34
33
 
35
34
  ### Supported nodes
@@ -69,7 +68,7 @@ Supported node types are only `Document` and `Str` because this plugin is used t
69
68
  | ASTNodeTypes.ImageExit | TxtNode | |
70
69
  | ASTNodeTypes.HorizontalRule | TxtNode | |
71
70
  | ASTNodeTypes.HorizontalRuleExit | TxtNode | |
72
- | ASTNodeTypes.Comment | TxtTextNode | |
71
+ | ASTNodeTypes.Comment | TxtTextNode | yes |
73
72
  | ASTNodeTypes.CommentExit | TxtTextNode | |
74
73
  | ASTNodeTypes.Str | TxtTextNode | yes |
75
74
  | ASTNodeTypes.StrExit | TxtTextNode | |
@@ -84,7 +83,7 @@ Run `bundle exec rspec` to run the tests.
84
83
 
85
84
  ## Contributing
86
85
 
87
- Bug reports and pull requests are welcome on GitHub at https://github.com/alpaca-tc/textlint-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/alpaca-tc/textlint-ruby/blob/master/CODE_OF_CONDUCT.md).
86
+ Bug reports and pull requests are welcome on GitHub at https://github.com/kufu/textlint-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/kufu/textlint-ruby/blob/master/CODE_OF_CONDUCT.md).
88
87
 
89
88
  ## License
90
89
 
@@ -92,4 +91,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
92
91
 
93
92
  ## Code of Conduct
94
93
 
95
- Everyone interacting in the `textlint-ruby` project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/alpaca-tc/textlint-ruby/blob/master/CODE_OF_CONDUCT.md).
94
+ Everyone interacting in the `textlint-ruby` project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/kufu/textlint-ruby/blob/master/CODE_OF_CONDUCT.md).
data/bin/textlint-ruby CHANGED
@@ -5,21 +5,4 @@ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
5
5
 
6
6
  require 'textlint'
7
7
 
8
- path = ARGV[0]
9
-
10
- unless File.exist?(path.to_s)
11
- warn("Error: No such file or directory: #{path}")
12
- exit(1)
13
- end
14
-
15
- content = File.read(path)
16
-
17
- begin
18
- ast = Textlint::Parser.parse(content)
19
- puts(ast.as_textlint_json.to_json)
20
- rescue Textlint::SyntaxError => error
21
- warn("Failed to compile: #{path}")
22
- warn('')
23
- warn(error)
24
- exit(1)
25
- end
8
+ Textlint::Cli.run(ARGV.clone)
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'optparse'
4
+
5
+ module Textlint
6
+ class Cli
7
+ attr_reader :options
8
+
9
+ DEFAULT_OPTIONS = {
10
+ stdio: false,
11
+ paths: []
12
+ }.freeze
13
+
14
+ # @param argv [Array] ARGV
15
+ def self.run(argv)
16
+ new(argv).run
17
+ end
18
+
19
+ # @param argv [Array] ARGV
20
+ def initialize(argv)
21
+ @options = DEFAULT_OPTIONS.dup
22
+ parse_options(argv)
23
+ end
24
+
25
+ # Run textlint-ruby
26
+ #
27
+ # @return [void]
28
+ def run
29
+ if @options[:stdio]
30
+ run_stdio_server
31
+ else
32
+ run_file_parser
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def run_stdio_server
39
+ Textlint::Server.new.start
40
+ end
41
+
42
+ def run_file_parser
43
+ path = @options[:path]
44
+
45
+ unless File.exist?(path.to_s)
46
+ warn("Error: No such file or directory: #{path}")
47
+ exit(1)
48
+ end
49
+
50
+ content = File.read(path)
51
+
52
+ begin
53
+ ast = Textlint::Parser.parse(content)
54
+ puts(ast.as_textlint_json.to_json)
55
+ rescue Textlint::SyntaxError => error
56
+ warn("Failed to compile: #{path}")
57
+ warn('')
58
+ warn(error)
59
+ exit(1)
60
+ end
61
+ end
62
+
63
+ def parse_options(argv)
64
+ option_parser = ::OptionParser.new do |parser|
65
+ parser.banner = 'Usage: textlint-ruby [rubyfile_path] [options]'
66
+ parser.program_name = 'textlint-ruby'
67
+
68
+ parser.version = [
69
+ Textlint::VERSION::MAJOR,
70
+ Textlint::VERSION::MINOR,
71
+ Textlint::VERSION::TINY
72
+ ]
73
+
74
+ parser.on('--stdio', 'use stdio') do
75
+ @options[:stdio] = true
76
+ end
77
+
78
+ parser.on_tail('-h', '--help') do
79
+ puts option_parser.help
80
+ exit
81
+ end
82
+ end
83
+
84
+ @options[:path] = option_parser.parse(argv).first
85
+
86
+ if !@options[:stdio] && !@options[:path]
87
+ puts option_parser.help
88
+ exit(1)
89
+ end
90
+ end
91
+ end
92
+ end
@@ -5,6 +5,9 @@ require 'ripper'
5
5
  module Textlint
6
6
  class Parser
7
7
  class RubyToTextlintAST < ::Ripper::Filter
8
+ EVENT_RE = /\Aon_(?<name>\w*)_(?:beg|end)\z/.freeze
9
+ TSTRING_BEG_EVENTS = %w[tstring qwords heredoc].freeze
10
+
8
11
  # @param src [String]
9
12
  # @param lines [Array<String>]
10
13
  def initialize(src)
@@ -12,20 +15,23 @@ module Textlint
12
15
  @src = src
13
16
  @pos = 0
14
17
  @lines = @src.lines
18
+ @events = []
15
19
  end
16
20
 
17
21
  private
18
22
 
23
+ # All events call this method
19
24
  # NOTE: Instance variables are allowed to assign only here to readable code.
20
25
  def on_default(event, token, node)
21
- @token = token
26
+ @token = token.to_s
27
+ @event = event
22
28
 
23
29
  method_name = :"custom_#{event}"
24
30
 
25
31
  if respond_to?(method_name, true)
26
32
  @range = @pos...(@pos + @token.size)
27
33
  @raw = @src[@range]
28
- node = send(method_name, node)
34
+ send(method_name, node)
29
35
  end
30
36
 
31
37
  @pos += @token.size
@@ -34,6 +40,14 @@ module Textlint
34
40
  end
35
41
 
36
42
  def default_node_attributes(type:, **attributes)
43
+ break_count = @token.scan(Textlint::BREAK_RE).size
44
+
45
+ last_column = if break_count == 0
46
+ column + @token.size
47
+ else
48
+ @token.match(LAST_LINE_RE).to_s.size
49
+ end
50
+
37
51
  {
38
52
  type: type,
39
53
  raw: @raw,
@@ -43,12 +57,21 @@ module Textlint
43
57
  line: lineno,
44
58
  column: column
45
59
  ),
46
- end: end_txt_node_position
60
+ end: Textlint::Nodes::TxtNodePosition.new(
61
+ line: lineno + break_count,
62
+ column: last_column
63
+ )
47
64
  )
48
65
  }.merge(attributes)
49
66
  end
50
67
 
68
+ # "hello world"
69
+ # 'hello world'
70
+ # %q{hello world}
51
71
  def custom_on_tstring_content(parentNode)
72
+ begin_event_name, _begin_node = @events.last
73
+ return unless TSTRING_BEG_EVENTS.include?(begin_event_name)
74
+
52
75
  node = Textlint::Nodes::TxtTextNode.new(
53
76
  **default_node_attributes(
54
77
  type: Textlint::Nodes::STR,
@@ -61,20 +84,70 @@ module Textlint
61
84
  parentNode
62
85
  end
63
86
 
64
- def end_txt_node_position
65
- break_count = @token.scan(Textlint::BREAK_RE).size
87
+ # # hello world
88
+ def custom_on_comment(parentNode)
89
+ node = Textlint::Nodes::TxtTextNode.new(
90
+ **default_node_attributes(
91
+ type: Textlint::Nodes::COMMENT,
92
+ value: @token.gsub(/\A#/, '')
93
+ )
94
+ )
66
95
 
67
- last_column = if break_count == 0
68
- column + @token.size
69
- else
70
- @token.match(LAST_LINE_RE).to_s.size
71
- end
96
+ parentNode.children.push(node)
97
+ end
72
98
 
73
- Textlint::Nodes::TxtNodePosition.new(
74
- line: lineno + break_count,
75
- column: last_column
99
+ # =begin
100
+ # hello world
101
+ # =end
102
+ def custom_on_embdoc(parentNode)
103
+ _begin_event_name, begin_node = @events.last
104
+
105
+ node = Textlint::Nodes::TxtTextNode.new(
106
+ type: Textlint::Nodes::COMMENT,
107
+ loc: begin_node.loc,
108
+ range: begin_node.range,
109
+ raw: begin_node.raw,
110
+ value: @token
76
111
  )
112
+
113
+ parentNode.children.push(node)
77
114
  end
115
+
116
+ def event_name
117
+ matched = EVENT_RE.match(@event)
118
+ matched[:name] if matched
119
+ end
120
+
121
+ def on_beg_event(*)
122
+ @events.push(
123
+ [
124
+ event_name,
125
+ Textlint::Nodes::TxtTextNode.new(
126
+ **default_node_attributes(
127
+ type: nil, # NOTE: beg event has no type
128
+ value: @token
129
+ )
130
+ )
131
+ ]
132
+ )
133
+ end
134
+
135
+ def on_end_event(*)
136
+ @events.pop
137
+ end
138
+
139
+ alias custom_on_tstring_beg on_beg_event
140
+ alias custom_on_regexp_beg on_beg_event
141
+ alias custom_on_embexpr_beg on_beg_event
142
+ alias custom_on_qwords_beg on_beg_event
143
+ alias custom_on_embdoc_beg on_beg_event
144
+ alias custom_on_heredoc_beg on_beg_event
145
+
146
+ alias custom_on_tstring_end on_end_event
147
+ alias custom_on_regexp_end on_end_event
148
+ alias custom_on_embexpr_end on_end_event
149
+ alias custom_on_embdoc_end on_end_event
150
+ alias custom_on_heredoc_end on_end_event
78
151
  end
79
152
 
80
153
  # Parse ruby code to AST for textlint
@@ -86,33 +159,41 @@ module Textlint
86
159
  new(src).call
87
160
  end
88
161
 
89
- # @param src [String] ruby source code
90
- def initialize(src)
91
- @src = src
92
- end
93
-
94
- # Parse ruby code to AST for textlint
162
+ # Parse ruby code to TxtParentNode
163
+ #
164
+ # @param src [String]
95
165
  #
96
166
  # @return [Textlint::Nodes::TxtParentNode]
97
- def call
98
- check_syntax!
99
-
100
- document = Textlint::Nodes::TxtParentNode.new(
167
+ def self.build_document(src)
168
+ Textlint::Nodes::TxtParentNode.new(
101
169
  type: Textlint::Nodes::DOCUMENT,
102
- raw: @src,
103
- range: 0...@src.size,
170
+ raw: src,
171
+ range: 0...src.size,
104
172
  loc: Textlint::Nodes::TxtNodeLineLocation.new(
105
173
  start: Textlint::Nodes::TxtNodePosition.new(
106
174
  line: 1,
107
175
  column: 0
108
176
  ),
109
177
  end: Textlint::Nodes::TxtNodePosition.new(
110
- line: @src.split(Textlint::BREAK_RE).size + 1,
111
- column: @src.match(LAST_LINE_RE).to_s.size # extract last line
178
+ line: src.split(Textlint::BREAK_RE).size + 1,
179
+ column: src.match(LAST_LINE_RE).to_s.size # extract last line
112
180
  )
113
181
  )
114
182
  )
183
+ end
184
+
185
+ # @param src [String] ruby source code
186
+ def initialize(src)
187
+ @src = src
188
+ end
189
+
190
+ # Parse ruby code to AST for textlint
191
+ #
192
+ # @return [Textlint::Nodes::TxtParentNode]
193
+ def call
194
+ check_syntax!
115
195
 
196
+ document = self.class.build_document(@src)
116
197
  RubyToTextlintAST.new(@src).parse(document)
117
198
  end
118
199
 
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ module Textlint
6
+ class Server
7
+ REQUIRED_VERSION = '2.0.0'
8
+
9
+ AVAILABLE_ACTIONS = %w[
10
+ parse
11
+ info
12
+ ].freeze
13
+
14
+ # @param stdin [IO]
15
+ # @param stdout [IO]
16
+ # @param stderr [IO]
17
+ def initialize(stdin: $stdin, stdout: $stdout, stderr: $stderr)
18
+ @stdin = stdin
19
+ @stdout = stdout
20
+ @stderr = stderr
21
+ end
22
+
23
+ # Start stdio server
24
+ #
25
+ # @return [void]
26
+ def start
27
+ @stdout.sync = true
28
+ trap_signals
29
+ start_server
30
+ end
31
+
32
+ private
33
+
34
+ def start_server
35
+ receive_stdin do |json|
36
+ action = json['action']
37
+ result = send(:"do_#{action}", json)
38
+ request_seq = json['seq']
39
+ response = { request_seq: request_seq, result: result }
40
+
41
+ @stdout.puts(JSON.dump(response))
42
+ end
43
+ end
44
+
45
+ def validate_request(json)
46
+ if Gem::Version.create(json['version'].to_s) < Gem::Version.create(REQUIRED_VERSION)
47
+ raise(Textlint::RequestError, "textlint-ruby requires textlin-plugin-ruby version >= #{REQUIRED_VERSION}")
48
+ elsif !AVAILABLE_ACTIONS.include?(json['action'])
49
+ raise(Textlint::RequestError, "Unknown action(#{json['action']}) given. Available actions are #{AVAILABLE_ACTIONS}")
50
+ end
51
+ end
52
+
53
+ # request spec
54
+ # { "seq": number, "action": string, "version": string, [key: string]: any }
55
+ #
56
+ # response spec
57
+ # action "info"
58
+ # { "request_seq": number, "version": string, result: string(version) }
59
+ #
60
+ # action "parse"
61
+ # { "request_seq": number, "version": string, result: string(AST for textlint) }
62
+ def receive_stdin
63
+ loop do
64
+ return if @stdin.eof?
65
+
66
+ line = @stdin.readline
67
+
68
+ begin
69
+ json = JSON.parse(line)
70
+ validate_request(json)
71
+ yield(json)
72
+ rescue JSON::JSONError
73
+ warn("Can't parse request to JSON")
74
+ rescue StandardError => error
75
+ warn(error.message)
76
+ end
77
+ end
78
+ end
79
+
80
+ def warn(message)
81
+ @stderr.puts(message)
82
+ end
83
+
84
+ def trap_signals
85
+ ::Signal.trap(:SIGINT) do
86
+ exit
87
+ end
88
+ end
89
+
90
+ def do_info(_json)
91
+ Textlint::VERSION::STRING
92
+ end
93
+
94
+ def do_parse(json)
95
+ path = json['path'].to_s
96
+
97
+ unless File.exist?(path)
98
+ raise(Textlint::RequestError, "Error: No such file or directory: #{path}")
99
+ end
100
+
101
+ content = File.read(path)
102
+
103
+ ast = begin
104
+ Textlint::Parser.parse(content)
105
+ rescue Textlint::SyntaxError
106
+ error = Textlint::RequestError.new("Failed to parse: #{path}. syntax error or the file is incompatible with the ruby(#{RUBY_VERSION}) running textlint-ruby")
107
+ warn(error)
108
+
109
+ Textlint::Parser.build_document(content)
110
+ end
111
+
112
+ ast.as_textlint_json
113
+ end
114
+ end
115
+ end
@@ -1,5 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Textlint
4
- VERSION = '0.1.1'
4
+ module VERSION
5
+ MAJOR = 2
6
+ MINOR = 0
7
+ TINY = 2
8
+
9
+ STRING = [MAJOR, MINOR, TINY].compact.join('.')
10
+ end
5
11
  end
data/lib/textlint.rb CHANGED
@@ -4,10 +4,14 @@ require 'json'
4
4
  require 'textlint/version'
5
5
  require 'textlint/nodes'
6
6
  require 'textlint/parser'
7
+ require 'textlint/cli'
8
+ require 'textlint/server'
7
9
 
8
10
  module Textlint
9
11
  BREAK_RE = /\r?\n/.freeze
10
12
  LAST_LINE_RE = /(?!\r?\n).*\z/.freeze
11
13
 
12
- class SyntaxError < StandardError; end
14
+ class Error < StandardError; end
15
+ class SyntaxError < Error; end
16
+ class RequestError < Error; end
13
17
  end
data/textlint.gemspec CHANGED
@@ -4,19 +4,19 @@ require_relative 'lib/textlint/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'textlint-ruby'
7
- spec.version = Textlint::VERSION
7
+ spec.version = Textlint::VERSION::STRING
8
8
  spec.authors = ['alpaca-tc']
9
9
  spec.email = ['alpaca-tc@alpaca.tc']
10
10
 
11
11
  spec.summary = 'ruby source code parser for textlint'
12
12
  spec.description = ''
13
- spec.homepage = 'https://github.com/alpaca-tc/textlint-ruby'
13
+ spec.homepage = 'https://github.com/kufu/textlint-ruby'
14
14
  spec.license = 'MIT'
15
15
  spec.required_ruby_version = '>= 2.5.0'
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
- spec.metadata['source_code_uri'] = 'https://github.com/alpaca-tc/textlint-ruby'
19
- spec.metadata['changelog_uri'] = 'https://github.com/alpaca-tc/textlint-ruby/blob/main/CHANGELOG.md'
18
+ spec.metadata['source_code_uri'] = 'https://github.com/kufu/textlint-ruby'
19
+ spec.metadata['changelog_uri'] = 'https://github.com/kufu/textlint-ruby/blob/main/CHANGELOG.md'
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
22
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
metadata CHANGED
@@ -1,21 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: textlint-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - alpaca-tc
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-29 00:00:00.000000000 Z
11
+ date: 2022-03-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
14
  email:
15
15
  - alpaca-tc@alpaca.tc
16
16
  executables:
17
17
  - textlint-ruby
18
- - textlint-ruby-optimized
19
18
  extensions: []
20
19
  extra_rdoc_files: []
21
20
  files:
@@ -23,6 +22,7 @@ files:
23
22
  - ".gitignore"
24
23
  - ".rspec"
25
24
  - ".rubocop.yml"
25
+ - ".ruby-version"
26
26
  - CHANGELOG.md
27
27
  - CODE_OF_CONDUCT.md
28
28
  - Gemfile
@@ -31,21 +31,22 @@ files:
31
31
  - README.md
32
32
  - Rakefile
33
33
  - bin/textlint-ruby
34
- - bin/textlint-ruby-optimized
35
34
  - lib/textlint-ruby.rb
36
35
  - lib/textlint.rb
36
+ - lib/textlint/cli.rb
37
37
  - lib/textlint/nodes.rb
38
38
  - lib/textlint/parser.rb
39
+ - lib/textlint/server.rb
39
40
  - lib/textlint/version.rb
40
41
  - textlint.gemspec
41
- homepage: https://github.com/alpaca-tc/textlint-ruby
42
+ homepage: https://github.com/kufu/textlint-ruby
42
43
  licenses:
43
44
  - MIT
44
45
  metadata:
45
- homepage_uri: https://github.com/alpaca-tc/textlint-ruby
46
- source_code_uri: https://github.com/alpaca-tc/textlint-ruby
47
- changelog_uri: https://github.com/alpaca-tc/textlint-ruby/blob/main/CHANGELOG.md
48
- post_install_message:
46
+ homepage_uri: https://github.com/kufu/textlint-ruby
47
+ source_code_uri: https://github.com/kufu/textlint-ruby
48
+ changelog_uri: https://github.com/kufu/textlint-ruby/blob/main/CHANGELOG.md
49
+ post_install_message:
49
50
  rdoc_options: []
50
51
  require_paths:
51
52
  - lib
@@ -60,8 +61,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
61
  - !ruby/object:Gem::Version
61
62
  version: '0'
62
63
  requirements: []
63
- rubygems_version: 3.2.32
64
- signing_key:
64
+ rubygems_version: 3.1.6
65
+ signing_key:
65
66
  specification_version: 4
66
67
  summary: ruby source code parser for textlint
67
68
  test_files: []
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby --disable-all
2
- # frozen_string_literal: true
3
-
4
- load "#{__dir__}/textlint-ruby"