Skip to content

Commit

Permalink
YNGJ-1058: Create Aether Observatory (#297)
Browse files Browse the repository at this point in the history
Extracting `AetherObservatory` from `Talkbox`. Internal PubSub system
base upon `ActiveSupport::Notifications`
  • Loading branch information
dutchess authored Dec 19, 2024
1 parent d9f7f55 commit 8f1c380
Show file tree
Hide file tree
Showing 29 changed files with 2,009 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/aether_observatory.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: aether_observatory

on:
push:

jobs:
ruby:
uses: powerhome/github-actions-workflows/.github/workflows/ruby-gem.yml@main
with:
package: ${{ github.workflow }}
workdir: "packages/${{ github.workflow }}"
gemfiles: "['gemfiles/rails_6_0.gemfile','gemfiles/rails_6_1.gemfile','gemfiles/rails_7_0.gemfile','gemfiles/rails_7_1.gemfile']"
ruby: '["3.0","3.3"]'
secrets: inherit
4 changes: 4 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ At [Power Home Remodeling](https://powerhrg.com/), we have created foundational

power-tools currently contains the following packages (marked for release to rubygems 💎 or npm ☕️):

[aether_observatory](https://github.com/powerhome/power-tools/blob/main/packages/aether_observatory/docs/README.md) 💎

AetherObservatory provides an event broadcast and subscription system based around ActiveSupport::Notifications.

[api_chai](https://github.com/powerhome/power-tools/blob/main/packages/api_chai/docs/README.md) 💎

ApiChai provides a simple integration with net-http around a lightweight layer for reporting and graceful error handling.
Expand Down
9 changes: 9 additions & 0 deletions packages/aether_observatory/.rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
require:
- rubocop-powerhome

AllCops:
TargetRubyVersion: 3.0

Metrics/MethodLength:
Exclude:
- spec/**/*_spec.rb
21 changes: 21 additions & 0 deletions packages/aether_observatory/Appraisals
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# frozen_string_literal: true

appraise "rails-6-0" do
gem "activemodel", "~> 6.0.6"
gem "activesupport", "~> 6.0.6"
end

appraise "rails-6-1" do
gem "activemodel", "~> 6.1.7"
gem "activesupport", "~> 6.1.7"
end

appraise "rails-7-0" do
gem "activemodel", "~> 7.0.8"
gem "activesupport", "~> 7.0.8"
end

appraise "rails-7-1" do
gem "activemodel", "~> 7.1.3"
gem "activesupport", "~> 7.1.3"
end
7 changes: 7 additions & 0 deletions packages/aether_observatory/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# frozen_string_literal: true

source "https://rubygems.org"

gemspec

gem "rubocop-powerhome", path: "../rubocop-powerhome"
26 changes: 26 additions & 0 deletions packages/aether_observatory/Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env rake

# frozen_string_literal: true

begin
require "bundler/setup"
rescue LoadError
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
end
Bundler::GemHelper.install_tasks

require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec)

require "rubocop/rake_task"
RuboCop::RakeTask.new(:rubocop)

require "yard"
YARD::Rake::YardocTask.new do |t|
t.files = ["lib/**/*.rb"]
t.options = [
"--no-private",
]
end

task default: %i[rubocop spec]
44 changes: 44 additions & 0 deletions packages/aether_observatory/aether_observatory.gemspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# frozen_string_literal: true

require_relative "lib/aether_observatory/version"

Gem::Specification.new do |spec|
spec.name = "aether_observatory"
spec.version = AetherObservatory::VERSION
spec.authors = ["Terry Finn", "Justin Stanczak"]
spec.email = ["[email protected]", "[email protected]"]

spec.summary = "Aether Observatory"
spec.description = "Aether Observatory provides an event broadcast system."
spec.homepage = "https://github.com/powerhome/power-tools"
spec.license = "MIT"
spec.required_ruby_version = ">= 3.0"

spec.metadata["rubygems_mfa_required"] = "true"
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = spec.homepage
spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/packages/aether_observatory/docs/CHANGELOG.md"

# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(__dir__) do
`git ls-files -z`.split("\x0").reject do |f|
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
end
end
spec.require_paths = ["lib"]

spec.add_dependency "activemodel", ">= 6.0.6.1"
spec.add_dependency "activesupport", ">= 6.0.6.1"
spec.add_development_dependency "appraisal", "~> 2.5.0"

spec.add_development_dependency "bundler", "~> 2.1"
spec.add_development_dependency "license_finder", "~> 7.0"
spec.add_development_dependency "pry", ">= 0.14"
spec.add_development_dependency "pry-byebug", "3.10.1"
spec.add_development_dependency "rake", "~> 13.0"
spec.add_development_dependency "rspec", "~> 3.0"
spec.add_development_dependency "simplecov", "0.15.1"
spec.add_development_dependency "yard", "0.9.21"
spec.metadata["rubygems_mfa_required"] = "true"
end
3 changes: 3 additions & 0 deletions packages/aether_observatory/doc/dependency_decisions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
- - :inherit_from
- https://raw.githubusercontent.com/powerhome/oss-guide/master/license_rules.yml
3 changes: 3 additions & 0 deletions packages/aether_observatory/docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## [0.0.1] - 2024-12-06

- Extracts AetherObservatory from Talkbox engine.
Loading

0 comments on commit 8f1c380

Please sign in to comment.