rolemodel-rails 1.1.0 → 2.0.1
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.
- checksums.yaml +4 -4
- data/README.md +6 -7
- data/lib/generators/rolemodel/all_generator.rb +0 -1
- data/lib/generators/rolemodel/optics/icons/README.md +6 -1
- data/lib/generators/rolemodel/optics/icons/icons_generator.rb +14 -9
- data/lib/generators/rolemodel/optics/icons/templates/app/helpers/icon_helper.rb.tt +4 -2
- data/lib/generators/rolemodel/testing/README.md +4 -1
- data/lib/generators/rolemodel/testing/all_generator.rb +3 -3
- data/lib/generators/rolemodel/testing/jasmine_playwright/jasmine_playwright_generator.rb +1 -1
- data/lib/generators/rolemodel/testing/rspec/README.md +1 -1
- data/lib/generators/rolemodel/testing/rspec/USAGE +1 -1
- data/lib/generators/rolemodel/testing/rspec/rspec_generator.rb +15 -14
- data/lib/generators/rolemodel/testing/rspec/templates/spec/support/capybara_config.rb.tt +9 -0
- data/lib/{generators/rolemodel/optics/icons/templates/app/icon_builders → rolemodel/optics}/custom_icon_builder.rb +1 -1
- data/lib/{generators/rolemodel/optics/icons/templates/app/icon_builders → rolemodel/optics}/feather_icon_builder.rb +1 -1
- data/lib/{generators/rolemodel/optics/icons/templates/app/icon_builders → rolemodel/optics}/icon_builder.rb +10 -19
- data/lib/{generators/rolemodel/optics/icons/templates/app/icon_builders → rolemodel/optics}/lucide_icon_builder.rb +1 -1
- data/lib/{generators/rolemodel/optics/icons/templates/app/icon_builders → rolemodel/optics}/material_icon_builder.rb +1 -1
- data/lib/{generators/rolemodel/optics/icons/templates/app/icon_builders → rolemodel/optics}/phosphor_icon_builder.rb +1 -1
- data/lib/{generators/rolemodel/optics/icons/templates/app/icon_builders → rolemodel/optics}/tabler_icon_builder.rb +1 -1
- data/lib/rolemodel/optics.rb +9 -0
- data/lib/rolemodel/utility/task_tools.rb +42 -0
- data/lib/rolemodel/utility.rb +3 -0
- data/lib/rolemodel/version.rb +1 -1
- data/lib/rolemodel-rails.rb +2 -0
- metadata +35 -42
- data/lib/generators/rolemodel/mcp/README.md +0 -13
- data/lib/generators/rolemodel/mcp/USAGE +0 -8
- data/lib/generators/rolemodel/mcp/mcp_generator.rb +0 -110
- data/lib/generators/rolemodel/mcp/templates/app/assets/stylesheets/components/doorkeeper.css +0 -140
- data/lib/generators/rolemodel/mcp/templates/app/controllers/doorkeeper/base_controller.rb +0 -7
- data/lib/generators/rolemodel/mcp/templates/app/controllers/mcp_controller.rb.tt +0 -91
- data/lib/generators/rolemodel/mcp/templates/app/controllers/oauth_registrations_controller.rb +0 -46
- data/lib/generators/rolemodel/mcp/templates/app/controllers/well_known_controller.rb +0 -39
- data/lib/generators/rolemodel/mcp/templates/app/mcp/prompts/sample.rb +0 -36
- data/lib/generators/rolemodel/mcp/templates/app/mcp/resources/controller.rb +0 -57
- data/lib/generators/rolemodel/mcp/templates/app/mcp/resources/docs/SAMPLE_DOC.md +0 -4
- data/lib/generators/rolemodel/mcp/templates/app/mcp/resources/docs_controller.rb +0 -46
- data/lib/generators/rolemodel/mcp/templates/app/mcp/tools/sample.rb +0 -42
- data/lib/generators/rolemodel/mcp/templates/app/views/doorkeeper/authorizations/error.html.slim.tt +0 -13
- data/lib/generators/rolemodel/mcp/templates/app/views/doorkeeper/authorizations/new.html.slim.tt +0 -41
- data/lib/generators/rolemodel/mcp/templates/app/views/layouts/doorkeeper.html.slim +0 -7
- data/lib/generators/rolemodel/mcp/templates/config/initializers/doorkeeper.rb +0 -537
- data/lib/generators/rolemodel/mcp/templates/spec/mcp/prompts/sample_spec.rb +0 -15
- data/lib/generators/rolemodel/mcp/templates/spec/mcp/resources/controller_spec.rb +0 -16
- data/lib/generators/rolemodel/mcp/templates/spec/mcp/resources/docs_controller_spec.rb +0 -55
- data/lib/generators/rolemodel/mcp/templates/spec/mcp/tools/sample_spec.rb +0 -15
- data/lib/generators/rolemodel/mcp/templates/spec/requests/mcp_controller_spec.rb +0 -84
- data/lib/generators/rolemodel/mcp/templates/spec/requests/oauth_registrations_controller_spec.rb +0 -62
- data/lib/generators/rolemodel/mcp/templates/spec/requests/well_known_controller_spec.rb +0 -30
- data/lib/generators/rolemodel/testing/rspec/templates/support/capybara_testid.rb +0 -5
- /data/lib/generators/rolemodel/testing/rspec/templates/{rails_helper.rb → spec/rails_helper.rb.tt} +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{spec_helper.rb → spec/spec_helper.rb.tt} +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{support/capybara_drivers.rb → spec/support/capybara_drivers.rb.tt} +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{support → spec/support}/helpers/action_cable_helper.rb +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{support → spec/support}/helpers/capybara_helper.rb +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{support → spec/support}/helpers/playwright_helper.rb +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{support → spec/support}/helpers/select_helper.rb +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{support → spec/support}/helpers/test_element_helper.rb +0 -0
- /data/lib/generators/rolemodel/testing/rspec/templates/{support/helpers.rb → spec/support/helpers.rb.tt} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2cbd3c1b81aa62c00354cd5faa3cc5bea47c48c2ede2c86470b391372751db9c
|
|
4
|
+
data.tar.gz: c9bd14d2787122907369daaf9bfa26b63d0cc882449247ae5da26af15de9586f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d79a388d4221587a777dddeddaea260f389924272c49299fed129b7f5e364df154fa09161217b0087d975168fda59ce6c75e7fd36468c0b0a5b5767cddecea28
|
|
7
|
+
data.tar.gz: 960b18a4e997a18092a6bacd69f0833da0154a54717d41215b401f4f8c9cf08034ba8aa10f4daf0fef560a7bd54154a470d650e4427122b3db6c47ac687087ee
|
data/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Attempts to solve the pain of:
|
|
|
14
14
|
The rolemodel-rails gem expects to be added to an existing Rails project. Typically those are started with:
|
|
15
15
|
|
|
16
16
|
```shell
|
|
17
|
-
rails new <app-name> --javascript=webpack --database=postgresql --skip-test
|
|
17
|
+
rails new <app-name> --javascript=webpack --database=postgresql --skip-test --skip-solid
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
The Devise generator requires your database to exist before running.
|
|
@@ -28,12 +28,15 @@ rails db:create
|
|
|
28
28
|
Add this line to your application's Gemfile:
|
|
29
29
|
|
|
30
30
|
```ruby
|
|
31
|
-
gem 'rolemodel-rails'
|
|
31
|
+
gem 'rolemodel-rails'
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
+
> [!IMPORTANT]
|
|
35
|
+
> We used to recommend putting rolemodel-rails in the development gem group. This is no longer supported, because some Rolemodel namespaced utility modules and classes are expected to be available at runtime.
|
|
36
|
+
|
|
34
37
|
And then execute:
|
|
35
38
|
|
|
36
|
-
$ bundle
|
|
39
|
+
$ bundle install
|
|
37
40
|
|
|
38
41
|
## Usage
|
|
39
42
|
|
|
@@ -116,10 +119,6 @@ bin/new_generator testing/fantasitic_specs 'A Fantastic Testing Framework'
|
|
|
116
119
|
We use the embeded Rails apps (`example_rails_current` & `example_rails_legacy`) to test generators against. They reference the rolemodel-rails gem by local path,
|
|
117
120
|
so you can navigate into one of them and run your generator for immediate feedback while developing.
|
|
118
121
|
|
|
119
|
-
> [!IMPORTANT]
|
|
120
|
-
> Before submitting a PR, run `bin/bump_version` to ensure the Gem builds successfully & that everything continues to stay in sync & up-to-date.<br /><br />
|
|
121
|
-
> For very small changes & bug fixes, prefer `bin/bump_version --patch`.
|
|
122
|
-
|
|
123
122
|
## Testing
|
|
124
123
|
|
|
125
124
|
Generator specs should be added to the [spec](./spec) directory.
|
|
@@ -4,4 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## What you get
|
|
6
6
|
|
|
7
|
-
Adds icon helper for handling
|
|
7
|
+
Adds icon helper for handling icon generation using the provider of your choice.
|
|
8
|
+
|
|
9
|
+
## Icon Builder Customization
|
|
10
|
+
|
|
11
|
+
Run the generator with the `-i` option to install the IconBuilders themselves in your
|
|
12
|
+
application's `lib/rolemodel/optics` directory.
|
|
@@ -4,6 +4,7 @@ module Rolemodel
|
|
|
4
4
|
module Optics
|
|
5
5
|
# Generates the icon helper and icon builders for the chosen icon library
|
|
6
6
|
class IconsGenerator < Rolemodel::GeneratorBase
|
|
7
|
+
BUILDER_DIR = 'rolemodel/optics'
|
|
7
8
|
SUPPORTED_LIBRARIES = HashWithIndifferentAccess.new(
|
|
8
9
|
material: 'filled, size, weight, emphasis, additional_classes, color, hover_text',
|
|
9
10
|
phosphor: 'duotone, filled, size, weight, additional_classes, color, hover_text',
|
|
@@ -14,30 +15,34 @@ module Rolemodel
|
|
|
14
15
|
).freeze
|
|
15
16
|
|
|
16
17
|
source_root File.expand_path('templates', __dir__)
|
|
18
|
+
class_option :install_builders, aliases: '-i', type: :boolean, default: false,
|
|
19
|
+
desc: "Install IconBuilder classes for customization"
|
|
20
|
+
|
|
17
21
|
class_exclusive do
|
|
18
22
|
SUPPORTED_LIBRARIES.keys.each do |library|
|
|
19
23
|
class_option library, type: :boolean, lazy_default: false, desc: "Use #{library} icon library"
|
|
20
24
|
end
|
|
21
25
|
end
|
|
22
26
|
|
|
23
|
-
def remove_existing_icon_helper_and_builders
|
|
24
|
-
remove_dir 'app/icon_builders'
|
|
25
|
-
remove_file 'app/helpers/icon_helper.rb'
|
|
26
|
-
end
|
|
27
|
-
|
|
28
27
|
def add_view_helper
|
|
29
28
|
@chosen_library = capture_user_selection
|
|
30
29
|
@supported_properties = SUPPORTED_LIBRARIES.fetch(@chosen_library)
|
|
31
30
|
|
|
32
|
-
template 'app/
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
template 'app/helpers/icon_helper.rb', force: true
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def install_builders
|
|
35
|
+
return unless options.install_builders?
|
|
36
|
+
|
|
37
|
+
source_paths << File.expand_path(BUILDER_DIR, Rolemodel::GEM_LIB)
|
|
38
|
+
copy_file 'icon_builder.rb', "lib/#{BUILDER_DIR}/icon_builder.rb", force: true
|
|
39
|
+
copy_file "#{@chosen_library}_icon_builder.rb", "lib/#{BUILDER_DIR}/#{@chosen_library}_icon_builder.rb", force: true
|
|
35
40
|
end
|
|
36
41
|
|
|
37
42
|
private
|
|
38
43
|
|
|
39
44
|
def capture_user_selection
|
|
40
|
-
options.
|
|
45
|
+
options.slice(*SUPPORTED_LIBRARIES.keys).invert[true] || ask(
|
|
41
46
|
'What icon library would you like to add?',
|
|
42
47
|
default: SUPPORTED_LIBRARIES.keys.first.to_s,
|
|
43
48
|
limited_to: SUPPORTED_LIBRARIES.keys.map(&:to_s)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'rolemodel/optics'
|
|
4
|
+
|
|
3
5
|
# Helper method that renders icons from your icon library of choice.
|
|
4
6
|
#
|
|
5
7
|
# Usage:
|
|
@@ -14,11 +16,11 @@
|
|
|
14
16
|
module IconHelper
|
|
15
17
|
# <%= @supported_properties %>
|
|
16
18
|
def icon(name, **)
|
|
17
|
-
|
|
19
|
+
Rolemodel::Optics::<%= @chosen_library.classify %>IconBuilder.new(name, **).build
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
# <%= @supported_properties %>
|
|
21
23
|
def flash_icon(type, **)
|
|
22
|
-
|
|
24
|
+
Rolemodel::Optics::<%= @chosen_library.classify %>IconBuilder.flash_icon(type, **).build
|
|
23
25
|
end
|
|
24
26
|
end
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
## What you get
|
|
6
6
|
|
|
7
7
|
* [RSpec](./rspec)
|
|
8
|
-
* [JasminePlaywright](./jasmine_playwright)
|
|
9
8
|
* [FactoryBot](./factory_bot)
|
|
10
9
|
* [TestProf](./test_prof)
|
|
11
10
|
* [ParallelTests](./parallel_tests)
|
|
11
|
+
|
|
12
|
+
Include the `--js-runner` flag (off by default) to also install the private `@rolemodel/jasmine-playwright-runner` package.
|
|
13
|
+
|
|
14
|
+
* [JasminePlaywright](./jasmine_playwright)
|
|
@@ -3,11 +3,11 @@ module Rolemodel
|
|
|
3
3
|
class AllGenerator < GeneratorBase
|
|
4
4
|
source_root File.expand_path('templates', __dir__)
|
|
5
5
|
|
|
6
|
+
class_option :js_runner, type: :boolean, default: false, desc: 'Include jasmine-playwright-runner for browser testing'
|
|
7
|
+
|
|
6
8
|
def run_all_the_generators
|
|
7
9
|
generate 'rolemodel:testing:factory_bot'
|
|
8
|
-
|
|
9
|
-
generate 'rolemodel:testing:jasmine_playwright'
|
|
10
|
-
end
|
|
10
|
+
generate 'rolemodel:testing:jasmine_playwright' if options.js_runner?
|
|
11
11
|
generate 'rolemodel:testing:parallel_tests'
|
|
12
12
|
generate 'rolemodel:testing:rspec'
|
|
13
13
|
generate 'rolemodel:testing:test_prof'
|
|
@@ -15,7 +15,7 @@ module Rolemodel
|
|
|
15
15
|
].freeze
|
|
16
16
|
|
|
17
17
|
def fail_without_github_token
|
|
18
|
-
raise 'a --github_package_token option or GITHUB_PACKAGES_TOKEN environment variable is required' if options[:github_package_token].blank?
|
|
18
|
+
raise Thor::InvocationError, 'a --github_package_token option or GITHUB_PACKAGES_TOKEN environment variable is required' if options[:github_package_token].blank?
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def yarn_init_unless_package_json_exists
|
|
@@ -5,16 +5,24 @@ module Rolemodel
|
|
|
5
5
|
class RspecGenerator < GeneratorBase
|
|
6
6
|
source_root File.expand_path('templates', __dir__)
|
|
7
7
|
|
|
8
|
+
class_option :marsh_grass, type: :boolean, default: false, desc: 'Include marsh_grass for debugging RSpec tests'
|
|
9
|
+
|
|
8
10
|
def install_rspec
|
|
11
|
+
say 'Installing RSpec-rails', :green
|
|
12
|
+
|
|
9
13
|
gem_group :development, :test do
|
|
10
14
|
gem 'rspec-rails'
|
|
11
15
|
end
|
|
12
|
-
|
|
16
|
+
|
|
17
|
+
say 'Installing capybara-playwright-driver for system tests', :green
|
|
13
18
|
|
|
14
19
|
gem_group :test do
|
|
15
20
|
gem 'capybara-playwright-driver'
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
|
|
22
|
+
if options.marsh_grass?
|
|
23
|
+
gem 'marsh_grass'
|
|
24
|
+
gem 'pry'
|
|
25
|
+
end
|
|
18
26
|
end
|
|
19
27
|
run_bundle
|
|
20
28
|
end
|
|
@@ -27,17 +35,10 @@ module Rolemodel
|
|
|
27
35
|
end
|
|
28
36
|
|
|
29
37
|
def add_spec_files
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
template 'support/capybara_testid.rb', 'spec/support/capybara_testid.rb'
|
|
35
|
-
template 'support/helpers/action_cable_helper.rb', 'spec/support/helpers/action_cable_helper.rb'
|
|
36
|
-
template 'support/helpers/capybara_helper.rb', 'spec/support/helpers/capybara_helper.rb'
|
|
37
|
-
template 'support/helpers/playwright_helper.rb', 'spec/support/helpers/playwright_helper.rb'
|
|
38
|
-
template 'support/helpers/select_helper.rb', 'spec/support/helpers/select_helper.rb'
|
|
39
|
-
template 'support/helpers/test_element_helper.rb', 'spec/support/helpers/test_element_helper.rb'
|
|
40
|
-
template 'support/helpers.rb', 'spec/support/helpers.rb'
|
|
38
|
+
say 'Adding Support Files', :green
|
|
39
|
+
|
|
40
|
+
directory 'spec'
|
|
41
|
+
|
|
41
42
|
append_file '.gitignore', 'spec/examples.txt'
|
|
42
43
|
end
|
|
43
44
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# CustomIconBuilder is an IconBuilder that allows for custom SVG icons to be used in the application.
|
|
4
|
-
class CustomIconBuilder < IconBuilder
|
|
4
|
+
class Rolemodel::Optics::CustomIconBuilder < Rolemodel::Optics::IconBuilder
|
|
5
5
|
def self.flash_icons
|
|
6
6
|
{
|
|
7
7
|
notice: 'circle-check',
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# FeatherIconBuilder is an IconBuilder that allows for Feather icons to be used in the application.
|
|
4
4
|
# https://feathericons.com/
|
|
5
|
-
class FeatherIconBuilder < IconBuilder
|
|
5
|
+
class Rolemodel::Optics::FeatherIconBuilder < Rolemodel::Optics::IconBuilder
|
|
6
6
|
def self.flash_icons
|
|
7
7
|
{
|
|
8
8
|
notice: 'check-circle',
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
class IconBuilder
|
|
3
|
+
class Rolemodel::Optics::IconBuilder
|
|
4
4
|
include ActionView::Helpers::TagHelper
|
|
5
5
|
|
|
6
6
|
attr_reader :name, :filled, :size, :weight, :emphasis, :duotone, :additional_classes, :color, :hover_text
|
|
7
|
+
alias title hover_text
|
|
7
8
|
|
|
8
9
|
DEFAULT_SIZE = 'medium'
|
|
9
10
|
DEFAULT_WEIGHT = 'normal'
|
|
10
11
|
DEFAULT_EMPHASIS = 'normal'
|
|
11
12
|
|
|
13
|
+
# TODO: consider Data.define a custom options object if all of these parameters are indeed necessary.
|
|
12
14
|
def initialize( # rubocop:disable Metrics/ParameterLists
|
|
13
15
|
name,
|
|
14
16
|
filled: false,
|
|
@@ -42,32 +44,21 @@ class IconBuilder
|
|
|
42
44
|
def build
|
|
43
45
|
options = {
|
|
44
46
|
class: tag_classes.compact_blank.join(' '),
|
|
45
|
-
title: hover_text
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if color.present?
|
|
47
|
+
title: hover_text,
|
|
49
48
|
# color: primary, neutral, alerts-notice, alerts-warning, alerts-danger, alerts-info
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
style: ("#{color_attribute}: var(--op-color-#{color}-base);" if color.present?)
|
|
50
|
+
}.compact_blank
|
|
52
51
|
|
|
53
|
-
tag.
|
|
52
|
+
tag.public_send(tag_method, tag_contents, **options)
|
|
54
53
|
end
|
|
55
54
|
|
|
56
55
|
private
|
|
57
56
|
|
|
58
|
-
def tag_method
|
|
59
|
-
raise NotImplementedError
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def tag_contents
|
|
63
|
-
''
|
|
64
|
-
end
|
|
65
|
-
|
|
66
57
|
def tag_classes
|
|
67
58
|
['icon', size == DEFAULT_SIZE ? '' : "icon--#{size}", additional_classes]
|
|
68
59
|
end
|
|
69
60
|
|
|
70
|
-
def color_attribute
|
|
71
|
-
|
|
72
|
-
|
|
61
|
+
def color_attribute = 'color'
|
|
62
|
+
def tag_contents = ''
|
|
63
|
+
def tag_method = :i
|
|
73
64
|
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# LucideIconBuilder is an IconBuilder that allows for Lucide icons to be used in the application.
|
|
4
4
|
# https://lucide.dev/icons/
|
|
5
|
-
class LucideIconBuilder < IconBuilder
|
|
5
|
+
class Rolemodel::Optics::LucideIconBuilder < Rolemodel::Optics::IconBuilder
|
|
6
6
|
def self.flash_icons
|
|
7
7
|
{
|
|
8
8
|
notice: 'circle-check',
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# MaterialIconBuilder is an IconBuilder that allows for Material icons to be used in the application.
|
|
4
4
|
# https://fonts.google.com/icons
|
|
5
|
-
class MaterialIconBuilder < IconBuilder
|
|
5
|
+
class Rolemodel::Optics::MaterialIconBuilder < Rolemodel::Optics::IconBuilder
|
|
6
6
|
def self.flash_icons
|
|
7
7
|
{
|
|
8
8
|
notice: 'check_circle',
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# PhosphorIconBuilder is an IconBuilder that allows for Phosphor icons to be used in the application.
|
|
4
4
|
# https://phosphoricons.com/
|
|
5
|
-
class PhosphorIconBuilder < IconBuilder
|
|
5
|
+
class Rolemodel::Optics::PhosphorIconBuilder < Rolemodel::Optics::IconBuilder
|
|
6
6
|
def self.flash_icons
|
|
7
7
|
{
|
|
8
8
|
notice: 'check-circle',
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# TablerIconBuilder is an IconBuilder that allows for Tabler icons to be used in the application.
|
|
4
4
|
# https://tablericons.com/
|
|
5
|
-
class TablerIconBuilder < IconBuilder
|
|
5
|
+
class Rolemodel::Optics::TablerIconBuilder < Rolemodel::Optics::IconBuilder
|
|
6
6
|
def self.flash_icons
|
|
7
7
|
{
|
|
8
8
|
notice: 'circle-check',
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module Rolemodel::Optics
|
|
2
|
+
autoload :IconBuilder, 'rolemodel/optics/icon_builder'
|
|
3
|
+
autoload :CustomIconBuilder, 'rolemodel/optics/custom_icon_builder'
|
|
4
|
+
autoload :FeatherIconBuilder, 'rolemodel/optics/feather_icon_builder'
|
|
5
|
+
autoload :LucideIconBuilder, 'rolemodel/optics/lucide_icon_builder'
|
|
6
|
+
autoload :MaterialIconBuilder, 'rolemodel/optics/material_icon_builder'
|
|
7
|
+
autoload :PhosphorIconBuilder, 'rolemodel/optics/phosphor_icon_builder'
|
|
8
|
+
autoload :TablerIconBuilder, 'rolemodel/optics/tabler_icon_builder'
|
|
9
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require 'benchmark'
|
|
2
|
+
|
|
3
|
+
module Rolemodel
|
|
4
|
+
module Utility
|
|
5
|
+
module TaskTools
|
|
6
|
+
PROGRESS = %w[⠏ ⠇ ⠧ ⠦ ⠴ ⠼ ⠸ ⠹ ⠙ ⠋].cycle
|
|
7
|
+
|
|
8
|
+
# based on the migration helper of the same name
|
|
9
|
+
def say_with_time(message, &)
|
|
10
|
+
say message
|
|
11
|
+
time = Benchmark.measure(&)
|
|
12
|
+
say '%.4fs' % time.real, subitem: true
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def say(message, subitem: false)
|
|
16
|
+
puts "#{subitem ? ' ->' : '--'} #{message}" # rubocop:disable Rails/Output
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# Indicate the progress of a long-running process
|
|
21
|
+
#
|
|
22
|
+
# Usage (with a known total):
|
|
23
|
+
# 100.times do |i|
|
|
24
|
+
# indicate_progress(i, 100)
|
|
25
|
+
# end
|
|
26
|
+
#
|
|
27
|
+
# Only update every 'report_interval' iteration for eye-trackable animation speed
|
|
28
|
+
# Also displays a completion percentage if a total is provided
|
|
29
|
+
def indicate_progress(index, total = nil, report_interval: 9)
|
|
30
|
+
return unless (index % report_interval).zero?
|
|
31
|
+
|
|
32
|
+
print("#{PROGRESS.next} #{to_percent(index, total) if total}\r") # rubocop:disable Rails/Output
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
def to_percent(index, total)
|
|
38
|
+
'%3.f%%' % (index / total.to_f * 100.0)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/lib/rolemodel/version.rb
CHANGED
data/lib/rolemodel-rails.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rolemodel-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- RoleModel Software Inc
|
|
@@ -23,6 +23,20 @@ dependencies:
|
|
|
23
23
|
- - ">"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '7.1'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: benchmark
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
26
40
|
- !ruby/object:Gem::Dependency
|
|
27
41
|
name: bundler
|
|
28
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -208,30 +222,6 @@ files:
|
|
|
208
222
|
- lib/generators/rolemodel/mailers/templates/config/initializers/premailer_rails.rb
|
|
209
223
|
- lib/generators/rolemodel/mailers/templates/public/logo.png
|
|
210
224
|
- lib/generators/rolemodel/mailers/templates/spec/mailers/previews/example_mailer_preview.rb
|
|
211
|
-
- lib/generators/rolemodel/mcp/README.md
|
|
212
|
-
- lib/generators/rolemodel/mcp/USAGE
|
|
213
|
-
- lib/generators/rolemodel/mcp/mcp_generator.rb
|
|
214
|
-
- lib/generators/rolemodel/mcp/templates/app/assets/stylesheets/components/doorkeeper.css
|
|
215
|
-
- lib/generators/rolemodel/mcp/templates/app/controllers/doorkeeper/base_controller.rb
|
|
216
|
-
- lib/generators/rolemodel/mcp/templates/app/controllers/mcp_controller.rb.tt
|
|
217
|
-
- lib/generators/rolemodel/mcp/templates/app/controllers/oauth_registrations_controller.rb
|
|
218
|
-
- lib/generators/rolemodel/mcp/templates/app/controllers/well_known_controller.rb
|
|
219
|
-
- lib/generators/rolemodel/mcp/templates/app/mcp/prompts/sample.rb
|
|
220
|
-
- lib/generators/rolemodel/mcp/templates/app/mcp/resources/controller.rb
|
|
221
|
-
- lib/generators/rolemodel/mcp/templates/app/mcp/resources/docs/SAMPLE_DOC.md
|
|
222
|
-
- lib/generators/rolemodel/mcp/templates/app/mcp/resources/docs_controller.rb
|
|
223
|
-
- lib/generators/rolemodel/mcp/templates/app/mcp/tools/sample.rb
|
|
224
|
-
- lib/generators/rolemodel/mcp/templates/app/views/doorkeeper/authorizations/error.html.slim.tt
|
|
225
|
-
- lib/generators/rolemodel/mcp/templates/app/views/doorkeeper/authorizations/new.html.slim.tt
|
|
226
|
-
- lib/generators/rolemodel/mcp/templates/app/views/layouts/doorkeeper.html.slim
|
|
227
|
-
- lib/generators/rolemodel/mcp/templates/config/initializers/doorkeeper.rb
|
|
228
|
-
- lib/generators/rolemodel/mcp/templates/spec/mcp/prompts/sample_spec.rb
|
|
229
|
-
- lib/generators/rolemodel/mcp/templates/spec/mcp/resources/controller_spec.rb
|
|
230
|
-
- lib/generators/rolemodel/mcp/templates/spec/mcp/resources/docs_controller_spec.rb
|
|
231
|
-
- lib/generators/rolemodel/mcp/templates/spec/mcp/tools/sample_spec.rb
|
|
232
|
-
- lib/generators/rolemodel/mcp/templates/spec/requests/mcp_controller_spec.rb
|
|
233
|
-
- lib/generators/rolemodel/mcp/templates/spec/requests/oauth_registrations_controller_spec.rb
|
|
234
|
-
- lib/generators/rolemodel/mcp/templates/spec/requests/well_known_controller_spec.rb
|
|
235
225
|
- lib/generators/rolemodel/optics/README.md
|
|
236
226
|
- lib/generators/rolemodel/optics/USAGE
|
|
237
227
|
- lib/generators/rolemodel/optics/all_generator.rb
|
|
@@ -242,13 +232,6 @@ files:
|
|
|
242
232
|
- lib/generators/rolemodel/optics/icons/USAGE
|
|
243
233
|
- lib/generators/rolemodel/optics/icons/icons_generator.rb
|
|
244
234
|
- lib/generators/rolemodel/optics/icons/templates/app/helpers/icon_helper.rb.tt
|
|
245
|
-
- lib/generators/rolemodel/optics/icons/templates/app/icon_builders/custom_icon_builder.rb
|
|
246
|
-
- lib/generators/rolemodel/optics/icons/templates/app/icon_builders/feather_icon_builder.rb
|
|
247
|
-
- lib/generators/rolemodel/optics/icons/templates/app/icon_builders/icon_builder.rb
|
|
248
|
-
- lib/generators/rolemodel/optics/icons/templates/app/icon_builders/lucide_icon_builder.rb
|
|
249
|
-
- lib/generators/rolemodel/optics/icons/templates/app/icon_builders/material_icon_builder.rb
|
|
250
|
-
- lib/generators/rolemodel/optics/icons/templates/app/icon_builders/phosphor_icon_builder.rb
|
|
251
|
-
- lib/generators/rolemodel/optics/icons/templates/app/icon_builders/tabler_icon_builder.rb
|
|
252
235
|
- lib/generators/rolemodel/react/README.md
|
|
253
236
|
- lib/generators/rolemodel/react/USAGE
|
|
254
237
|
- lib/generators/rolemodel/react/react_generator.rb
|
|
@@ -360,16 +343,16 @@ files:
|
|
|
360
343
|
- lib/generators/rolemodel/testing/rspec/README.md
|
|
361
344
|
- lib/generators/rolemodel/testing/rspec/USAGE
|
|
362
345
|
- lib/generators/rolemodel/testing/rspec/rspec_generator.rb
|
|
363
|
-
- lib/generators/rolemodel/testing/rspec/templates/rails_helper.rb
|
|
364
|
-
- lib/generators/rolemodel/testing/rspec/templates/spec_helper.rb
|
|
365
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/
|
|
366
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/
|
|
367
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/helpers.rb
|
|
368
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/helpers/action_cable_helper.rb
|
|
369
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/helpers/capybara_helper.rb
|
|
370
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/helpers/playwright_helper.rb
|
|
371
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/helpers/select_helper.rb
|
|
372
|
-
- lib/generators/rolemodel/testing/rspec/templates/support/helpers/test_element_helper.rb
|
|
346
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/rails_helper.rb.tt
|
|
347
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/spec_helper.rb.tt
|
|
348
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/capybara_config.rb.tt
|
|
349
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/capybara_drivers.rb.tt
|
|
350
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers.rb.tt
|
|
351
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/action_cable_helper.rb
|
|
352
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/capybara_helper.rb
|
|
353
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/playwright_helper.rb
|
|
354
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/select_helper.rb
|
|
355
|
+
- lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/test_element_helper.rb
|
|
373
356
|
- lib/generators/rolemodel/testing/test_prof/README.md
|
|
374
357
|
- lib/generators/rolemodel/testing/test_prof/USAGE
|
|
375
358
|
- lib/generators/rolemodel/testing/test_prof/test_prof_generator.rb
|
|
@@ -415,7 +398,17 @@ files:
|
|
|
415
398
|
- lib/rolemodel-rails.rb
|
|
416
399
|
- lib/rolemodel/engine.rb
|
|
417
400
|
- lib/rolemodel/generator_base.rb
|
|
401
|
+
- lib/rolemodel/optics.rb
|
|
402
|
+
- lib/rolemodel/optics/custom_icon_builder.rb
|
|
403
|
+
- lib/rolemodel/optics/feather_icon_builder.rb
|
|
404
|
+
- lib/rolemodel/optics/icon_builder.rb
|
|
405
|
+
- lib/rolemodel/optics/lucide_icon_builder.rb
|
|
406
|
+
- lib/rolemodel/optics/material_icon_builder.rb
|
|
407
|
+
- lib/rolemodel/optics/phosphor_icon_builder.rb
|
|
408
|
+
- lib/rolemodel/optics/tabler_icon_builder.rb
|
|
418
409
|
- lib/rolemodel/replace_content_helper.rb
|
|
410
|
+
- lib/rolemodel/utility.rb
|
|
411
|
+
- lib/rolemodel/utility/task_tools.rb
|
|
419
412
|
- lib/rolemodel/version.rb
|
|
420
413
|
homepage: https://github.com/RoleModel/rolemodel_rails
|
|
421
414
|
licenses:
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# MCP Generator
|
|
2
|
-
|
|
3
|
-
Install boilerplate for your very own MCP server.
|
|
4
|
-
|
|
5
|
-
## What you get
|
|
6
|
-
|
|
7
|
-
### Doorkeeper
|
|
8
|
-
|
|
9
|
-
OAuth 2.1-enabled flow with dynamic application registration.
|
|
10
|
-
|
|
11
|
-
### MCP
|
|
12
|
-
|
|
13
|
-
A basic MCP controller that you can build on to serve tools, resources, and prompts.
|