railsforge 1.0.0 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a30814a978c1f6eae732253edaf8ebde7fb49b5761ef1927f180a5480f3f7921
4
- data.tar.gz: 4dfd319836fd20dcc79ac23d0c5eeb644802b9f6d480956dbae89cfeb5ef39ed
3
+ metadata.gz: 01eaa16a2df2e84f2ce395692e0b09bd8691d96762548c6d8524ebf0f7870466
4
+ data.tar.gz: 8c80982d2fe51c9cc13acc5b580f43a9cabe162f2a09ccf5bcd9d5fe8ffe518b
5
5
  SHA512:
6
- metadata.gz: eb2d18edddb6280e6b1eb954efb13a7acedc9e1fc429a7257e59282cbb2225293a0c028b5c34a3b1e1c18f3e7875c1868e4472a8b39b6b90ba6d7e24cd7803b9
7
- data.tar.gz: a8fee69a296ec94b93aecbd6f89223c5fcda26ff37dd6fb96081394dbc7856dd92f5c4a445ac2cd1a7f549c0159ca712f0e0680ad1987dfd166f10bf7a908d1f
6
+ metadata.gz: 3dd1707c9e98f715d55206aaa06872deb0764f6bf678618447a42a60485c3e089fe9ea7cd424cc35a6f2b1d8fbb83c23368147686daf09d9057b9e4187c29d7b
7
+ data.tar.gz: beef673a82ca8a20306e6193b10a176d8433d42350a533c30271d22b9a8f111da2cb4793f0f3f2927d51dc799bacf4daba62da48e9dc62a558ff27bddc8897a6
data/README.md CHANGED
@@ -1,17 +1,14 @@
1
1
  # RailsForge
2
2
 
3
3
  <p align="center">
4
- <a href="https://github.com/railsforge/railsforge/actions">
5
- <img src="https://img.shields.io/github/actions/workflow/status/railsforge/railsforge/main.yml" alt="CI Status">
4
+ <a href="https://github.com/mfifth/RailsForge/actions">
5
+ <img src="https://img.shields.io/github/actions/workflow/status/mfifth/railsforge/main.yml?label=CI" alt="CI Status">
6
6
  </a>
7
7
  <a href="https://rubygems.org/gems/railsforge">
8
- <img src="https://img.shields.io/gem/v/railsforge" alt="Gem Version">
8
+ <img src="https://img.shields.io/gem/v/railsforge.svg?label=rubygems" alt="Gem Version">
9
9
  </a>
10
- <a href="https://rubygems.org/gems/railsforge">
11
- <img src="https://img.shields.io/gem/dt/railsforge" alt="Gem Downloads">
12
- </a>
13
- <a href="https://github.com/railsforge/railsforge/blob/main/LICENSE">
14
- <img src="https://img.shields.io/github/license/railsforge/railsforge" alt="License">
10
+ <a href="https://github.com/mfifth/RailsForge/blob/main/LICENSE">
11
+ <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License">
15
12
  </a>
16
13
  </p>
17
14
 
@@ -41,8 +38,7 @@ RailsForge streamlines Rails development by providing automated generators and a
41
38
 
42
39
  ### Requirements
43
40
 
44
- - **Ruby** version 2.7 or higher
45
- - **Rails** version 5.0 or higher (for Rails-specific features)
41
+ - **Ruby** version 3.0 or higher
46
42
  - **Bundler** for gem management
47
43
 
48
44
  ### Setup Steps
@@ -464,7 +460,7 @@ We welcome contributions! Please see our contributing guidelines:
464
460
 
