roboticist 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: bd2fdff35b65fc220be554946fa2e6b2d4e481c199c36f4f9ddadf3792079334
4
+ data.tar.gz: 4b2733a8aa8de449fb880f442310013ec0938b6b3aa631daf439b60305d38ca4
5
+ SHA512:
6
+ metadata.gz: b7b4e81cc2ae97b911b6b1630315957debe675d6680b21d4f9dfc24a912c0481fe9962ffc07e6373824d3257c0a5a9e33db5eda5995b6006e704548c608235c0
7
+ data.tar.gz: 999e97d2499df7bff1538621d0ed127882de84f0dcdb03aca504f090ce260af451c3d31e6d0ba9003242ce5a57f3ac19c948a90968be3f27600d036b44c9b31f
data/.editorconfig ADDED
@@ -0,0 +1,11 @@
1
+ # Unix-style newlines with a newline ending every file
2
+ [*]
3
+ end_of_line = lf
4
+ insert_final_newline = true
5
+ max_line_length = 120
6
+ trim_trailing_whitespace = true
7
+
8
+ # 2 space indentation
9
+ [{*.rb, *.mjs}]
10
+ indent_style = space
11
+ indent_size = 2
data/.overcommit.yml ADDED
@@ -0,0 +1,31 @@
1
+ # Use this file to configure the Overcommit hooks you wish to use. This will
2
+ # extend the default configuration defined in:
3
+ # https://github.com/sds/overcommit/blob/master/config/default.yml
4
+ #
5
+ # At the topmost level of this YAML file is a key representing type of hook
6
+ # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
7
+ # customize each hook, such as whether to only run it on certain files (via
8
+ # `include`), whether to only display output if it fails (via `quiet`), etc.
9
+ #
10
+ # For a complete list of hooks, see:
11
+ # https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
12
+ #
13
+ # For a complete list of options that you can use to customize hooks, see:
14
+ # https://github.com/sds/overcommit#configuration
15
+ #
16
+ # Uncomment the following lines to make the configuration take effect.
17
+
18
+ PreCommit:
19
+ RuboCop:
20
+ enabled: true
21
+ on_warn: fail # Treat all warnings as failures
22
+
23
+ TrailingWhitespace:
24
+ enabled: true
25
+
26
+ #PostCheckout:
27
+ # ALL: # Special hook name that customizes all hooks of this type
28
+ # quiet: true # Change all post-checkout hooks to only display output on failure
29
+ #
30
+ # IndexTags:
31
+ # enabled: true # Generate a tags file with `ctags` each time HEAD changes
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,45 @@
1
+ require:
2
+ - rubocop-rake
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ TargetRubyVersion: 3.4
7
+ DisplayCopNames: true
8
+ NewCops: enable
9
+
10
+ # ----------------------- Gemspec -----------------------
11
+
12
+ Gemspec/DevelopmentDependencies:
13
+ Enabled: false
14
+
15
+ # ----------------------- Style -----------------------
16
+
17
+ Style/StringLiterals:
18
+ Enabled: true
19
+ EnforcedStyle: single_quotes
20
+
21
+ Style/StringLiteralsInInterpolation:
22
+ Enabled: true
23
+ EnforcedStyle: double_quotes
24
+
25
+ # ----------------------- Layout ----------------------
26
+
27
+ Layout/LineLength:
28
+ Max: 120
29
+ Exclude:
30
+ - roboticist.gemspec
31
+
32
+ # ---------------------- Metrics ----------------------
33
+
34
+ Metrics/BlockLength:
35
+ Exclude:
36
+ - '**/*_spec.rb'
37
+ - roboticist.gemspec
38
+
39
+ Metrics/ParameterLists:
40
+ CountKeywordArgs: false
41
+
42
+ # ----------------------- RSpec -----------------------
43
+
44
+ RSpec/ExampleLength:
45
+ Enabled: false
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.4.1
data/.yardstick.yml ADDED
@@ -0,0 +1,22 @@
1
+ threshold: 100
2
+ rules:
3
+ ApiTag::Presence:
4
+ enabled: true
5
+ ApiTag::Inclusion:
6
+ enabled: true
7
+ ApiTag::ProtectedMethod:
8
+ enabled: true
9
+ ApiTag::PrivateMethod:
10
+ enabled: true
11
+ ExampleTag:
12
+ enabled: true
13
+ ReturnTag:
14
+ enabled: true
15
+ Summary::Presence:
16
+ enabled: true
17
+ Summary::Length:
18
+ enabled: false
19
+ Summary::Delimiter:
20
+ enabled: true
21
+ Summary::SingleLine:
22
+ enabled: false
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2025-01-28
4
+
5
+ - Initial release
@@ -0,0 +1,132 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, caste, color, religion, or sexual
10
+ identity and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the overall
26
+ community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or advances of
31
+ any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official email address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ [INSERT CONTACT METHOD].
64
+ All complaints will be reviewed and investigated promptly and fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series of
86
+ actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or permanent
93
+ ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within the
113
+ community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.1, available at
119
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120
+
121
+ Community Impact Guidelines were inspired by
122
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123
+
124
+ For answers to common questions about this code of conduct, see the FAQ at
125
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126
+ [https://www.contributor-covenant.org/translations][translations].
127
+
128
+ [homepage]: https://www.contributor-covenant.org
129
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130
+ [Mozilla CoC]: https://github.com/mozilla/diversity
131
+ [FAQ]: https://www.contributor-covenant.org/faq
132
+ [translations]: https://www.contributor-covenant.org/translations
data/Guardfile ADDED
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ guard :bundler do
4
+ watch('roboticist.gemspec')
5
+ end
6
+
7
+ guard :bundler_audit, run_on_start: true do
8
+ watch('Gemfile.lock')
9
+ end
10
+
11
+ group :tests do
12
+ guard :rspec, all_on_start: true, cmd: 'COVERAGE=false bundle exec rspec --format progress' do
13
+ watch(%r{^spec/.+_spec\.rb$})
14
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
15
+ watch('spec/spec_helper.rb') { 'spec' }
16
+ end
17
+ end
18
+
19
+ guard :rubocop do
20
+ watch(/.+\.rb$/)
21
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
22
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2025 Wilson Silva
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,109 @@
1
+ # Roboticist
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/roboticist.svg)](https://badge.fury.io/rb/roboticist)
4
+ ![Build](https://github.com/wilsonsilva/roboticist/actions/workflows/main.yml/badge.svg)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/c7633eb2c89eb95ee7f2/maintainability)](https://codeclimate.com/github/wilsonsilva/roboticist/maintainability)
6
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/c7633eb2c89eb95ee7f2/test_coverage)](https://codeclimate.com/github/wilsonsilva/roboticist/test_coverage)
7
+
8
+ TODO
9
+
10
+ ## Table of contents
11
+
12
+ - [Key features](#-key-features)
13
+ - [Installation](#-installation)
14
+ - [Quickstart](#-quickstart)
15
+ - [Documentation](#-documentation)
16
+ - [Development](#-development)
17
+ * [Type checking](#type-checking)
18
+ - [Contributing](#-contributing)
19
+ - [License](#-license)
20
+ - [Code of Conduct](#-code-of-conduct)
21
+
22
+ ## 🔑 Key features
23
+
24
+ TODO
25
+
26
+ ## 📦 Installation
27
+
28
+ Install the gem and add to the application's Gemfile by executing:
29
+
30
+ $ bundle add roboticist
31
+
32
+ If bundler is not being used to manage dependencies, install the gem by executing:
33
+
34
+ $ gem install roboticist
35
+
36
+ ## ⚡️ Quickstart
37
+
38
+ TODO
39
+
40
+ ```ruby
41
+ ```
42
+
43
+ ## 📚 Documentation
44
+
45
+ - [YARD documentation](https://rubydoc.info/gems/roboticist)
46
+
47
+ ## 🔨 Development
48
+
49
+ After checking out the repo, run `bin/setup` to install dependencies.
50
+
51
+ To install this gem onto your local machine, run `bundle exec rake install`.
52
+
53
+ You can also run `bin/console` for an interactive prompt that will allow you to experiment.
54
+
55
+ To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`,
56
+ which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file
57
+ to [rubygems.org](https://rubygems.org).
58
+
59
+ The health and maintainability of the codebase is ensured through a set of
60
+ Rake tasks to test, lint and audit the gem for security vulnerabilities and documentation:
61
+
62
+ ```
63
+ rake build # Build roboticist.gem into the pkg directory
64
+ rake build:checksum # Generate SHA512 checksum if roboticist.gem into the checksums directory
65
+ rake bundle:audit:check # Checks the Gemfile.lock for insecure dependencies
66
+ rake bundle:audit:update # Updates the bundler-audit vulnerability database
67
+ rake clean # Remove any temporary products
68
+ rake clobber # Remove any generated files
69
+ rake coverage # Run spec with coverage
70
+ rake install # Build and install roboticist.gem into system gems
71
+ rake install:local # Build and install roboticist.gem into system gems without network access
72
+ rake qa # Test, lint and perform security and documentation audits
73
+ rake release[remote] # Create a tag, build and push roboticist.gem to rubygems.org
74
+ rake rubocop # Run RuboCop
75
+ rake rubocop:autocorrect # Autocorrect RuboCop offenses (only when it's safe)
76
+ rake rubocop:autocorrect_all # Autocorrect RuboCop offenses (safe and unsafe)
77
+ rake spec # Run RSpec code examples
78
+ rake verify_measurements # Verify that yardstick coverage is at least 100%
79
+ rake yard # Generate YARD Documentation
80
+ rake yard:junk # Check the junk in your YARD Documentation
81
+ rake yardstick_measure # Measure docs in lib/**/*.rb with yardstick
82
+ ```
83
+
84
+ ### Type checking
85
+
86
+ This gem leverages [RBS](https://github.com/ruby/rbs), a language to describe the structure of Ruby programs. It is
87
+ used to provide type checking and autocompletion in your editor. Run `bundle exec typeprof FILENAME` to generate
88
+ an RBS definition for the given Ruby file. And validate all definitions using [Steep](https://github.com/soutaro/steep)
89
+ with the command `bundle exec steep check`.
90
+
91
+ ## 🐞 Issues & Bugs
92
+
93
+ If you find any issues or bugs, please report them [here](https://github.com/wilsonsilva/roboticist/issues), I will be happy
94
+ to have a look at them and fix them as soon as possible.
95
+
96
+ ## 🤝 Contributing
97
+
98
+ Bug reports and pull requests are welcome on GitHub at https://github.com/wilsonsilva/roboticist.
99
+ This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere
100
+ to the [code of conduct](https://github.com/wilsonsilva/roboticist/blob/main/CODE_OF_CONDUCT.md).
101
+
102
+ ## 📜 License
103
+
104
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
105
+
106
+ ## 👔 Code of Conduct
107
+
108
+ Everyone interacting in the roboticist project's codebases, issue trackers, chat rooms and mailing lists is expected
109
+ to follow the [code of conduct](https://github.com/wilsonsilva/roboticist/blob/main/CODE_OF_CONDUCT.md).
data/Rakefile ADDED
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/audit/task'
4
+ require 'bundler/gem_tasks'
5
+ require 'rspec/core/rake_task'
6
+ require 'rubocop/rake_task'
7
+ require 'yaml'
8
+ require 'yard/rake/yardoc_task'
9
+ require 'yard-junk/rake'
10
+ require 'yardstick/rake/measurement'
11
+ require 'yardstick/rake/verify'
12
+
13
+ yardstick_options = YAML.load_file('.yardstick.yml')
14
+
15
+ Bundler::Audit::Task.new
16
+ RSpec::Core::RakeTask.new(:spec)
17
+ RuboCop::RakeTask.new
18
+ YARD::Rake::YardocTask.new
19
+ YardJunk::Rake.define_task
20
+ Yardstick::Rake::Measurement.new(:yardstick_measure, yardstick_options)
21
+ Yardstick::Rake::Verify.new
22
+
23
+ task default: %i[spec rubocop]
24
+
25
+ # Remove the report on rake clobber
26
+ CLEAN.include('measurements', 'doc', '.yardoc', 'tmp')
27
+
28
+ # Delete these files and folders when running rake clobber.
29
+ CLOBBER.include('coverage', '.rspec_status')
30
+
31
+ desc 'Run spec with coverage'
32
+ task :coverage do
33
+ ENV['COVERAGE'] = 'true'
34
+ Rake::Task['spec'].execute
35
+ `open coverage/index.html`
36
+ end
37
+
38
+ desc 'Test, lint and perform security and documentation audits'
39
+ task qa: %w[spec rubocop yard:junk verify_measurements bundle:audit]
data/Steepfile ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ target :lib do
4
+ signature 'sig'
5
+
6
+ check 'lib'
7
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Roboticist
4
+ VERSION = '0.1.0'
5
+ end
data/lib/roboticist.rb ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'roboticist/version'
4
+
5
+ # Encapsulates all the gem's logic
6
+ module Roboticist
7
+ end
@@ -0,0 +1,4 @@
1
+ module Roboticist
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,371 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roboticist
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Wilson Silva
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 2025-02-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bundler-audit
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '0.9'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '0.9'
26
+ - !ruby/object:Gem::Dependency
27
+ name: guard
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.19'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.19'
40
+ - !ruby/object:Gem::Dependency
41
+ name: guard-bundler
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: guard-bundler-audit
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.1'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.1'
68
+ - !ruby/object:Gem::Dependency
69
+ name: guard-rspec
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '4.7'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '4.7'
82
+ - !ruby/object:Gem::Dependency
83
+ name: guard-rubocop
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.5'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.5'
96
+ - !ruby/object:Gem::Dependency
97
+ name: overcommit
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.65'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.65'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '13.2'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '13.2'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rbs
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '3.8'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '3.8'
138
+ - !ruby/object:Gem::Dependency
139
+ name: rdoc
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '6.11'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '6.11'
152
+ - !ruby/object:Gem::Dependency
153
+ name: rspec
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '3.13'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '3.13'
166
+ - !ruby/object:Gem::Dependency
167
+ name: rubocop
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '1.71'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.71'
180
+ - !ruby/object:Gem::Dependency
181
+ name: rubocop-rake
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '0.6'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '0.6'
194
+ - !ruby/object:Gem::Dependency
195
+ name: rubocop-rspec
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '3.4'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '3.4'
208
+ - !ruby/object:Gem::Dependency
209
+ name: simplecov
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '0.22'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '0.22'
222
+ - !ruby/object:Gem::Dependency
223
+ name: simplecov-console
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '0.9'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '0.9'
236
+ - !ruby/object:Gem::Dependency
237
+ name: simplecov_json_formatter
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '0.1'
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '0.1'
250
+ - !ruby/object:Gem::Dependency
251
+ name: steep
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '1.9'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '1.9'
264
+ - !ruby/object:Gem::Dependency
265
+ name: typeprof
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: '0.30'
271
+ type: :development
272
+ prerelease: false
273
+ version_requirements: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: '0.30'
278
+ - !ruby/object:Gem::Dependency
279
+ name: yard
280
+ requirement: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '0.9'
285
+ type: :development
286
+ prerelease: false
287
+ version_requirements: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: '0.9'
292
+ - !ruby/object:Gem::Dependency
293
+ name: yard-junk
294
+ requirement: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '0.0'
299
+ type: :development
300
+ prerelease: false
301
+ version_requirements: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - "~>"
304
+ - !ruby/object:Gem::Version
305
+ version: '0.0'
306
+ - !ruby/object:Gem::Dependency
307
+ name: yardstick
308
+ requirement: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - "~>"
311
+ - !ruby/object:Gem::Version
312
+ version: '0.9'
313
+ type: :development
314
+ prerelease: false
315
+ version_requirements: !ruby/object:Gem::Requirement
316
+ requirements:
317
+ - - "~>"
318
+ - !ruby/object:Gem::Version
319
+ version: '0.9'
320
+ description: Roboticist helps Ruby developers keep their FactoryBot factories clean
321
+ and efficient. It provides tools to detect unused traits, find slow factories, identify
322
+ circular dependencies, and suggest performance optimizations. The gem includes a
323
+ CLI for easy integration into development workflows and CI pipelines.
324
+ email:
325
+ - wilson.dsigns@gmail.com
326
+ executables: []
327
+ extensions: []
328
+ extra_rdoc_files: []
329
+ files:
330
+ - ".editorconfig"
331
+ - ".overcommit.yml"
332
+ - ".rspec"
333
+ - ".rubocop.yml"
334
+ - ".tool-versions"
335
+ - ".yardstick.yml"
336
+ - CHANGELOG.md
337
+ - CODE_OF_CONDUCT.md
338
+ - Guardfile
339
+ - LICENSE.txt
340
+ - README.md
341
+ - Rakefile
342
+ - Steepfile
343
+ - lib/roboticist.rb
344
+ - lib/roboticist/version.rb
345
+ - sig/roboticist.rbs
346
+ homepage: https://github.com/wilsonsilva/roboticist
347
+ licenses:
348
+ - MIT
349
+ metadata:
350
+ homepage_uri: https://github.com/wilsonsilva/roboticist
351
+ source_code_uri: https://github.com/wilsonsilva/roboticist
352
+ changelog_uri: https://github.com/wilsonsilva/roboticist/blob/main/CHANGELOG.md
353
+ rubygems_mfa_required: 'true'
354
+ rdoc_options: []
355
+ require_paths:
356
+ - lib
357
+ required_ruby_version: !ruby/object:Gem::Requirement
358
+ requirements:
359
+ - - ">="
360
+ - !ruby/object:Gem::Version
361
+ version: 3.4.0
362
+ required_rubygems_version: !ruby/object:Gem::Requirement
363
+ requirements:
364
+ - - ">="
365
+ - !ruby/object:Gem::Version
366
+ version: '0'
367
+ requirements: []
368
+ rubygems_version: 3.6.3
369
+ specification_version: 4
370
+ summary: A gem for maintaining, linting and optimizing FactoryBot factories
371
+ test_files: []