rbs2ts 1.0.0.pre.alpha.2 → 1.0.0.pre.alpha.3

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: 475224f8b22d01a2d3e11e6f4988ce8b96aaa36c1d6b7692d1a48f7e6ff9d7cc
4
- data.tar.gz: 1274cd9d2b5d516b8d1e88e283a68e6e3c76686fecfa83f9dcd030090e60f21c
3
+ metadata.gz: eb1b221a5b895071e46b77dcf36fd1df3e789b0af6f91cb78adbfef7aa633c1c
4
+ data.tar.gz: 1a452ee8992929e84d0cfde11006e1b9918a4dbfb5cd597506523d6491199c7f
5
5
  SHA512:
6
- metadata.gz: 6e193c1144b33b6d12b792554ec288bfaf0a070c8d40cae480b64b7e23a875b32dbb1801d32e779443c78614681f75b45752ed82f2c7909e7694a0b41a972da1
7
- data.tar.gz: 6bbc894fba29723892e8dd7f4c98dd25c014abd58e18d9423215ac9bf1e13dc4237e0c875e4e6984543de80b52465aef19330adbfb34799ae2ba732d3166346e
6
+ metadata.gz: c6242c6655d8ab4d43267c4fb4d7a99471d27047b5b1ea04025aada0066f272b61ffa353a06bcd238a11890d3a65ff5bf32cb6471543a00d5036b734e5b84cba
7
+ data.tar.gz: 9a9d8d78d4eadd2cd9999063d841d878259f5bc52ccfbb0ea02b4691ef0a3133d8c8ab4cb954767925d0564e0c930697b1cd0017a4d476704a8f08515933bfd1
@@ -0,0 +1,18 @@
1
+ version: 2.1
2
+ orbs:
3
+ ruby: circleci/ruby@0.1.2
4
+
5
+ jobs:
6
+ build:
7
+ docker:
8
+ - image: circleci/ruby:3
9
+ executor: ruby/default
10
+ steps:
11
+ - checkout
12
+ - run:
13
+ name: Bundle Install
14
+ command: bundle -v
15
+ - ruby/bundle-install
16
+ - run:
17
+ name: RSpec
18
+ command: bundle exec rspec
data/.gitignore CHANGED
@@ -56,5 +56,4 @@ Gemfile.lock
56
56
 
57
57
  # Used by RuboCop. Remote config files pulled in from inherit_from directive.
58
58
  # .rubocop-https?--*
59
-
60
-
59
+ .rspec_status
data/Gemfile CHANGED
@@ -7,3 +7,5 @@ gemspec
7
7
 
8
8
  gem "debase"
9
9
  gem "ruby-debug-ide"
10
+ gem "pry"
11
+ gem "pry-byebug"
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Rbs2ts
2
2
 
