@radioactive-labs/plutonium 0.1.6 → 0.1.7
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.
package/README.md
CHANGED
|
@@ -1,95 +1,33 @@
|
|
|
1
|
-
# Plutonium:
|
|
1
|
+
# Plutonium: It's like Rails, but for Rails!
|
|
2
2
|
|
|
3
3
|
[](https://github.com/radioactive-labs/plutonium-core/actions/workflows/main.yml)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Plutonium** is a powerful Rapid Application Development (RAD) toolkit for Rails that picks up where Rails left off, introducing application-level concepts and tooling that transform the way you build applications.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Overview
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
It's a culmination of lessons learned from years of developing nearly identical applications and is designed to save you from the drudgery of re-implementation.
|
|
9
|
+
Plutonium builds upon Rails' conventions and extends them with:
|
|
11
10
|
|
|
12
|
-
**
|
|
11
|
+
- **Authentication & Authorization**: Integrates seamlessly with Rodauth or your existing auth system
|
|
12
|
+
- **Complete CRUD Operations**: Rich fields, forms, tables, and nested resources out of the box
|
|
13
|
+
- **Modular Architecture**: Package system based on Rails engines for better organization
|
|
14
|
+
- **Entity Scoping**: Built-in multi-tenancy support that "just works"
|
|
15
|
+
- **Smart Generators**: Eliminate boilerplate while maintaining flexibility
|
|
16
|
+
- **Modern UI**: Beautiful, responsive interface powered by Tailwind CSS and Hotwire
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
- **Comprehensive Features:** Plutonium covers a wide array of functionalities out of the box:
|
|
16
|
-
- Authentication & Authorization
|
|
17
|
-
- Complete CRUD operations with advanced features: customizable inputs, fields, tables, forms, pagination, actions, search, scopes, filtering, nested resources and much more.
|
|
18
|
-
- Modular architecture leveraging Rails engines for improved packaging and namespacing.
|
|
19
|
-
- Time-saving generators for boilerplate tasks.
|
|
20
|
-
- **Omakase with a Twist:** Inspired by Rails' omakase philosophy, Plutonium delivers a convention-based approach but doesn't box you in. It's seamlessly integrated into your project, allowing you to write your application as you would with vanilla Rails but with powerful extensions.
|
|
21
|
-
- **MVC and Beyond:** Plutonium adopts the MVC pattern, enhanced with modern web technologies like [hotwire](TODO), to deliver an interactive and robust user experience. It emphasizes progressive enhancement, ensuring a smooth development process and end-user experience.
|
|
22
|
-
- **Rails Harmony:** A Plutonium app is a Rails app at its core. It respects and builds upon Rails' conventions, making it intuitive for Rails developers. If you know Rails, learning Plutonium requires only a few new concepts.
|
|
23
|
-
- **Effortless Customization:** Plutonium is designed for easy customization to meet your unique requirements. Whether adjusting the functionality of entire resource groups or fine-tuning individual elements, our accessible low-level APIs and the familiar Rails conventions offer unparalleled flexibility. This ensures that any modifications you need to make can be implemented swiftly and smoothly, reducing complexity and enhancing your development experience.
|
|
24
|
-
- **Community-Driven Dependencies:** Plutonium stands on the shoulders of giants, integrating with well-established gems chosen for their robustness and flexibility, including:
|
|
25
|
-
- [ActiveInteraction](https://github.com/AaronLasseigne/active_interaction) for business logic
|
|
26
|
-
- [Pagy](https://github.com/ddnexus/pagy) for pagination
|
|
27
|
-
- [Action Policy](https://actionpolicy.evilmartians.io/): for authorization
|
|
28
|
-
- [Simple Form](https://github.com/heartcombo/simple_form) for forms
|
|
29
|
-
- [Rodauth](https://github.com/jeremyevans/rodauth) (via [rodauth-rails](https://github.com/janko/rodauth-rails)) for authentication. Rodauth is optional, allowing flexibility in choosing your auth solution
|
|
18
|
+
## Project Status
|
|
30
19
|
|
|
31
|
-
|
|
20
|
+
> [!WARNING]
|
|
21
|
+
> While Plutonium is actively used in production environments, it's still in early development. APIs may change, and some features are still evolving. We recommend thoroughly testing before deploying to production.
|
|
32
22
|
|
|
33
|
-
|
|
23
|
+
## Documentation
|
|
34
24
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
2. **Bundle Install:**
|
|
42
|
-
|
|
43
|
-
```shell
|
|
44
|
-
bundle
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
3. **Install Plutonium:**
|
|
48
|
-
|
|
49
|
-
```shell
|
|
50
|
-
rails g pu:core:install
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Start building your Rails applications faster, with more flexibility and less boilerplate. **Plutonium** is here to revolutionize your development process.
|
|
54
|
-
|
|
55
|
-
## Usage
|
|
56
|
-
|
|
57
|
-
TODO: Write usage instructions here
|
|
58
|
-
|
|
59
|
-
## Development
|
|
60
|
-
|
|
61
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
62
|
-
|
|
63
|
-
To build assets, run `npm dev`
|
|
64
|
-
|
|
65
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
|
66
|
-
|
|
67
|
-
## Contributing
|
|
68
|
-
|
|
69
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/plutonium.
|
|
25
|
+
Visit our [documentation](https://radioactive-labs.github.io/plutonium-core/) for:
|
|
26
|
+
- Getting started guide
|
|
27
|
+
- Installation instructions
|
|
28
|
+
- Core concepts
|
|
29
|
+
- Tutorials
|
|
70
30
|
|
|
71
31
|
## License
|
|
72
32
|
|
|
73
33
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
74
|
-
|
|
75
|
-
<!--
|
|
76
|
-
# ------------------------------
|
|
77
|
-
|
|
78
|
-
gem "plutonium", path: "/Users/stefan/code/plutonium/starters/plutonium/"
|
|
79
|
-
gem "plutonium_generators", github: "radioactive-labs/plutonium-generators", group: [:development, :test]
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
# rails new vulcan \
|
|
84
|
-
# --skip-action-mailbox --skip-action-text --skip-active-storage --skip-action-cable --skip-jbuilder \
|
|
85
|
-
# --skip-test --skip-system-test --javascript=esbuild --css=bootstrap --database=postgresql
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
rails new pluton8_starter --name="Pluton8 Starter" --database=sqlite3 --skip-action-mailbox --skip-action-text --skip-active-storage --asset-pipeline=propshaft --skip-jbuilder --javascript=importmap --css=tailwind
|
|
90
|
-
|
|
91
|
-
bin/rails app:template LOCATION=/Users/stefan/code/plutonium/starters/vulcan/gems/plutonium/templates/base.rb
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
rails g pu:rodauth:account admin --no-defaults --login --logout --remember --change-password --internal-request --create-account --lockout --verify-account --audit-logging --close-account --otp --reset-password --reset-password-notify --active-sessions --recovery-codes --password-grace-period
|
|
95
|
-
-->
|
package/package.json
CHANGED
package/src/dist/js/plutonium.js
CHANGED
|
@@ -3561,7 +3561,6 @@
|
|
|
3561
3561
|
window.Dismiss = Dismiss;
|
|
3562
3562
|
window.initDismisses = initDismisses;
|
|
3563
3563
|
}
|
|
3564
|
-
var dismiss_default = Dismiss;
|
|
3565
3564
|
|
|
3566
3565
|
// node_modules/@popperjs/core/lib/enums.js
|
|
3567
3566
|
var top = "top";
|
|
@@ -7138,18 +7137,14 @@
|
|
|
7138
7137
|
|
|
7139
7138
|
// src/js/controllers/resource_dismiss_controller.js
|
|
7140
7139
|
var resource_dismiss_controller_default = class extends Controller {
|
|
7141
|
-
static targets = ["trigger", "target"];
|
|
7142
7140
|
static values = {
|
|
7143
7141
|
after: Number
|
|
7144
7142
|
};
|
|
7145
7143
|
connect() {
|
|
7146
7144
|
console.log(`resource-dismiss connected: ${this.element}`);
|
|
7147
|
-
this.dismiss = new dismiss_default(this.targetTarget, this.triggerTarget);
|
|
7148
|
-
console.log(this.hasAfterValue);
|
|
7149
|
-
console.log(this.afterValue);
|
|
7150
7145
|
if (this.hasAfterValue && this.afterValue > 0) {
|
|
7151
7146
|
this.autoDismissTimeout = setTimeout(() => {
|
|
7152
|
-
this.
|
|
7147
|
+
this.dismiss();
|
|
7153
7148
|
this.autoDismissTimeout = null;
|
|
7154
7149
|
}, this.afterValue);
|
|
7155
7150
|
}
|
|
@@ -7157,11 +7152,10 @@
|
|
|
7157
7152
|
disconnect() {
|
|
7158
7153
|
if (this.autoDismissTimeout)
|
|
7159
7154
|
clearTimeout(this.autoDismissTimeout);
|
|
7160
|
-
this.dismiss = null;
|
|
7161
7155
|
this.autoDismissTimeout = null;
|
|
7162
7156
|
}
|
|
7163
|
-
|
|
7164
|
-
this.
|
|
7157
|
+
dismiss() {
|
|
7158
|
+
this.element.remove();
|
|
7165
7159
|
}
|
|
7166
7160
|
};
|
|
7167
7161
|
|