snapbot 0.4.0 → 1.0.0
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 +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +9 -0
- data/Gemfile +7 -6
- data/lib/snapbot/diagram/dot_generator.rb +1 -1
- data/lib/snapbot/diagram/renderer.rb +0 -2
- data/lib/snapbot/reflector.rb +14 -0
- data/lib/snapbot/version.rb +1 -1
- data/snapbot.gemspec +4 -9
- metadata +4 -64
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8a65261944c5edfded331d78c2148b6a9061eb8fffb23ba54ed9959c385635d
|
4
|
+
data.tar.gz: 4818d6ca6501057205970c94223bb4417f0be4a71f7e0b32a4f9e941fa217cd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee963efab9fe21cb3372010044896804b9de9e737e43e8cfb712ea6c20133198cc96b17c1ea3dde593ba79f5a1a365a117d801fb4b670c586260d9d297f7cb67
|
7
|
+
data.tar.gz: b6cc813176328d8e435d00ee49f6cb2c68cde7bd7fa550190d481efd64737de8f679588dbd53220afd75f5f4b01040490a7d9aa8c70fb9f7db2bf2ad6ead6f02
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [1.0.0] - 2023-12-01
|
4
|
+
|
5
|
+
- Require Ruby >= 3.2.0, drop 2.x support
|
6
|
+
- Supports Ruby 3.2.x, 3.3.x, and 3.4.x
|
7
|
+
|
8
|
+
## [0.4.1] - 2022-08-11
|
9
|
+
|
10
|
+
- Many wonders, lost to the mists of the commit log
|
11
|
+
|
3
12
|
## [0.1.0] - 2022-08-05
|
4
13
|
|
5
14
|
- Initial release
|
data/Gemfile
CHANGED
@@ -5,10 +5,11 @@ source "https://rubygems.org"
|
|
5
5
|
# Specify your gem's dependencies in snapbot.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
# Development dependencies
|
9
|
+
gem "launchy", "~> 2.5"
|
10
10
|
gem "rake", "~> 13.0"
|
11
|
-
|
12
|
-
gem "rspec", "~> 3.
|
13
|
-
|
14
|
-
gem "
|
11
|
+
gem "rbs", "~> 3.9"
|
12
|
+
gem "rspec", "~> 3.13"
|
13
|
+
gem "rubocop", "~> 1.75"
|
14
|
+
gem "sqlite3", ">= 2.1"
|
15
|
+
gem "steep", "~> 1.10"
|
data/lib/snapbot/reflector.rb
CHANGED
@@ -44,6 +44,8 @@ module Snapbot
|
|
44
44
|
|
45
45
|
def add_relationships(instance, set)
|
46
46
|
reflect_associations(instance).each do |association|
|
47
|
+
next unless valid_association?(association) # Skip POROs
|
48
|
+
|
47
49
|
records = Array(instance.send(association.name)).compact
|
48
50
|
records.each do |record|
|
49
51
|
set.add(Relationship.new(instance_name(instance), instance_name(record)))
|
@@ -65,6 +67,18 @@ module Snapbot
|
|
65
67
|
|
66
68
|
private
|
67
69
|
|
70
|
+
# rubocop:disable Style/RescueModifier
|
71
|
+
def valid_association?(association)
|
72
|
+
# AR7.x raises an ArgumentError when the class is a PORO. AR6.x would fall over
|
73
|
+
# later with NoMethodError on `relation_delegate_class`. Either way, we're not
|
74
|
+
# valid if the association.klass is not descended from our `base_activerecord_class`
|
75
|
+
return true if (association.klass rescue ArgumentError) < base_activerecord_class
|
76
|
+
|
77
|
+
warn "#{association.active_record} -> :#{association.name} is not a valid association. " \
|
78
|
+
"Make sure it inherits from #{base_activerecord_class}"
|
79
|
+
end
|
80
|
+
# rubocop:enable Style/RescueModifier
|
81
|
+
|
68
82
|
def instance_name(instance)
|
69
83
|
"#{instance.model_name}##{instance.id}"
|
70
84
|
end
|
data/lib/snapbot/version.rb
CHANGED
data/snapbot.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = "A `save_and_open_diagram` tool to visualise ActiveRecord test records"
|
12
12
|
spec.homepage = "https://github.com/rgarner/snapbot"
|
13
13
|
spec.license = "MIT"
|
14
|
-
spec.required_ruby_version = ">= 2.
|
14
|
+
spec.required_ruby_version = ">= 3.2.0"
|
15
15
|
|
16
16
|
spec.metadata["homepage_uri"] = spec.homepage
|
17
17
|
spec.metadata["source_code_uri"] = "https://github.com/rgarner/snapbot"
|
@@ -31,14 +31,9 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_dependency "binding_of_caller", "~> 1.0"
|
32
32
|
|
33
33
|
version_string = [">= 6.1"]
|
34
|
-
spec.
|
35
|
-
spec.
|
36
|
-
spec.
|
37
|
-
|
38
|
-
spec.add_development_dependency "launchy"
|
39
|
-
spec.add_development_dependency "rbs"
|
40
|
-
spec.add_development_dependency "sqlite3"
|
41
|
-
spec.add_development_dependency "steep"
|
34
|
+
spec.add_dependency "actionpack", version_string
|
35
|
+
spec.add_dependency "activerecord", version_string
|
36
|
+
spec.add_dependency "activesupport", version_string
|
42
37
|
|
43
38
|
# For more information and examples about making a new gem, check out our
|
44
39
|
# guide at: https://bundler.io/guides/creating_gem.html
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snapbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Russell Garner
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: binding_of_caller
|
@@ -66,63 +65,6 @@ dependencies:
|
|
66
65
|
- - ">="
|
67
66
|
- !ruby/object:Gem::Version
|
68
67
|
version: '6.1'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: launchy
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rbs
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: sqlite3
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: steep
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
description:
|
126
68
|
email:
|
127
69
|
- rgarner@zephyros-systems.co.uk
|
128
70
|
executables: []
|
@@ -164,7 +106,6 @@ metadata:
|
|
164
106
|
homepage_uri: https://github.com/rgarner/snapbot
|
165
107
|
source_code_uri: https://github.com/rgarner/snapbot
|
166
108
|
changelog_uri: https://github.com/rgarner/snapbot/CHANGELOG.md
|
167
|
-
post_install_message:
|
168
109
|
rdoc_options: []
|
169
110
|
require_paths:
|
170
111
|
- lib
|
@@ -172,15 +113,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
113
|
requirements:
|
173
114
|
- - ">="
|
174
115
|
- !ruby/object:Gem::Version
|
175
|
-
version: 2.
|
116
|
+
version: 3.2.0
|
176
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
118
|
requirements:
|
178
119
|
- - ">="
|
179
120
|
- !ruby/object:Gem::Version
|
180
121
|
version: '0'
|
181
122
|
requirements: []
|
182
|
-
rubygems_version: 3.
|
183
|
-
signing_key:
|
123
|
+
rubygems_version: 3.6.7
|
184
124
|
specification_version: 4
|
185
125
|
summary: A `save_and_open_diagram` tool to visualise ActiveRecord test records
|
186
126
|
test_files: []
|