3
+ [![mugi_uno](https://circleci.com/<VCS>/<ORG_NAME>/<PROJECT_NAME>.svg?style=svg)](LINK)
4
+
3
5
  Convert RBS to TypeScript type definition.
4
6
 
5
7
  ## Installation
@@ -13,3 +15,17 @@ gem install rbs2ts
13
15
  ```
14
16
  rbs2ts convert type.rbs
15
17
  ```
18
+
19
+ ---
20
+
21
+ ## ToDo
22
+
23
+ - [x] Literal type
24
+ - [ ] Interface type
25
+ - [ ] Literal type
26
+ - [ ] Tuple Type
27
+ - [ ] Base Types
28
+ - [ ] Method Type (Argument Types and Return Types)
29
+ - [ ] Class declaration
30
+ - [ ] Module declaration
31
+ - [ ] Interface declaration
@@ -1,17 +1,19 @@
1
1
  require "thor"
2
2
  require "rbs2ts/converter"
3
-
3
+
4
4
  module Rbs2ts
5
5
  class Cli < Thor
6
6
  desc "convert rbs to ts", "convert rbs to ts"
7
7
  def convert(path)
8
+ ::RBS.logger_level = :error
9
+
8
10
  loader = ::RBS::EnvironmentLoader.new(core_root: nil)
9
11
 
10
12
  loader.add(path: Pathname(path))
11
13
 
12
14
  env = ::RBS::Environment.from_loader(loader).resolve_type_names
13
15
 
14
- Converter::Declarations::Declarations.new(env.declarations).to_ts
16
+ puts Converter::Declarations::Declarations.new(env.declarations).to_ts
15
17
  end
16
18
  end
17
19
  end
@@ -14,7 +14,7 @@ module Rbs2ts
14
14
  end
15
15
  end
16
16
 
17
- puts decls_ts.join("\n\n")
17
+ decls_ts.join("\n\n")
18
18
  end
19
19
  end
20
20
 
@@ -73,6 +73,19 @@ module Rbs2ts
73
73
  end
74
74
  end
75
75
 
76
+ class Literal < ConverterBase
77
+ def to_ts
78
+ case type.literal
79
+ when ::String then
80
+ "\"#{type.literal}\""
81
+ when ::Integer, ::TrueClass, ::FalseClass then
82
+ "#{type.literal}"
83
+ else
84
+ 'unknown'
85
+ end
86
+ end
87
+ end
88
+
76
89
  class Optional < ConverterBase
77
90
  def to_ts
78
91
  "#{Types::Resolver.to_ts(type.type)} | null | undefined"
@@ -169,6 +182,8 @@ module Rbs2ts
169
182
  Types::BasesNil
170
183
  when ::RBS::Types::ClassInstance then
171
184
  Types::ClassInstance
185
+ when ::RBS::Types::Literal then
186
+ Types::Literal
172
187
  when ::RBS::Types::Optional then
173
188
  Types::Optional
174
189
  when ::RBS::Types::Union then
@@ -1,3 +1,3 @@
1
1
  module Rbs2ts
2
- VERSION = "1.0.0-alpha.2"
2
+ VERSION = "1.0.0-alpha.3"
3
3
  end
@@ -10,24 +10,9 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["mugi.uno@gmail.com"]
11
11
 
12
12
  spec.summary = "Convert rbs to typescript"
13
- spec.description = "Convert rbs to typescript"
14
13
  spec.homepage = "https://github.com/mugi-uno/rbs2ts"
14
+ spec.license = "MIT"
15
15
 
16
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
- # to allow pushing to a single host or delete this section to allow pushing to any host.
18
- if spec.respond_to?(:metadata)
19
- # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
20
-
21
- # spec.metadata["homepage_uri"] = spec.homepage
22
- # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
23
- # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
24
- else
25
- raise "RubyGems 2.0 or newer is required to protect against " \
26
- "public gem pushes."
27
- end
28
-
29
- # Specify which files should be added to the gem when it is released.
30
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
31
16
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
32
17
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
33
18
  end
@@ -39,7 +24,7 @@ Gem::Specification.new do |spec|
39
24
  spec.add_dependency "thor"
40
25
  spec.add_dependency "case_transform"
41
26
 
42
- spec.add_development_dependency "bundler", "~> 2.1.4"
27
+ spec.add_development_dependency "bundler", ">= 2.1.4"
43
28
  spec.add_development_dependency "rake", "~> 10.0"
44
29
  spec.add_development_dependency "rspec", "~> 3.0"
45
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs2ts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.alpha.2
4
+ version: 1.0.0.pre.alpha.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - mugi-uno
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-13 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs
@@ -56,14 +56,14 @@ dependencies:
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.1.4
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.1.4
69
69
  - !ruby/object:Gem::Dependency
@@ -94,7 +94,7 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.0'
97
- description: Convert rbs to typescript
97
+ description:
98
98
  email:
99
99
  - mugi.uno@gmail.com
100
100
  executables:
@@ -102,6 +102,7 @@ executables:
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
+ - ".circleci/config.yml"
105
106
  - ".gitignore"
106
107
  - ".rspec"
107
108
  - ".travis.yml"
@@ -120,7 +121,8 @@ files:
120
121
  - lib/rbs2ts/version.rb
121
122
  - rbs2ts.gemspec
122
123
  homepage: https://github.com/mugi-uno/rbs2ts
123
- licenses: []
124
+ licenses:
125
+ - MIT
124
126
  metadata: {}
125
127
  post_install_message:
126
128
  rdoc_options: []