Skip to content

Commit 1459db8

Browse files
move core generators
1 parent 38bbfe2 commit 1459db8

File tree

199 files changed

+4684
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

199 files changed

+4684
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# frozen_string_literal: true
2+
3+
require "plutonium_generators"
4+
5+
module Pu
6+
module Base
7+
class InstallGenerator < Rails::Generators::Base
8+
include PlutoniumGenerators::Generator
9+
10+
source_root File.expand_path("templates", __dir__)
11+
12+
desc "Set up the base requirements for Plutonium"
13+
14+
def start
15+
gem "plutonium", github: "radioactive-labs/plutonium-core"
16+
17+
setup_packaging_system
18+
install_required_gems
19+
setup_app
20+
rescue => e
21+
exception "#{self.class} failed:", e
22+
end
23+
24+
private
25+
26+
def setup_packaging_system
27+
copy_file "config/packages.rb"
28+
insert_into_file "config/application.rb", "\nrequire_relative \"packages\"\n", after: /Bundler\.require.*\n/
29+
insert_into_file "config/application.rb", indent("Plutonium.configure_rails config\n\n", 4), after: /.*< Rails::Application\n/
30+
end
31+
32+
def setup_app
33+
directory "app"
34+
end
35+
36+
def install_required_gems
37+
invoke "pu:gem:simple_form"
38+
# invoke "pu:gem:pagy"
39+
invoke "pu:gem:rabl"
40+
end
41+
end
42+
end
43+
end

lib/generators/pu/core/install/templates/.keep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class ResourceController < Plutonium::Reactor::ResourceController
2+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class ResourceInteraction < Plutonium::Reactor::ResourceInteraction
2+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class ResourceRecord < ApplicationRecord
2+
include Plutonium::Reactor::ResourceRecord
3+
4+
self.abstract_class = true
5+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class ResourcePolicy < Plutonium::Reactor::ResourcePolicy
2+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class ResourcePresenter < Plutonium::Reactor::ResourcePresenter
2+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Dir[File.expand_path("../packages/**/lib/engine.rb", __dir__)].each do |package|
2+
load package
3+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# frozen_string_literal: true
2+
3+
require "plutonium_generators"
4+
5+
module Pu
6+
module Gem
7+
class PagyGenerator < Rails::Generators::Base
8+
include PlutoniumGenerators::Generator
9+
10+
source_root File.expand_path("templates", __dir__)
11+
12+
desc "Install Pagy"
13+
14+
def start
15+
Bundler.with_unbundled_env do
16+
run "bundle add pagy"
17+
end
18+
19+
directory "config"
20+
rescue => e
21+
exception "#{self.class} failed:", e
22+
end
23+
end
24+
end
25+
end

lib/generators/pu/gem/pagy/templates/.keep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# frozen_string_literal: true
2+
3+
# Be sure to restart your server when you modify this file.
4+
5+
require "pagy/extras/bootstrap"
6+
require "pagy/extras/overflow"
7+
require "pagy/extras/trim"
8+
require "pagy/extras/headers"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# frozen_string_literal: true
2+
3+
require "plutonium_generators"
4+
5+
module Pu
6+
module Gem
7+
class RablGenerator < Rails::Generators::Base
8+
include PlutoniumGenerators::Generator
9+
10+
source_root File.expand_path("templates", __dir__)
11+
12+
desc "Install Rabl"
13+
14+
def start
15+
Bundler.with_unbundled_env do
16+
run "bundle add rabl"
17+
end
18+
19+
directory "config"
20+
rescue => e
21+
exception "#{self.class} failed:", e
22+
end
23+
end
24+
end
25+
end

lib/generators/pu/gem/rabl/templates/.keep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# frozen_string_literal: true
2+
3+
# https://github.com/nesquena/rabl#configuration
4+
5+
Rabl.configure do |config|
6+
config.cache_sources = !Rails.env.development? # Defaults to false
7+
config.raise_on_missing_attribute = !Rails.env.production? # Defaults to false
8+
9+
# config.cache_all_output = false
10+
# config.cache_engine = Rabl::CacheEngine.new # Defaults to Rails cache
11+
# config.perform_caching = false
12+
# config.escape_all_output = false
13+
# config.json_engine = nil # Class with #dump class method (defaults JSON)
14+
# config.msgpack_engine = nil # Defaults to ::MessagePack
15+
# config.bson_engine = nil # Defaults to ::BSON
16+
# config.plist_engine = nil # Defaults to ::Plist::Emit
17+
# config.include_json_root = true
18+
# config.include_msgpack_root = true
19+
# config.include_bson_root = true
20+
# config.include_plist_root = true
21+
# config.include_xml_root = false
22+
# config.include_child_root = true
23+
# config.enable_json_callbacks = false
24+
# config.xml_options = { :dasherize => true, :skip_types => false }
25+
# config.view_paths = []
26+
# config.replace_nil_values_with_empty_strings = true # Defaults to false
27+
# config.replace_empty_string_values_with_nil_values = true # Defaults to false
28+
# config.exclude_nil_values = true # Defaults to false
29+
# config.exclude_empty_values_in_collections = true # Defaults to false
30+
# config.camelize_keys = :upper # Defaults to false
31+
end
32+
33+
# Monkey Patch Rabl source lookup to make it compatible with Rails view lookup
34+
module Rabl
35+
module Sources
36+
private
37+
38+
# Returns the rabl template path for Rails
39+
def fetch_rails_source(file, _options = {})
40+
# use Rails template resolution mechanism if possible (find_template)
41+
source_format = request_format if defined?(request_format)
42+
43+
lookup_proc = lambda do |partial|
44+
context_scope.lookup_context.find(file, context_scope.lookup_context.prefixes, partial, [],
45+
{formats: [source_format]})
46+
end
47+
template = begin
48+
lookup_proc.call(false)
49+
rescue
50+
nil
51+
end
52+
template ||= begin
53+
lookup_proc.call(true)
54+
rescue
55+
nil
56+
end
57+
template&.identifier
58+
end
59+
end
60+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# frozen_string_literal: true
2+
3+
require "plutonium_generators"
4+
5+
module Pu
6+
module Gem
7+
class SimpleFormGenerator < Rails::Generators::Base
8+
include PlutoniumGenerators::Generator
9+
10+
source_root File.expand_path("templates", __dir__)
11+
12+
desc "Install SimpleForm"
13+
14+
def start
15+
Bundler.with_unbundled_env do
16+
run "bundle add simple_form"
17+
end
18+
19+
directory "config"
20+
rescue => e
21+
exception "#{self.class} failed:", e
22+
end
23+
end
24+
end
25+
end

lib/generators/pu/gem/simple_form/templates/.keep

Whitespace-only changes.

0 commit comments

Comments
 (0)