yard-sig 0.1.0 → 0.2.1

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: f35a0b2f65d1d710a4e41c9d8a40c2f0d70fc00d05e2dc6562c34342d53fb66d
4
- data.tar.gz: 688ec18293586b50e61dbb2bfb2a9a9f99c00bbc0f31786861a99f31dbb687ea
3
+ metadata.gz: a8a30d8e37b42f9db474cacba8fe768ae90129eb452cedaa105de1a28995a415
4
+ data.tar.gz: b5ef51eedc71a75d8875f392e93f09f11257b7f91ad88222ee28df64dd9bf7df
5
5
  SHA512:
6
- metadata.gz: 30c4739f18458e18084c42ed9836a33923ed389939db04caeebd73f2ca7f39fa9f9fdb3206800f544eb0828547d08a550766f79e753f2cb61856218abd10c04b
7
- data.tar.gz: 19fc367e95f0447f3e387580d4f8ce62f16771d2f4b1e8ced043bda3e7ea1c65e19d1fee462e593500a91c69b4868ce8441acdd41dbeabf528966e185fca87f5
6
+ metadata.gz: cebe6a8c8697513117acd7080217942cd4320549466a710f780b5f38f0d3d57652121eff85b435d463168f9fed75ddba67b575b25845de311a812abfe3d0891c
7
+ data.tar.gz: eb84fde03e6b369e4445cb31ae5348149da6eaf43952084036b5601045b88cb404f80308315091149247627631e6a3ce23da7dbb4a08aeee1c08a4a9b70fca6f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2023-06-17
3
+ ## [0.2.1] - 2024-01-08
4
+
5
+ - fix: use the hash specific syntax
6
+ - fix: support optional types
7
+ - ci: CI against ruby 3.3
8
+ - ci: upgrade actions/checkout
9
+
10
+ ## [0.2.0] - 2023-07-07
11
+
12
+ - feat: support [AaronC81/sord](https://github.com/AaronC81/sord)
13
+
14
+ ## [0.1.0] - 2023-07-06
4
15
 
5
16
  - Initial release
data/lib/yard-sig/sig.rb CHANGED
@@ -50,7 +50,7 @@ module YardSig
50
50
  if kind == :rest
51
51
  yard_types = "Array<#{yard_types}>"
52
52
  elsif kind == :keyrest
53
- yard_types = "Hash<Symbol, #{yard_types}>"
53
+ yard_types = "Hash{Symbol => #{yard_types}}"
54
54
  end
55
55
 
56
56
  YARD::Tags::Tag.new(tag_name, "", yard_types, name)
@@ -81,9 +81,17 @@ module YardSig
81
81
  "Boolean"
82
82
  when RBS::Types::Bases::Instance
83
83
  @namespace.to_s
84
+ when RBS::Types::Optional
85
+ "#{to_yard_type(type.type)}, nil"
84
86
  when RBS::Types::ClassInstance
85
- args = type.args.map { |t| to_yard_type(t) }.join(", ")
86
- args.empty? ? type.to_s : "#{type.name}<#{args}>"
87
+ args = type.args.map { |t| to_yard_type(t) }
88
+ if args.empty?
89
+ type.to_s
90
+ elsif type.name.name == :Hash
91
+ "#{type.name}{#{args[0]} => #{args[1]}}"
92
+ else
93
+ "#{type.name}<#{args.join(", ")}>"
94
+ end
87
95
  else
88
96
  type.to_s
89
97
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module YardSig
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/yard-sig.rb CHANGED
@@ -12,6 +12,8 @@ module YardSig
12
12
  class SigDirective < ::YARD::Tags::Directive
13
13
  # @!sig () -> void
14
14
  def call
15
+ return unless object
16
+
15
17
  validate_arguments_forwarding!
16
18
 
17
19
  sig = Sig.new(tag.text, object.parameters, object.namespace.path)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-sig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takumi Shotoku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-06 00:00:00.000000000 Z
11
+ date: 2024-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs
@@ -63,8 +63,8 @@ licenses:
63
63
  - MIT
64
64
  metadata:
65
65
  homepage_uri: https://github.com/sinsoku/yard-sig
66
- source_code_uri: https://github.com/sinsoku/yard-sig/blob/v0.1.0/CHANGELOG.md
67
- changelog_uri: https://github.com/sinsoku/yard-sig/tree/v0.1.0
66
+ source_code_uri: https://github.com/sinsoku/yard-sig/blob/v0.2.1/CHANGELOG.md
67
+ changelog_uri: https://github.com/sinsoku/yard-sig/tree/v0.2.1
68
68
  post_install_message:
69
69
  rdoc_options: []
70
70
  require_paths:
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  requirements: []
83
- rubygems_version: 3.4.14
83
+ rubygems_version: 3.4.19
84
84
  signing_key:
85
85
  specification_version: 4
86
86
  summary: A YARD plugin for writing documentations with RBS syntax