Added project skeleton

Necessary to provide initial scaffolding for this project. This was generated using link:https://alchemists.io/projects/rubysmith[Rubysmith]. While this isn't a Ruby project since the core implementation is in C, having the Ruby tooling will help from a CI and code quality perspective.
This commit is contained in:
Brooke Kuhlmann
2026-02-23 10:00:38 -07:00
parent 327849743e
commit 80ff29343a
16 changed files with 239 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
version: 2.1
jobs:
build:
working_directory: ~/project
docker:
- image: bkuhlmann/alpine-ruby:latest
steps:
- checkout
- restore_cache:
name: Gems Restore
keys:
- gem-cache-{{.Branch}}-{{checksum "Gemfile.lock"}}
- gem-cache-
- run:
name: Gems Install
command: |
gem update --system
bundle config set path "vendor/bundle"
bundle install
- save_cache:
name: Gems Store
key: gem-cache-{{.Branch}}-{{checksum "Gemfile.lock"}}
paths:
- vendor/bundle
- run:
name: Rake
command: bundle exec rake
- store_artifacts:
name: SimpleCov Report
path: ~/project/coverage
destination: coverage
+2
View File
@@ -0,0 +1,2 @@
inherit_gem:
caliber: config/all.yml
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Community
url: https://discord.gg/CAgBZQqVWp
about: Please ask questions or discuss specifics here.
+18
View File
@@ -0,0 +1,18 @@
---
name: Issue
title: "Add|Update|Fix|Remove|Refactor "
about: Report an issue. Please use only one of the subject prefixes.
---
<!--
Please focus on well written issues. Context: https://alchemists.io/articles/software_issues.
-->
## Why
<!-- Required. Describe, briefly, why this issue is important. -->
## How
<!-- Optional. List exact steps to implement or reproduce behavior. Screen shots/casts are welcome! -->
## Notes
<!-- Optional. Provide additional details like operating system, software version(s), stack dump, logs, or anything else that would be helpful. -->
+8
View File
@@ -0,0 +1,8 @@
## Overview
<!-- Required. Describe, briefly, why this is necessary and what the overarching architecture is. -->
## Screenshots/Screencasts
<!-- Optional. Provide supporting screen shots/casts. -->
## Details
<!-- Optional. As bullet points, list related issue(s); major highlights; team callouts; and/or other information that is helpful. -->
+3
View File
@@ -0,0 +1,3 @@
.bundle
tmp
Gemfile.lock
+7
View File
@@ -0,0 +1,7 @@
exclude_paths:
- tmp
- vendor
detectors:
LongParameterList:
enabled: false
+1
View File
@@ -0,0 +1 @@
4.0.1
+30
View File
@@ -0,0 +1,30 @@
# frozen_string_literal: true
ruby file: ".ruby-version"
source "https://rubygems.org"
gem "refinements", "~> 14.0"
gem "zeitwerk", "~> 2.7"
group :quality do
gem "caliber", "~> 0.87"
gem "git-lint", "~> 10.0"
gem "reek", "~> 6.5", require: false
gem "simplecov", "~> 0.22", require: false
end
group :development do
gem "rake", "~> 13.3"
end
group :test do
gem "rspec", "~> 3.13"
end
group :tools do
gem "amazing_print", "~> 2.0"
gem "debug", "~> 1.11"
gem "irb-kit", "~> 2.0"
gem "repl_type_completor", "~> 0.1"
end
+20
View File
@@ -0,0 +1,20 @@
Copyright 2025 link:https://trmnl.com[TRMNL].
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+58
View File
@@ -0,0 +1,58 @@
:toc: macro
:toclevels: 5
:figure-caption!:
= Sensor Scanner
toc::[]
== Features
== Requirements
. link:https://www.ruby-lang.org[Ruby].
== Setup
To set up project, run:
[source,bash]
----
git clone https://github.com/bkuhlmann/sensor_scanner
cd sensor_scanner
bin/setup
----
== Usage
== Development
To contribute, run:
[source,bash]
----
git clone https://github.com/usetrmnl/sensor_scanner
cd sensor_scanner
bin/setup
----
You can also use the IRB console for direct access to all objects:
[source,bash]
----
bin/console
----
== Tests
To test, run:
[source,bash]
----
bin/rake
----
== Credits
* Built with link:https://alchemists.io/projects/rubysmith[Rubysmith].
* Engineered by {trmnl_link}.
+17
View File
@@ -0,0 +1,17 @@
# frozen_string_literal: true
require "bundler/setup"
require "git/lint/rake/register"
require "reek/rake/task"
require "rspec/core/rake_task"
require "rubocop/rake_task"
Git::Lint::Rake::Register.call
Reek::Rake::Task.new
RSpec::Core::RakeTask.new { |task| task.verbose = false }
RuboCop::RakeTask.new
desc "Run code quality checks"
task quality: %i[git_lint reek rubocop]
task default: %i[quality spec]
Executable
+6
View File
@@ -0,0 +1,6 @@
#! /usr/bin/env ruby
# frozen_string_literal: true
require "bundler/setup"
load Gem.bin_path "rake", "rake"
Executable
+6
View File
@@ -0,0 +1,6 @@
#! /usr/bin/env ruby
# frozen_string_literal: true
require "bundler/setup"
load Gem.bin_path "rspec-core", "rspec"
Executable
+6
View File
@@ -0,0 +1,6 @@
#! /usr/bin/env ruby
# frozen_string_literal: true
require "bundler/setup"
load Gem.bin_path "rubocop", "rubocop"
Executable
+16
View File
@@ -0,0 +1,16 @@
#! /usr/bin/env ruby
# frozen_string_literal: true
require "debug"
require "fileutils"
APP_ROOT = Pathname(__dir__).join("..").expand_path
Runner = lambda do |*arguments, kernel: Kernel|
kernel.system(*arguments) || kernel.abort("\nERROR: Command #{arguments.inspect} failed.")
end
FileUtils.chdir APP_ROOT do
puts "Installing dependencies..."
Runner.call "bundle install"
end