propel_rails 0.1.3 → 0.2.0

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/lib/propel_rails.rb +20 -14
  4. metadata +3 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01fabd15b4870069a21cc52990748d323301bd646b153039b390e97255b4d7f9
4
- data.tar.gz: 6ed1422add47bfa280cebc2713c04e0b2b873ad3c28022edfcc382a066ae9c5b
3
+ metadata.gz: 6d984fd6b885b008f28ced43f26aeba9bbf333c2dfd5dedfeb4705f4981e1b37
4
+ data.tar.gz: bb7ee80057ccb8abbeb915fc1bdd075578488ddfe2b81b13c7757399250e8513
5
5
  SHA512:
6
- metadata.gz: b280b9741d7265a9a251c7daedc64c416cd0f9fd579a300c0a4a53b51d864d8ddfb67b2de06ccb05c171bd643763706ba1cce46cc23a332c7137328ee02796bb
7
- data.tar.gz: 70072e65dd2f841403af2e696729f23c6a60bc3cb0c5863476d02fab4554c3cdda94f70735a6261e10d8a4903928aaa4b8ffda96dc024232fd0c02ae7a18cc35
6
+ metadata.gz: 8ea927c29b5ce2daa0677a3906e32779850f5940c87dc9c780aa23701649c7711301d7f9f1096960aa2c89ba4f90e3198131c00e201bfe948b54a3b18c53fe67
7
+ data.tar.gz: 5b923359aa3c3db152e2d81f0ec097d54e355bc07d6eb3f0bf5c0699c92515590497dfa064e80b484d64a3346fdbb776f73a01e2031eeffdf66c7368c51f0b4e
data/CHANGELOG.md ADDED
@@ -0,0 +1,88 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Planned Features
11
+ - Additional component gems (propel-access, propel-ai, propel-forms)
12
+ - Cross-component integration patterns
13
+ - Advanced orchestration features
14
+
15
+ ## [0.2.0] - 2025-09-02
16
+
17
+ ### Added
18
+ - **Security-first framework architecture** - Comprehensive multi-tenant API framework with security-first design
19
+ - Complete integration of PropelAuthentication 0.2.0, PropelApi 0.2.0, and PropelFacets 0.2.0
20
+ - Unified configuration hierarchy across all components
21
+ - Configurable tenancy requirements with developer-friendly defaults
22
+
23
+ ### Fixed
24
+ - **Component coordination** - Enhanced orchestration of authentication and API security systems
25
+ - Updated framework loading to handle `PropelAuthenticationConcern` properly
26
+ - Improved component integration patterns for security-first architecture
27
+ - Configuration ownership properly distributed across component gems
28
+
29
+ ### Improved
30
+ - **Framework stability** - Better error handling and component loading
31
+ - Enhanced gem auto-loading with proper fallback handling
32
+ - Improved development environment messaging
33
+ - Comprehensive test coverage across all 345 integration tests
34
+ - **Developer experience** - Seamless integration of all security and multi-tenancy features
35
+ - Zero configuration required for basic multi-tenant setup
36
+ - Enterprise-ready strict mode available when needed
37
+ - Complete test suite with adaptive behavior based on configuration
38
+
39
+ ## [0.1.4] - 2025-01-23
40
+
41
+ ### Fixed
42
+ - **Generator extraction system** - Critical infrastructure fixes across all components
43
+ - PropelAuthentication: Fixed core configuration methods extraction
44
+ - PropelAPI: Enhanced unpack system for complete standalone operation
45
+ - PropelFacets: Improved generator infrastructure extraction
46
+ - **Framework orchestration** - Better component coordination and installation
47
+ - **Test environment** - ActionCable configuration and comprehensive test coverage
48
+
49
+ ### Improved
50
+ - **"No black box" policy** - Complete implementation across all components
51
+ - **Component independence** - Each gem works standalone after extraction
52
+ - **Rails conventions** - Better adherence to Rails patterns throughout framework
53
+
54
+ ## [0.1.3] - 2025-01-XX
55
+
56
+ ### Added
57
+ - **Modular framework architecture** - Collection of independent, coordinated gems
58
+ - **Component orchestration system** - Unified installation and management
59
+ - **Self-extracting gem pattern** - Install temporarily, extract code, remove dependencies
60
+ - **Core component gems**:
61
+ - PropelAuthentication - JWT-based authentication system
62
+ - PropelAPI - API resource generation with dual adapters
63
+ - PropelFacets - JSON facet system for flexible API responses
64
+
65
+ ### Features
66
+ - **Unified installation** - Single command installs entire framework or individual components
67
+ - **Component coordination** - Gems work together seamlessly while remaining independent
68
+ - **Framework configuration** - Centralized configuration with component-specific options
69
+ - **Development workflow** - Path gem support for local development
70
+ - **Production deployment** - Zero runtime dependencies after extraction
71
+
72
+ ### Architecture
73
+ - **Self-extracting generators** - All functionality extracted to host application
74
+ - **Component isolation** - Each gem can be used independently
75
+ - **Rails integration** - Deep integration with Rails conventions and patterns
76
+ - **Modular design** - Add or remove components as needed
77
+
78
+ ### Generator Commands
79
+ - `rails generate propel:install` - Install complete framework
80
+ - `rails generate propel:install --components=auth,api` - Install specific components
81
+ - Individual component generators available for fine-grained control
82
+
83
+ ### Philosophy
84
+ - **No black box dependencies** - All code visible and customizable in host application
85
+ - **Rails conventions first** - Follows established Rails patterns and practices
86
+ - **Developer control** - Full customization and modification capabilities
87
+ - **Production ready** - Battle-tested patterns with comprehensive test coverage
88
+
data/lib/propel_rails.rb CHANGED
@@ -4,7 +4,7 @@ require "pathname"
4
4
 
