solargraph-rails 0.2.1 → 0.2.2.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +15 -1
- data/lib/solargraph/rails/pin_creator.rb +37 -2
- data/lib/solargraph/rails/version.rb +1 -1
- data/solargraph-rails.gemspec +1 -0
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42b094ca4d96b63dd47297f752e821904875c11eda1f2a367ab84da2862b5ff6
|
4
|
+
data.tar.gz: 60200f07c8ff06a580cd4f44aba81fe2313c12364bf23b9637c8a874b2769c2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55fb5b511f8ff2dc298d47063e4a602154cee613852a750ecc7fe77acdf1a9aa0686fbed86435180cf4c88dcb1038b7510b6ef9b1b58f4ff636d7f17cf34a475
|
7
|
+
data.tar.gz: b33e682d6b94cb029d741495c0e14719ffbc643273d8fbe96b88725cbcc085425710e6d95683646f107bc5d874dc2ed00b96e89149fe881d2b6113bba95c3eda
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,19 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
solargraph-rails (0.2.
|
4
|
+
solargraph-rails (0.2.1)
|
5
|
+
activesupport
|
5
6
|
solargraph (~> 0.41.1)
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
9
10
|
specs:
|
11
|
+
activesupport (6.1.3.2)
|
12
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
|
+
i18n (>= 1.6, < 2)
|
14
|
+
minitest (>= 5.1)
|
15
|
+
tzinfo (~> 2.0)
|
16
|
+
zeitwerk (~> 2.3)
|
10
17
|
ast (2.4.2)
|
11
18
|
backport (1.1.2)
|
12
19
|
benchmark (0.1.1)
|
@@ -14,14 +21,18 @@ GEM
|
|
14
21
|
bundler (>= 1.2.0, < 3)
|
15
22
|
thor (~> 1.0)
|
16
23
|
byebug (11.1.3)
|
24
|
+
concurrent-ruby (1.1.9)
|
17
25
|
diff-lcs (1.4.4)
|
18
26
|
e2mmap (0.1.0)
|
27
|
+
i18n (1.8.10)
|
28
|
+
concurrent-ruby (~> 1.0)
|
19
29
|
jaro_winkler (1.5.4)
|
20
30
|
kramdown (2.3.1)
|
21
31
|
rexml
|
22
32
|
kramdown-parser-gfm (1.1.0)
|
23
33
|
kramdown (~> 2.0)
|
24
34
|
mini_portile2 (2.5.3)
|
35
|
+
minitest (5.14.4)
|
25
36
|
nokogiri (1.11.6)
|
26
37
|
mini_portile2 (~> 2.5.0)
|
27
38
|
racc (~> 1.4)
|
@@ -76,8 +87,11 @@ GEM
|
|
76
87
|
yard (~> 0.9, >= 0.9.24)
|
77
88
|
thor (1.1.0)
|
78
89
|
tilt (2.0.10)
|
90
|
+
tzinfo (2.0.4)
|
91
|
+
concurrent-ruby (~> 1.0)
|
79
92
|
unicode-display_width (2.0.0)
|
80
93
|
yard (0.9.26)
|
94
|
+
zeitwerk (2.4.2)
|
81
95
|
|
82
96
|
PLATFORMS
|
83
97
|
ruby
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'active_support/core_ext/string'
|
4
|
+
|
3
5
|
module Solargraph
|
4
6
|
module Rails
|
5
7
|
class PinCreator
|
@@ -50,14 +52,47 @@ module Solargraph
|
|
50
52
|
end
|
51
53
|
end
|
52
54
|
|
55
|
+
parser.on_ruby_line do |line|
|
56
|
+
if line =~ /belongs_to\s+:([a-z_]*)/
|
57
|
+
belongs_to_reader = Regexp.last_match(1)
|
58
|
+
|
59
|
+
loc = Solargraph::Location.new(
|
60
|
+
path,
|
61
|
+
Solargraph::Range.from_to(
|
62
|
+
parser.current_line_number,
|
63
|
+
0,
|
64
|
+
parser.current_line_number,
|
65
|
+
parser.current_line_length - 1
|
66
|
+
)
|
67
|
+
)
|
68
|
+
model_attrs << { name: belongs_to_reader, type: belongs_to_reader.camelize, location: loc }
|
69
|
+
elsif line =~ /has_many\s+:([a-z_]*)/
|
70
|
+
has_many_reader = Regexp.last_match(1)
|
71
|
+
|
72
|
+
loc = Solargraph::Location.new(
|
73
|
+
path,
|
74
|
+
Solargraph::Range.from_to(
|
75
|
+
parser.current_line_number,
|
76
|
+
0,
|
77
|
+
parser.current_line_number,
|
78
|
+
parser.current_line_length - 1
|
79
|
+
)
|
80
|
+
)
|
81
|
+
model_attrs << {
|
82
|
+
name: has_many_reader,
|
83
|
+
type: "Array<#{has_many_reader.singularize.camelize}>",
|
84
|
+
location: loc
|
85
|
+
}
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
53
89
|
parser.parse
|
54
90
|
|
55
91
|
Solargraph::Logging.logger.info "Adding #{model_attrs.count} attributes as pins"
|
56
|
-
# TODO have to return other types of pins too
|
57
92
|
model_attrs.map do |attr|
|
58
93
|
Solargraph::Pin::Method.new(
|
59
94
|
name: attr[:name],
|
60
|
-
comments: "@return [#{type_translation[attr[:type]
|
95
|
+
comments: "@return [#{type_translation.fetch(attr[:type], attr[:type])}]",
|
61
96
|
location: attr[:location],
|
62
97
|
closure: Solargraph::Pin::Namespace.new(name: module_names.join('::') + "::#{model_name}"),
|
63
98
|
scope: :instance,
|
data/solargraph-rails.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solargraph-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.1
|
4
|
+
version: 0.2.2.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fritz Meissner
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.41.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activesupport
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 6.1.3
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 6.1.3
|
69
83
|
description: Add reflection on ActiveModel dynamic attributes that will be created
|
70
84
|
at runtime
|
71
85
|
email:
|
@@ -108,9 +122,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
122
|
version: '0'
|
109
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
124
|
requirements:
|
111
|
-
- - "
|
125
|
+
- - ">"
|
112
126
|
- !ruby/object:Gem::Version
|
113
|
-
version:
|
127
|
+
version: 1.3.1
|
114
128
|
requirements: []
|
115
129
|
rubygems_version: 3.2.3
|
116
130
|
signing_key:
|