Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Series of Actions with an emphasis on simplicity.
| Date | Stars |
|---|---|
| 2026-07-24 | 882 |
| 2026-07-25 | 882 |
| 2026-07-28 | 882 |
| 2026-07-30 | 882 |
| 2026-08-06 | 882 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day

[](https://rubygems.org/gems/light-service)
[](https://github.com/adomokos/light-service/actions/workflows/project-build.yml)
[](https://codecov.io/gh/adomokos/light-service)
[](http://opensource.org/licenses/MIT)
[](https://rubygems.org/gems/light-service)
LightService is a powerful and flexible service skeleton framework with an emphasis on simplicity
## Table of Contents
- [Table of Contents](#table-of-contents)
- [Why LightService?](#why-lightservice)
- [Getting started](#getting-started)
- [Requirements](#requirements)
- [Installation](#installation)
- [Your first action](#your-first-action)
- [Your first organizer](#your-first-organizer)
- [Stopping the Series of Actions](#stopping-the-series-of-actions)
- [Failing the Context](#failing-the-context)
- [Skipping the rest of the actions](#skipping-the-rest-of-the-actions)
- [Skipping ALL the rest of the actions](#skipping-all-the-rest-of-the-actions)
- [Benchmarking Actions with Around Advice](#benchmarking-actions-with-around-advice)
- [Before and After Action Hooks](#before-and-after-action-hooks)
- [Expects and Promises](#expects-and-promises)
- [Default values for optional Expected keys](#default-values-for-optional-expected-keys)
- [Key Aliases](#key-aliases)
- [Logging](#logging)
- [Error Codes](#error-codes)
- [Action Rollback](#action-rollback)
- [Localizing Messages](#localizing-messages)
- [Built-in localization adapter](#built-in-localization-adapter)
- [I18n localization adapter](#i18n-localization-adapter)
- [Custom localization adapter](#custom-localization-adapter)
- [Orchestrating Logic in Organizers](#orchestrating-logic-in-organizers)
- [ContextFactory for Faster Action Testing](#contextfactory-for-faster-action-testing)
- [Rails support](#rails-support)
- [Organizer generation](#organizer-generation)
- [Action generation](#action-generation)
- [Advanced action generation](#advanced-action-generation)
- [Other implementations](#other-implementations)
- [Contributing](#contributing)
- [Release Notes](#release-notes)
- [License](#license)
## Why LightService?
What do you think of this code?
```ruby
class TaxController < ApplicationController
def update
@order = Order.find(params[:id])
tax_ranges = TaxRange.for_region(order.region)
if tax_ranges.nil?
render :action => :edit, :error => "The tax ranges were not found"
return # Avoiding the double render error
end
tax_percentage = tax_ranges.for_total(@order.total)
if tax_percentage.nil?
render :action => :edit, :error => "The tax percentage was not found"
return # Avoiding the double render error
end
@order.tax = (@order.total * (tax_percentage/100)).round(2)
if @order.total_with_tax > 200
@order.provide_free_shipping!
end
redirect_to checkout_shipping_path(@order), :notice => "Tax was calculated successfully"
end
end
```
This controller violates [SRP](http://en.wikipedia.org/wiki/Single_responsibility_principle) all over.
Also, imagine what it would take to test this beast.
You could move the tax_percentage finders and calculations into the tax model,
but then you'll make your model logic heavy.
This controller does 3 things in order:
* Looks up the tax percentage based on order total
* Calculates the order tax
* Provides free shipping if the total with tax is greater than $200
The order of these tasks matters: you can't calculate the order tax without the percentage.
Wouldn't it be nice to see this insteExcerpt of 45,906 characters
Read on GitHubAttila Domokos · Israel
552
22
12
9
7
7
Olle Jonsson · Auctionet ✨
4
3
2
2
2
2
2
2
2
2
1
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:fc018bab030d4336, topic:workflow