rbs2ts 1.0.0.pre.alpha.2 → 1.0.0.pre.alpha.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
  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: []