5
5
  module Propel
6
6
  module Rails
7
- VERSION = "0.1.3"
7
+ VERSION = "0.2.0"
8
8
 
9
9
  class Error < StandardError; end
10
10
 
@@ -65,20 +65,26 @@ end
65
65
  # propel-accounting
66
66
 
67
67
 
68
- # gems_to_load = %w[
69
- # propel_authentication
70
- # propel_api
71
- # propel_facets
72
- # ]
68
+ gems_to_load = %w[
69
+ propel_authentication
70
+ propel_api
71
+ propel_facets
72
+ ]
73
73
 
74
- # gems_to_load.each do |gem_name|
75
- # begin
76
- # require gem_name
77
- # rescue LoadError
78
- # # Gem not available, skip it
79
- # puts "#{gem_name} not available" if Propel::Rails.configuration.development?
80
- # end
81
- # end
74
+ gems_to_load.each do |gem_name|
75
+ begin
76
+ require gem_name
77
+ rescue LoadError
78
+ # Check if gem is defined in Gemfile (for path gems)
79
+ if defined?(Bundler) && Bundler.definition.dependencies.any? { |dep| dep.name == gem_name }
80
+ # Gem is in Gemfile but not loaded yet - this is normal for path gems
81
+ # Bundler will load it later, so don't show warning
82
+ else
83
+ # Gem not available and not in Gemfile, show warning only if in development
84
+ puts "#{gem_name} not available" if Propel::Rails.configuration.development?
85
+ end
86
+ end
87
+ end
82
88
 
83
89
  # Welcome message for development
84
90
  if Propel::Rails.configuration.development?
metadata CHANGED
@@ -1,57 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: propel_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Propel Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-07-22 00:00:00.000000000 Z
11
+ date: 2025-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: propel_authentication
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.1.3
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.1.3
27
- - !ruby/object:Gem::Dependency
28
- name: propel_api
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.1.3
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.1.3
41
- - !ruby/object:Gem::Dependency
42
- name: propel_facets
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.1.3
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.1.3
55
13
  - !ruby/object:Gem::Dependency
56
14
  name: bundler
57
15
  requirement: !ruby/object:Gem::Requirement
@@ -188,6 +146,7 @@ executables: []
188
146
  extensions: []
189
147
  extra_rdoc_files: []
190
148
  files:
149
+ - CHANGELOG.md
191
150
  - README.md
192
151
  - Rakefile
193
152
  - lib/generators/propel/install_generator.rb