465
461
  ```bash
466
462
  # Fork the repository
467
- git clone https://github.com/your-username/railsforge.git
463
+ git clone https://github.com/mfifth/RailsForge.git
468
464
  cd railsforge
469
465
 
470
466
  # Install dependencies
data/bin/railsforge CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  # CLI entrypoint for RailsForge gem
3
- # This file is executable from the command line
3
+ # Uses minimal loader for fast --help and --version
4
4
 
5
5
  require_relative "../lib/railsforge"
6
6
 
7
- # Delegate to RailsForge::CLI
8
- RailsForge::CLI.start(ARGV)
7
+ # Use minimal CLI for fast startup
8
+ RailsForge::CLIMinimal.start(ARGV)
@@ -0,0 +1,93 @@
1
+ # Minimal CLI for fast --help and --version
2
+ # This is loaded first, then full CLI is lazy-loaded when needed
3
+
4
+ module RailsForge
5
+ class CLIMinimal
6
+ def self.start(args)
7
+ command = args.shift
8
+
9
+ case command
10
+ when nil, "--help", "-h"
11
+ display_help
12
+ exit 0
13
+ when "--version", "-v"
14
+ # Only load version, nothing else
15
+ require_relative "version"
16
+ puts "RailsForge #{RailsForge::VERSION}"
17
+ exit 0
18
+ else
19
+ # Load full CLI for other commands - this is where the slowness comes from
20
+ require_relative "cli"
21
+ require_relative "profiles"
22
+ require_relative "template_loader"
23
+ require_relative "generator"
24
+
25
+ # Load all generators
26
+ require_relative "generators/base_generator"
27
+ require_relative "generators/service_generator"
28
+ require_relative "generators/view_component_generator"
29
+ require_relative "generators/stimulus_controller_generator"
30
+ require_relative "generators/demo_generator"
31
+ require_relative "generators/devops_generator"
32
+ require_relative "generators/monitoring_generator"
33
+ require_relative "generators/test_generator"
34
+
35
+ # Load all analyzers
36
+ require_relative "analyzers/base_analyzer"
37
+ require_relative "analyzers/controller_analyzer"
38
+ require_relative "analyzers/model_analyzer"
39
+ require_relative "analyzers/spec_analyzer"
40
+ require_relative "analyzers/database_analyzer"
41
+ require_relative "analyzers/metrics_analyzer"
42
+ require_relative "analyzers/refactor_analyzer"
43
+ require_relative "analyzers/security_analyzer"
44
+ require_relative "analyzers/performance_analyzer"
45
+
46
+ # Load refactors and plugins
47
+ require_relative "refactors/refactor_controller"
48
+ require_relative "plugins"
49
+
50
+ # Load legacy modules
51
+ require_relative "mailer_generator"
52
+ require_relative "feature_generator"
53
+ require_relative "api_generator"
54
+ require_relative "audit"
55
+ require_relative "doctor"
56
+ require_relative "graph"
57
+ require_relative "wizard"
58
+ require_relative "wizard_tui"
59
+ require_relative "config"
60
+
61
+ # Dispatch to full CLI
62
+ CLI.start([command] + args)
63
+ end
64
+ end
65
+
66
+ def self.display_help
67
+ puts <<~HELP
68
+ RailsForge - A Rails development toolkit
69
+
70
+ Usage:
71
+ railsforge new <app_name> Create a new Rails app
72
+ railsforge generate service <name> Generate a service object
73
+ railsforge generate query <name> Generate a query object
74
+ railsforge generate job <name> Generate a job object
75
+ railsforge generate demo <name> Generate a demo project
76
+ railsforge generate devops Generate Docker/CI-CD configs
77
+ railsforge generate monitoring Generate Sentry/Lograge configs
78
+ railsforge generate test <name> Generate test files
79
+ railsforge analyze Analyze code quality
80
+ railsforge doctor Full project health check
81
+ railsforge audit Architecture audit
82
+ railsforge graph Dependency graph
83
+ railsforge refactor Refactoring suggestions
84
+ railsforge wizard Interactive project setup
85
+ railsforge plugins Plugin management
86
+ railsforge config Configuration
87
+ railsforge profiles List available profiles
88
+ railsforge --version, -v Show version
89
+ railsforge --help, -h Show this help
90
+ HELP
91
+ end
92
+ end
93
+ end
@@ -1,56 +1,76 @@
1
1
  # RailsForge modular loader
2
- # This file centralizes all require statements
2
+ # This file centralizes all require statements with lazy loading
3
3
 
4
4
  require "fileutils"
5
5
 
6
6
  # Get the lib directory path
7
7
  LIB_DIR = File.dirname(__FILE__)
8
8
 
9
- # Core modules
9
+ # Core modules - always needed
10
10
  require_relative "version"
11
- require_relative "profiles"
12
- require_relative "template_loader"
13
-
14
- # CLI
15
- require_relative "cli"
16
-
17
- # Generators (modular)
18
- require_relative "generators/base_generator"
19
- require_relative "generators/service_generator"
20
- require_relative "generators/view_component_generator"
21
- require_relative "generators/stimulus_controller_generator"
22
- require_relative "generators/demo_generator"
23
- require_relative "generators/devops_generator"
24
- require_relative "generators/monitoring_generator"
25
- require_relative "generators/test_generator"
26
-
27
- # Analyzers (modular)
28
- require_relative "analyzers/base_analyzer"
29
- require_relative "analyzers/controller_analyzer"
30
- require_relative "analyzers/model_analyzer"
31
- require_relative "analyzers/spec_analyzer"
32
- require_relative "analyzers/database_analyzer"
33
- require_relative "analyzers/metrics_analyzer"
34
- require_relative "analyzers/refactor_analyzer"
35
- require_relative "analyzers/security_analyzer"
36
- require_relative "analyzers/performance_analyzer"
37
-
38
- # Refactors
39
- require_relative "refactors/refactor_controller"
40
-
41
- # Plugins
42
- require_relative "plugins"
43
-
44
- # Additional features (legacy compatibility)
45
- require_relative "mailer_generator"
46
- require_relative "feature_generator"
47
- require_relative "api_generator"
48
- require_relative "audit"
49
- require_relative "doctor"
50
- require_relative "graph"
51
- require_relative "wizard"
52
- require_relative "wizard_tui"
53
- require_relative "config"
54
-
55
- # Generator module (app creation)
56
- require_relative "generator"
11
+
12
+ # Minimal CLI loader for --help and --version (fast)
13
+ require_relative "cli_minimal"
14
+
15
+ # Lazy-load everything else
16
+ module RailsForge
17
+ class << self
18
+ # Lazy-load generators
19
+ def require_generator(name)
20
+ require_relative "generators/#{name}"
21
+ end
22
+
23
+ # Lazy-load analyzers
24
+ def require_analyzer(name)
25
+ require_relative "analyzers/#{name}"
26
+ end
27
+
28
+ # Lazy-load other modules
29
+ def require_module(name)
30
+ require_relative name
31
+ end
32
+
33
+ # Preload all (for commands that need everything)
34
+ def preload_all!
35
+ require_relative "profiles"
36
+ require_relative "template_loader"
37
+
38
+ # Generators
39
+ require_relative "generators/base_generator"
40
+ require_relative "generators/service_generator"
41
+ require_relative "generators/view_component_generator"
42
+ require_relative "generators/stimulus_controller_generator"
43
+ require_relative "generators/demo_generator"
44
+ require_relative "generators/devops_generator"
45
+ require_relative "generators/monitoring_generator"
46
+ require_relative "generators/test_generator"
47
+
48
+ # Analyzers
49
+ require_relative "analyzers/base_analyzer"
50
+ require_relative "analyzers/controller_analyzer"
51
+ require_relative "analyzers/model_analyzer"
52
+ require_relative "analyzers/spec_analyzer"
53
+ require_relative "analyzers/database_analyzer"
54
+ require_relative "analyzers/metrics_analyzer"
55
+ require_relative "analyzers/refactor_analyzer"
56
+ require_relative "analyzers/security_analyzer"
57
+ require_relative "analyzers/performance_analyzer"
58
+
59
+ # Refactors & plugins
60
+ require_relative "refactors/refactor_controller"
61
+ require_relative "plugins"
62
+
63
+ # Legacy
64
+ require_relative "mailer_generator"
65
+ require_relative "feature_generator"
66
+ require_relative "api_generator"
67
+ require_relative "audit"
68
+ require_relative "doctor"
69
+ require_relative "graph"
70
+ require_relative "wizard"
71
+ require_relative "wizard_tui"
72
+ require_relative "config"
73
+ require_relative "generator"
74
+ end
75
+ end
76
+ end
@@ -23,7 +23,7 @@ class <%= class_name %>Job < ApplicationJob
23
23
  # TODO: Implement job logic
24
24
  # Example:
25
25
  # user = User.find(args[:user_id])
26
- # user.send_welcome_email
26
+ # UserMailer.welcome(user).deliver_now
27
27
  Rails.logger.info("Executing #{self.class.name}")
28
28
  end
29
29
 
@@ -46,16 +46,25 @@ class <%= class_name %>
46
46
  private
47
47
 
48
48
  # Validate inputs - returns Result
49
+ # Override this method to add custom validation
50
+ # @example
51
+ # def validate!
52
+ # return Failure(errors: ['Name required']) if @params[:name].blank?
53
+ # Success(true)
54
+ # end
49
55
  def validate!
50
- # TODO: Add validation logic
51
- # Example:
52
- # return Failure(errors: ['Name required']) if @params[:name].blank?
53
56
  Success(true)
54
57
  end
55
58
 
56
59
  # Process the main logic - returns Result
60
+ # Override this method to implement your service logic
61
+ # @example
62
+ # def process!
63
+ # user = User.create!(@params)
64
+ # @result = { user: user }
65
+ # Success(true)
66
+ # end
57
67
  def process!
58
- # TODO: Implement service logic
59
68
  @result = {}
60
69
  Success(true)
61
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railsforge
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
- - mfifth
7
+ - RailsForge Contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-07 00:00:00.000000000 Z
11
+ date: 2026-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -16,42 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.2'
19
+ version: '1.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.2'
27
- - !ruby/object:Gem::Dependency
28
- name: activesupport
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '5.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '5.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rails
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '5.0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '5.0'
26
+ version: '1.3'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: bundler
57
29
  requirement: !ruby/object:Gem::Requirement
@@ -86,34 +58,33 @@ dependencies:
86
58
  requirements:
87
59
  - - "~>"
88
60
  - !ruby/object:Gem::Version
89
- version: '3.10'
61
+ version: '3.13'
90
62
  type: :development
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
94
66
  - - "~>"
95
67
  - !ruby/object:Gem::Version
96
- version: '3.10'
68
+ version: '3.13'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: rubocop
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
73
  - - "~>"
102
74
  - !ruby/object:Gem::Version
103
- version: '1.20'
75
+ version: '1.85'
104
76
  type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
108
80
  - - "~>"
109
81
  - !ruby/object:Gem::Version
110
- version: '1.20'
82
+ version: '1.85'
111
83
  description: |
112
84
  RailsForge is a comprehensive command-line tool for automatically generating
113
85
  essential Rails application components, including monitoring configurations,
114
86
  DevOps setups, and security/performance analyzers.
115
87
  email:
116
- - contact@railsforge.dev
117
88
  executables:
118
89
  - railsforge
119
90
  extensions: []
@@ -135,6 +106,7 @@ files:
135
106
  - lib/railsforge/api_generator.rb
136
107
  - lib/railsforge/audit.rb
137
108
  - lib/railsforge/cli.rb
109
+ - lib/railsforge/cli_minimal.rb
138
110
  - lib/railsforge/config.rb
139
111
  - lib/railsforge/database_analyzer.rb
140
112
  - lib/railsforge/doctor.rb
@@ -202,7 +174,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
202
174
  requirements:
203
175
  - - ">="
204
176
  - !ruby/object:Gem::Version
205
- version: '2.7'
177
+ version: '3.0'
206
178
  required_rubygems_version: !ruby/object:Gem::Requirement
207
179
  requirements:
208
180
  - - ">="