tyler_efm_client 1.0.0.pre.alpha.1 ā 1.0.0.pre.alpha.2
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 +27 -4
 - data/VERSIONING.md +224 -0
 - data/docs/getting_started.md +7 -7
 - data/examples/SETUP_AND_TEST.md +134 -0
 - data/examples/sample_application/.gitignore +31 -0
 - data/examples/sample_application/Gemfile +14 -0
 - data/examples/sample_application/README.md +160 -0
 - data/examples/sample_application/config.example.json +17 -0
 - data/examples/sample_application/sample_app.rb +187 -0
 - data/examples/sample_application/test_with_working_config.rb +147 -0
 - data/examples/simple_examples/basic_auth.rb +42 -0
 - data/lib/tyler_efm_client/version.rb +1 -1
 - data/samples/court_filing_workflow/README.md +3 -3
 - metadata +10 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 940661dea706efa9a8dd63f546d602431afe69536117c8b7ed1796aa72b9e429
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a71cae0f5d4444a9cb6fc59d2a92f62e4813996040dc4b94f502980113f227f5
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: d459b94478d7626451b233b86cc3ea50c7a1f8554bde038b97e2adce8dae228c152487858752c3ff681e01687d90cea1718ac42a5406cc8a59df9e563fc49a72
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 6779fbec068348f282e7c7866b49e45e0733d8dcdd78e6775ea50763f5e2385a2c721824eaed4a4936925a5468b60c37cc5d349f55a64dbef74619f2ef10522f
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -268,12 +268,35 @@ To install this gem onto your local machine, run: 
     | 
|
| 
       268 
268 
     | 
    
         
             
            bundle exec rake install
         
     | 
| 
       269 
269 
     | 
    
         
             
            ```
         
     | 
| 
       270 
270 
     | 
    
         | 
| 
       271 
     | 
    
         
            -
             
     | 
| 
      
 271 
     | 
    
         
            +
            ## š Releases & Versioning
         
     | 
| 
       272 
272 
     | 
    
         | 
| 
       273 
     | 
    
         
            -
             
     | 
| 
       274 
     | 
    
         
            -
            2. Run `bundle exec rake release`
         
     | 
| 
      
 273 
     | 
    
         
            +
            This gem uses **automated version management** through GitHub Actions. The system automatically handles version conflicts and increments alpha releases.
         
     | 
| 
       275 
274 
     | 
    
         | 
| 
       276 
     | 
    
         
            -
             
     | 
| 
      
 275 
     | 
    
         
            +
            ### Quick Release Guide
         
     | 
| 
      
 276 
     | 
    
         
            +
             
     | 
| 
      
 277 
     | 
    
         
            +
            **Alpha/Development Releases** (Most Common):
         
     | 
| 
      
 278 
     | 
    
         
            +
            - Go to GitHub Actions ā "Publish Ruby Gem" ā "Run workflow"  
         
     | 
| 
      
 279 
     | 
    
         
            +
            - Leave version input blank - system will auto-increment to next available version
         
     | 
| 
      
 280 
     | 
    
         
            +
            - Perfect for continuous integration and testing
         
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
      
 282 
     | 
    
         
            +
            **Production Releases**:
         
     | 
| 
      
 283 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 284 
     | 
    
         
            +
            # Create a version tag and GitHub release
         
     | 
| 
      
 285 
     | 
    
         
            +
            git tag v1.0.0
         
     | 
| 
      
 286 
     | 
    
         
            +
            git push origin v1.0.0
         
     | 
| 
      
 287 
     | 
    
         
            +
            # Then create GitHub Release using the tag
         
     | 
| 
      
 288 
     | 
    
         
            +
            ```
         
     | 
| 
      
 289 
     | 
    
         
            +
             
     | 
| 
      
 290 
     | 
    
         
            +
            **Manual Version Override**:
         
     | 
| 
      
 291 
     | 
    
         
            +
            - Use GitHub Actions workflow with specific version input
         
     | 
| 
      
 292 
     | 
    
         
            +
            - Example: `1.0.0.pre.alpha.10` or `1.1.0.pre.beta.1`
         
     | 
| 
      
 293 
     | 
    
         
            +
             
     | 
| 
      
 294 
     | 
    
         
            +
            š **See [VERSIONING.md](./VERSIONING.md) for complete versioning guide**
         
     | 
| 
      
 295 
     | 
    
         
            +
             
     | 
| 
      
 296 
     | 
    
         
            +
            ### Current Version Strategy
         
     | 
| 
      
 297 
     | 
    
         
            +
            - **Auto-increment**: System automatically finds next available alpha version
         
     | 
| 
      
 298 
     | 
    
         
            +
            - **Conflict Resolution**: Handles "version already exists" errors automatically  
         
     | 
| 
      
 299 
     | 
    
         
            +
            - **No Manual File Editing**: Version files updated during CI/CD process
         
     | 
| 
       277 
300 
     | 
    
         | 
| 
       278 
301 
     | 
    
         
             
            ## š¤ Contributing
         
     | 
| 
       279 
302 
     | 
    
         | 
    
        data/VERSIONING.md
    ADDED
    
    | 
         @@ -0,0 +1,224 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Tyler EFM Client Ruby - Versioning Guide
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            This document explains how to manage versions and releases for the Tyler EFM Client Ruby gem.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ## šÆ Versioning Strategy
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            We use **Semantic Versioning (SemVer)** with intelligent automation for development releases:
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            - **Production Releases**: `1.0.0`, `1.1.0`, `2.0.0`
         
     | 
| 
      
 10 
     | 
    
         
            +
            - **Alpha/Beta Releases**: `1.0.0.pre.alpha.1`, `1.0.0.pre.beta.1`
         
     | 
| 
      
 11 
     | 
    
         
            +
            - **Release Candidates**: `1.0.0.rc.1`
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            ## š¤ Automated Version Management
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            The GitHub Actions workflow automatically handles versioning to prevent conflicts and streamline releases.
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ### Current System Behavior
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            1. **Auto-increment Alpha Versions**: When publishing alpha releases, the system automatically finds the next available version number
         
     | 
| 
      
 20 
     | 
    
         
            +
            2. **Conflict Resolution**: If a version already exists on RubyGems, it auto-increments to the next available number
         
     | 
| 
      
 21 
     | 
    
         
            +
            3. **Dynamic Version Updates**: The `lib/tyler_efm_client/version.rb` file is updated during the build process
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            ## š Release Types & Workflows
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            ### 1. Alpha/Development Releases (Most Common)
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            **Use Case**: Regular development releases, testing, continuous integration
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            **How to Trigger**:
         
     | 
| 
      
 30 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 31 
     | 
    
         
            +
            # Option A: Manual workflow dispatch (no version specified)
         
     | 
| 
      
 32 
     | 
    
         
            +
            # Go to GitHub Actions ā "Publish Ruby Gem" ā "Run workflow"
         
     | 
| 
      
 33 
     | 
    
         
            +
            # Leave version input blank - system will auto-increment
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            # Option B: Manual workflow dispatch (specific version)
         
     | 
| 
      
 36 
     | 
    
         
            +
            # Go to GitHub Actions ā "Publish Ruby Gem" ā "Run workflow"  
         
     | 
| 
      
 37 
     | 
    
         
            +
            # Enter version like: 1.0.0.pre.alpha.5
         
     | 
| 
      
 38 
     | 
    
         
            +
            ```
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            **What Happens**:
         
     | 
| 
      
 41 
     | 
    
         
            +
            - System reads current version from `version.rb` (e.g., `1.0.0.pre.alpha.2`)
         
     | 
| 
      
 42 
     | 
    
         
            +
            - Checks if that version exists on RubyGems
         
     | 
| 
      
 43 
     | 
    
         
            +
            - If exists, auto-increments to next available (e.g., `1.0.0.pre.alpha.3`)
         
     | 
| 
      
 44 
     | 
    
         
            +
            - Updates `version.rb` dynamically
         
     | 
| 
      
 45 
     | 
    
         
            +
            - Builds and publishes gem
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            **File Updates**: No manual file changes needed - fully automated!
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            ### 2. Production Releases
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            **Use Case**: Official releases for end users
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            **How to Trigger**:
         
     | 
| 
      
 54 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 55 
     | 
    
         
            +
            # Create a GitHub release with a version tag
         
     | 
| 
      
 56 
     | 
    
         
            +
            git tag v1.0.0
         
     | 
| 
      
 57 
     | 
    
         
            +
            git push origin v1.0.0
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            # Then create a GitHub Release using the tag
         
     | 
| 
      
 60 
     | 
    
         
            +
            # Go to GitHub ā Releases ā "Create a new release"
         
     | 
| 
      
 61 
     | 
    
         
            +
            # Use tag: v1.0.0, Title: "Version 1.0.0"
         
     | 
| 
      
 62 
     | 
    
         
            +
            ```
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            **What Happens**:
         
     | 
| 
      
 65 
     | 
    
         
            +
            - System uses the release tag as the version (removes 'v' prefix)
         
     | 
| 
      
 66 
     | 
    
         
            +
            - Updates `version.rb` to the production version
         
     | 
| 
      
 67 
     | 
    
         
            +
            - Builds and publishes to RubyGems as a production release
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            ### 3. Manual Version Override
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            **Use Case**: Specific version requirements, fixing version conflicts
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            **How to Trigger**:
         
     | 
| 
      
 74 
     | 
    
         
            +
            - Go to GitHub Actions ā "Publish Ruby Gem" ā "Run workflow"
         
     | 
| 
      
 75 
     | 
    
         
            +
            - Enter specific version in the input field
         
     | 
| 
      
 76 
     | 
    
         
            +
            - Examples: `1.0.0.pre.alpha.10`, `1.1.0.pre.beta.1`, `2.0.0.rc.1`
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            ## š§ Version File Management
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            ### Current Version Location
         
     | 
| 
      
 81 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 82 
     | 
    
         
            +
            # lib/tyler_efm_client/version.rb
         
     | 
| 
      
 83 
     | 
    
         
            +
            module TylerEfmClient
         
     | 
| 
      
 84 
     | 
    
         
            +
              VERSION = '1.0.0.pre.alpha.1'
         
     | 
| 
      
 85 
     | 
    
         
            +
            end
         
     | 
| 
      
 86 
     | 
    
         
            +
            ```
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            ### ā ļø Important Notes for Developers
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            1. **Don't Manually Edit Version File**: The CI/CD system handles this automatically
         
     | 
| 
      
 91 
     | 
    
         
            +
            2. **Version File is Updated During Build**: Changes are made during the GitHub Actions workflow
         
     | 
| 
      
 92 
     | 
    
         
            +
            3. **Local Development**: Your local `version.rb` may differ from published versions
         
     | 
| 
      
 93 
     | 
    
         
            +
            4. **Commit After Release**: Version changes are made in CI, consider updating locally after successful releases
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            ## š Version Examples & Progression
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
            ### Alpha Release Progression
         
     | 
| 
      
 98 
     | 
    
         
            +
            ```
         
     | 
| 
      
 99 
     | 
    
         
            +
            Start:           1.0.0.pre.alpha.1
         
     | 
| 
      
 100 
     | 
    
         
            +
            Auto-increment:  1.0.0.pre.alpha.2  
         
     | 
| 
      
 101 
     | 
    
         
            +
            Auto-increment:  1.0.0.pre.alpha.3
         
     | 
| 
      
 102 
     | 
    
         
            +
            ...
         
     | 
| 
      
 103 
     | 
    
         
            +
            Manual bump:     1.0.0.pre.alpha.10
         
     | 
| 
      
 104 
     | 
    
         
            +
            ```
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
            ### Production Release Examples
         
     | 
| 
      
 107 
     | 
    
         
            +
            ```
         
     | 
| 
      
 108 
     | 
    
         
            +
            Alpha series:    1.0.0.pre.alpha.x
         
     | 
| 
      
 109 
     | 
    
         
            +
            Release tag:     v1.0.0
         
     | 
| 
      
 110 
     | 
    
         
            +
            Published as:    1.0.0
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            Next series:     1.1.0.pre.alpha.1
         
     | 
| 
      
 113 
     | 
    
         
            +
            Release tag:     v1.1.0  
         
     | 
| 
      
 114 
     | 
    
         
            +
            Published as:    1.1.0
         
     | 
| 
      
 115 
     | 
    
         
            +
            ```
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
            ## šØ Troubleshooting Version Conflicts
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
            ### "Version Already Exists" Error
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
            **For Alpha Versions (Automatic)**:
         
     | 
| 
      
 122 
     | 
    
         
            +
            - System detects conflict
         
     | 
| 
      
 123 
     | 
    
         
            +
            - Auto-increments to next available version
         
     | 
| 
      
 124 
     | 
    
         
            +
            - No manual intervention needed
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
            **For Production Versions (Manual)**:
         
     | 
| 
      
 127 
     | 
    
         
            +
            If you get a conflict with a production version:
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
            1. **Check RubyGems**: Visit https://rubygems.org/gems/tyler_efm_client/versions
         
     | 
| 
      
 130 
     | 
    
         
            +
            2. **Choose New Version**: Pick a version that doesn't exist
         
     | 
| 
      
 131 
     | 
    
         
            +
            3. **Manual Override**: Use workflow dispatch with specific version
         
     | 
| 
      
 132 
     | 
    
         
            +
            4. **Or Yank Existing**: If you own the version, yank it first:
         
     | 
| 
      
 133 
     | 
    
         
            +
               ```bash
         
     | 
| 
      
 134 
     | 
    
         
            +
               gem yank tyler_efm_client -v 1.0.0
         
     | 
| 
      
 135 
     | 
    
         
            +
               ```
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
            ### Version Rollback
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
      
 139 
     | 
    
         
            +
            If you need to rollback a version:
         
     | 
| 
      
 140 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 141 
     | 
    
         
            +
            # Yank the problematic version
         
     | 
| 
      
 142 
     | 
    
         
            +
            gem yank tyler_efm_client -v 1.0.0.pre.alpha.5
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
            # Republish with corrected code using manual version override
         
     | 
| 
      
 145 
     | 
    
         
            +
            ```
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
            ## šÆ Best Practices for Engineers
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
            ### Daily Development
         
     | 
| 
      
 150 
     | 
    
         
            +
            1. **Use Auto-increment**: Don't specify versions for regular alpha releases
         
     | 
| 
      
 151 
     | 
    
         
            +
            2. **Let CI Handle It**: The system will find the next available version
         
     | 
| 
      
 152 
     | 
    
         
            +
            3. **Test Locally First**: Ensure your changes work before triggering releases
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
            ### Preparing for Production
         
     | 
| 
      
 155 
     | 
    
         
            +
            1. **Plan Version Number**: Decide on major.minor.patch based on changes
         
     | 
| 
      
 156 
     | 
    
         
            +
            2. **Update Documentation**: Ensure README, CHANGELOG reflect new features
         
     | 
| 
      
 157 
     | 
    
         
            +
            3. **Create Git Tag**: Use clean tags like `v1.0.0`, `v1.1.0`
         
     | 
| 
      
 158 
     | 
    
         
            +
            4. **GitHub Release**: Create formal release with notes
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
            ### Semantic Versioning Guidelines
         
     | 
| 
      
 161 
     | 
    
         
            +
            - **MAJOR** (1.0.0 ā 2.0.0): Breaking changes, API changes
         
     | 
| 
      
 162 
     | 
    
         
            +
            - **MINOR** (1.0.0 ā 1.1.0): New features, backwards compatible
         
     | 
| 
      
 163 
     | 
    
         
            +
            - **PATCH** (1.0.0 ā 1.0.1): Bug fixes, backwards compatible
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
            ## š Monitoring Releases
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
      
 167 
     | 
    
         
            +
            ### Check Published Versions
         
     | 
| 
      
 168 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 169 
     | 
    
         
            +
            # List all published versions
         
     | 
| 
      
 170 
     | 
    
         
            +
            gem list tyler_efm_client --remote --all
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
      
 172 
     | 
    
         
            +
            # Check specific version details
         
     | 
| 
      
 173 
     | 
    
         
            +
            gem specification tyler_efm_client -v 1.0.0.pre.alpha.3
         
     | 
| 
      
 174 
     | 
    
         
            +
            ```
         
     | 
| 
      
 175 
     | 
    
         
            +
             
     | 
| 
      
 176 
     | 
    
         
            +
            ### GitHub Actions Monitoring
         
     | 
| 
      
 177 
     | 
    
         
            +
            - Go to GitHub ā Actions ā "Publish Ruby Gem" 
         
     | 
| 
      
 178 
     | 
    
         
            +
            - Monitor workflow runs for success/failure
         
     | 
| 
      
 179 
     | 
    
         
            +
            - Check logs for version conflicts or publishing issues
         
     | 
| 
      
 180 
     | 
    
         
            +
             
     | 
| 
      
 181 
     | 
    
         
            +
            ## š Version History Tracking
         
     | 
| 
      
 182 
     | 
    
         
            +
             
     | 
| 
      
 183 
     | 
    
         
            +
            The system maintains version history through:
         
     | 
| 
      
 184 
     | 
    
         
            +
            - **Git Tags**: Production releases
         
     | 
| 
      
 185 
     | 
    
         
            +
            - **GitHub Releases**: Release notes and changelogs  
         
     | 
| 
      
 186 
     | 
    
         
            +
            - **RubyGems History**: All published versions
         
     | 
| 
      
 187 
     | 
    
         
            +
            - **GitHub Actions Logs**: Build and publish details
         
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
      
 189 
     | 
    
         
            +
            ## š Getting Help
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
      
 191 
     | 
    
         
            +
            ### Common Issues
         
     | 
| 
      
 192 
     | 
    
         
            +
            1. **Build Failures**: Check GitHub Actions logs
         
     | 
| 
      
 193 
     | 
    
         
            +
            2. **Version Conflicts**: System should auto-resolve for alphas
         
     | 
| 
      
 194 
     | 
    
         
            +
            3. **Publishing Errors**: Check RubyGems API key and permissions
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
      
 196 
     | 
    
         
            +
            ### Support Contacts
         
     | 
| 
      
 197 
     | 
    
         
            +
            - **Tyler ECF Team**: For Tyler EFM service issues
         
     | 
| 
      
 198 
     | 
    
         
            +
            - **Ruby Gem Issues**: Check GitHub Issues in this repository
         
     | 
| 
      
 199 
     | 
    
         
            +
            - **CI/CD Problems**: Review GitHub Actions workflow logs
         
     | 
| 
      
 200 
     | 
    
         
            +
             
     | 
| 
      
 201 
     | 
    
         
            +
            ---
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
      
 203 
     | 
    
         
            +
            ## Quick Reference Commands
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
      
 205 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 206 
     | 
    
         
            +
            # Check current published versions
         
     | 
| 
      
 207 
     | 
    
         
            +
            gem list tyler_efm_client --remote
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
            # Manual publish (alpha - auto-increment)
         
     | 
| 
      
 210 
     | 
    
         
            +
            # GitHub Actions ā "Publish Ruby Gem" ā Run (leave version blank)
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
            # Manual publish (specific version)  
         
     | 
| 
      
 213 
     | 
    
         
            +
            # GitHub Actions ā "Publish Ruby Gem" ā Run ā Enter version
         
     | 
| 
      
 214 
     | 
    
         
            +
             
     | 
| 
      
 215 
     | 
    
         
            +
            # Production release
         
     | 
| 
      
 216 
     | 
    
         
            +
            git tag v1.0.0
         
     | 
| 
      
 217 
     | 
    
         
            +
            git push origin v1.0.0
         
     | 
| 
      
 218 
     | 
    
         
            +
            # Then create GitHub Release
         
     | 
| 
      
 219 
     | 
    
         
            +
             
     | 
| 
      
 220 
     | 
    
         
            +
            # Emergency yank
         
     | 
| 
      
 221 
     | 
    
         
            +
            gem yank tyler_efm_client -v VERSION_NUMBER
         
     | 
| 
      
 222 
     | 
    
         
            +
            ```
         
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
            This automated versioning system eliminates most manual version management while providing flexibility for special cases.
         
     | 
    
        data/docs/getting_started.md
    CHANGED
    
    | 
         @@ -259,16 +259,16 @@ end 
     | 
|
| 
       259 
259 
     | 
    
         
             
            Now that you have the basics working:
         
     | 
| 
       260 
260 
     | 
    
         | 
| 
       261 
261 
     | 
    
         
             
            1. **Explore Examples**: Check the `examples/` directory for complete working examples
         
     | 
| 
       262 
     | 
    
         
            -
            2. **Review Samples**: Look at `samples/` for real-world integration patterns
         
     | 
| 
       263 
     | 
    
         
            -
            3. **Read  
     | 
| 
       264 
     | 
    
         
            -
            4. ** 
     | 
| 
      
 262 
     | 
    
         
            +
            2. **Review Samples**: Look at `samples/` for real-world integration patterns  
         
     | 
| 
      
 263 
     | 
    
         
            +
            3. **Read Documentation**: See the main README.md for detailed method documentation
         
     | 
| 
      
 264 
     | 
    
         
            +
            4. **Release Management**: Review versioning guide for package updates
         
     | 
| 
       265 
265 
     | 
    
         | 
| 
       266 
266 
     | 
    
         
             
            ## š Quick Links
         
     | 
| 
       267 
267 
     | 
    
         | 
| 
       268 
     | 
    
         
            -
            - [ 
     | 
| 
       269 
     | 
    
         
            -
            - [ 
     | 
| 
       270 
     | 
    
         
            -
            - [ 
     | 
| 
       271 
     | 
    
         
            -
            - [ 
     | 
| 
      
 268 
     | 
    
         
            +
            - [Main Documentation](../README.md) - Complete API reference and usage examples
         
     | 
| 
      
 269 
     | 
    
         
            +
            - [Versioning Guide](../VERSIONING.md) - Release and version management
         
     | 
| 
      
 270 
     | 
    
         
            +
            - [Examples Directory](../examples/) - Working code examples
         
     | 
| 
      
 271 
     | 
    
         
            +
            - [Court Filing Samples](../samples/court_filing_workflow/) - Real-world integration patterns
         
     | 
| 
       272 
272 
     | 
    
         | 
| 
       273 
273 
     | 
    
         
             
            ## š Ruby Conventions
         
     | 
| 
       274 
274 
     | 
    
         | 
| 
         @@ -0,0 +1,134 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Tyler EFM Client Ruby Gem - Alpha Testing Setup
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            š§Ŗ **Quick setup guide** to test the published alpha gem with your existing configuration.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ## š Fast Track Testing
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ### Option 1: Test with Your Existing Config (Recommended)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 10 
     | 
    
         
            +
            # Navigate to the sample application directory
         
     | 
| 
      
 11 
     | 
    
         
            +
            cd examples/sample_application
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            # Install the published alpha gem
         
     | 
| 
      
 14 
     | 
    
         
            +
            gem install tyler_efm_client --pre
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            # Run the test using your existing working config
         
     | 
| 
      
 17 
     | 
    
         
            +
            ruby test_with_working_config.rb
         
     | 
| 
      
 18 
     | 
    
         
            +
            ```
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            This will:
         
     | 
| 
      
 21 
     | 
    
         
            +
            1. Load your existing `python_auth/config.json` 
         
     | 
| 
      
 22 
     | 
    
         
            +
            2. Use your working certificate and credentials
         
     | 
| 
      
 23 
     | 
    
         
            +
            3. Test both authentication and GetCaseList operations
         
     | 
| 
      
 24 
     | 
    
         
            +
            4. Show you exactly what the alpha gem produces
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            ### Option 2: Full Sample Application
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 29 
     | 
    
         
            +
            # Install dependencies
         
     | 
| 
      
 30 
     | 
    
         
            +
            bundle install
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            # Copy and configure
         
     | 
| 
      
 33 
     | 
    
         
            +
            cp config.example.json config.json
         
     | 
| 
      
 34 
     | 
    
         
            +
            # Edit config.json with your credentials
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            # Run the full sample app
         
     | 
| 
      
 37 
     | 
    
         
            +
            ruby sample_app.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            ```
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            ## š Expected Test Results
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            ### ā
 Successful Test Output:
         
     | 
| 
      
 43 
     | 
    
         
            +
            ```
         
     | 
| 
      
 44 
     | 
    
         
            +
            š§Ŗ Testing Tyler EFM Client Ruby Gem Alpha Version
         
     | 
| 
      
 45 
     | 
    
         
            +
            š¦ Gem Version: 1.0.0.pre.alpha.1
         
     | 
| 
      
 46 
     | 
    
         
            +
            š Using config: ../../../python_auth/config.json
         
     | 
| 
      
 47 
     | 
    
         
            +
            ============================================================
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            š Test 1: Authentication
         
     | 
| 
      
 50 
     | 
    
         
            +
               š Authenticating with Tyler EFM User Service...
         
     | 
| 
      
 51 
     | 
    
         
            +
            ā
 Authentication test passed!
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            š Test 2: GetCaseList Operation
         
     | 
| 
      
 54 
     | 
    
         
            +
               š Calling GetCaseList with password hash...
         
     | 
| 
      
 55 
     | 
    
         
            +
            ā
 GetCaseList test passed!
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            š All alpha gem tests successful!
         
     | 
| 
      
 58 
     | 
    
         
            +
            ```
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            ### šÆ What This Proves:
         
     | 
| 
      
 61 
     | 
    
         
            +
            - ā
 **Alpha gem works** with your real Tyler environment
         
     | 
| 
      
 62 
     | 
    
         
            +
            - ā
 **Authentication successful** - same password hash as your working scripts
         
     | 
| 
      
 63 
     | 
    
         
            +
            - ā
 **GetCaseList functional** - retrieves actual case data
         
     | 
| 
      
 64 
     | 
    
         
            +
            - ā
 **Certificate handling** - properly processes your PFX file
         
     | 
| 
      
 65 
     | 
    
         
            +
            - ā
 **WS-Security working** - creates valid RSA-SHA1/SHA1 signatures
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            ## š§ Troubleshooting
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            ### Common Issues:
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            **"Gem not found"**
         
     | 
| 
      
 72 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 73 
     | 
    
         
            +
            # Make sure you install the prerelease version
         
     | 
| 
      
 74 
     | 
    
         
            +
            gem install tyler_efm_client --pre
         
     | 
| 
      
 75 
     | 
    
         
            +
            ```
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            **"Config file not found"**
         
     | 
| 
      
 78 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 79 
     | 
    
         
            +
            # Verify your config.json exists
         
     | 
| 
      
 80 
     | 
    
         
            +
            ls -la ../../../python_auth/config.json
         
     | 
| 
      
 81 
     | 
    
         
            +
            ```
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            **"Certificate file not found"**
         
     | 
| 
      
 84 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 85 
     | 
    
         
            +
            # Check certificate path in config.json
         
     | 
| 
      
 86 
     | 
    
         
            +
            # Path should be relative to python_auth directory
         
     | 
| 
      
 87 
     | 
    
         
            +
            ```
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
            **Ruby version issues**
         
     | 
| 
      
 90 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 91 
     | 
    
         
            +
            # The gem requires Ruby 3.0+
         
     | 
| 
      
 92 
     | 
    
         
            +
            ruby --version
         
     | 
| 
      
 93 
     | 
    
         
            +
            ```
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            ## š Comparison with Working Scripts
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
            Run this to compare alpha gem results with your working Ruby script:
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 100 
     | 
    
         
            +
            # Test your original working Ruby script
         
     | 
| 
      
 101 
     | 
    
         
            +
            cd ../../../python_auth
         
     | 
| 
      
 102 
     | 
    
         
            +
            ruby auth_test.rb
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
            # Test the alpha gem
         
     | 
| 
      
 105 
     | 
    
         
            +
            cd ../github_repositories/cj-esol-efm-client-ruby/examples/sample_application
         
     | 
| 
      
 106 
     | 
    
         
            +
            ruby test_with_working_config.rb
         
     | 
| 
      
 107 
     | 
    
         
            +
            ```
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
            **Both should produce the same password hash:** `5c31af92-391e-4ca2-a530-3ee61af1fa37`
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
            ## šÆ Success Criteria
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
            Your alpha gem test is successful when:
         
     | 
| 
      
 114 
     | 
    
         
            +
            - ā
 **Authentication returns password hash** matching your working scripts
         
     | 
| 
      
 115 
     | 
    
         
            +
            - ā
 **GetCaseList returns case data** (including "AARONS vs. JAREKA LEWIS")
         
     | 
| 
      
 116 
     | 
    
         
            +
            - ā
 **No certificate errors** or WS-Security failures
         
     | 
| 
      
 117 
     | 
    
         
            +
            - ā
 **Same results** as your proven working implementations
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
            ## š Next Steps After Successful Test
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
            1. **š Report any issues** found during alpha testing
         
     | 
| 
      
 122 
     | 
    
         
            +
            2. **š” Suggest improvements** for the stable v1.0.0 release  
         
     | 
| 
      
 123 
     | 
    
         
            +
            3. **š Share feedback** on the developer experience
         
     | 
| 
      
 124 
     | 
    
         
            +
            4. **š Celebrate** - you're using the first Tyler EFM Client Ruby gem!
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
            ## š Support Resources
         
     | 
| 
      
 127 
     | 
    
         
            +
             
     | 
| 
      
 128 
     | 
    
         
            +
            - **Issues**: [GitHub Issues](https://github.com/tyler-technologies/cj-esol-efm-client-ruby/issues)
         
     | 
| 
      
 129 
     | 
    
         
            +
            - **Documentation**: [Developer Portal](https://tyler-technologies.github.io/cj-esol-efm-client-developer-portal/)
         
     | 
| 
      
 130 
     | 
    
         
            +
            - **Tyler Support**: ecf-support@tylertech.com
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
            ---
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
            **š§Ŗ Ready to test the future of Tyler ECF integration!**
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Configuration files with sensitive data
         
     | 
| 
      
 2 
     | 
    
         
            +
            config.json
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            # Certificate files
         
     | 
| 
      
 5 
     | 
    
         
            +
            *.pfx
         
     | 
| 
      
 6 
     | 
    
         
            +
            *.pem
         
     | 
| 
      
 7 
     | 
    
         
            +
            *.key
         
     | 
| 
      
 8 
     | 
    
         
            +
            *.p12
         
     | 
| 
      
 9 
     | 
    
         
            +
            *.crt
         
     | 
| 
      
 10 
     | 
    
         
            +
            *.cer
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            # Bundler
         
     | 
| 
      
 13 
     | 
    
         
            +
            .bundle/
         
     | 
| 
      
 14 
     | 
    
         
            +
            vendor/
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            # Ruby
         
     | 
| 
      
 17 
     | 
    
         
            +
            *.gem
         
     | 
| 
      
 18 
     | 
    
         
            +
            .rbenv-version
         
     | 
| 
      
 19 
     | 
    
         
            +
            .ruby-version
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            # Logs
         
     | 
| 
      
 22 
     | 
    
         
            +
            *.log
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            # OS generated files
         
     | 
| 
      
 25 
     | 
    
         
            +
            .DS_Store
         
     | 
| 
      
 26 
     | 
    
         
            +
            .DS_Store?
         
     | 
| 
      
 27 
     | 
    
         
            +
            ._*
         
     | 
| 
      
 28 
     | 
    
         
            +
            .Spotlight-V100
         
     | 
| 
      
 29 
     | 
    
         
            +
            .Trashes
         
     | 
| 
      
 30 
     | 
    
         
            +
            ehthumbs.db
         
     | 
| 
      
 31 
     | 
    
         
            +
            Thumbs.db
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            source 'https://rubygems.org'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            # Use the alpha version of Tyler EFM Client
         
     | 
| 
      
 6 
     | 
    
         
            +
            gem 'tyler_efm_client', '~> 1.0.0.pre.alpha.1'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            # Additional gems for the sample application
         
     | 
| 
      
 9 
     | 
    
         
            +
            gem 'json', '~> 2.6'
         
     | 
| 
      
 10 
     | 
    
         
            +
            gem 'optparse', '~> 0.2'
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            group :development do
         
     | 
| 
      
 13 
     | 
    
         
            +
              gem 'rubocop', '~> 1.0', require: false
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,160 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Tyler EFM Client Ruby Gem - Sample Application
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            š§Ŗ **Alpha Testing Application** for the Tyler EFM Client Ruby gem.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            This sample application demonstrates how to use the `tyler_efm_client` gem to authenticate with Tyler EFM services and retrieve case lists.
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ## š Quick Start
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ### 1. Install Dependencies
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 12 
     | 
    
         
            +
            # Install the alpha gem and dependencies
         
     | 
| 
      
 13 
     | 
    
         
            +
            bundle install
         
     | 
| 
      
 14 
     | 
    
         
            +
            ```
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            ### 2. Configure Credentials
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 19 
     | 
    
         
            +
            # Copy the example configuration
         
     | 
| 
      
 20 
     | 
    
         
            +
            cp config.example.json config.json
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            # Edit config.json with your actual credentials
         
     | 
| 
      
 23 
     | 
    
         
            +
            nano config.json
         
     | 
| 
      
 24 
     | 
    
         
            +
            ```
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            **Required Configuration:**
         
     | 
| 
      
 27 
     | 
    
         
            +
            - **Certificate file**: Path to your Tyler PFX certificate
         
     | 
| 
      
 28 
     | 
    
         
            +
            - **Certificate password**: Password for the PFX file
         
     | 
| 
      
 29 
     | 
    
         
            +
            - **User credentials**: Your Tyler EFM email and password
         
     | 
| 
      
 30 
     | 
    
         
            +
            - **Service URLs**: Tyler staging or production endpoints
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            ### 3. Run the Sample Application
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 35 
     | 
    
         
            +
            # Run with default config.json
         
     | 
| 
      
 36 
     | 
    
         
            +
            ruby sample_app.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            # Or specify a different config file
         
     | 
| 
      
 39 
     | 
    
         
            +
            ruby sample_app.rb --config my_config.json
         
     | 
| 
      
 40 
     | 
    
         
            +
            ```
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            ## š What It Does
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            The sample application performs these steps:
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            1. **š Authentication**
         
     | 
| 
      
 47 
     | 
    
         
            +
               - Loads your PFX certificate
         
     | 
| 
      
 48 
     | 
    
         
            +
               - Creates WS-Security digital signatures (RSA-SHA1/SHA1)
         
     | 
| 
      
 49 
     | 
    
         
            +
               - Authenticates with Tyler EFM User Service
         
     | 
| 
      
 50 
     | 
    
         
            +
               - Retrieves password hash for subsequent calls
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            2. **š Case List Retrieval**
         
     | 
| 
      
 53 
     | 
    
         
            +
               - Uses the password hash from authentication
         
     | 
| 
      
 54 
     | 
    
         
            +
               - Calls Tyler Court Record Service GetCaseList operation
         
     | 
| 
      
 55 
     | 
    
         
            +
               - Displays case information in a readable format
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            ## š» Example Output
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            ```
         
     | 
| 
      
 60 
     | 
    
         
            +
            šÆ Tyler EFM Client Ruby Gem - Sample Application
         
     | 
| 
      
 61 
     | 
    
         
            +
            š¦ Using alpha version: 1.0.0.pre.alpha.1
         
     | 
| 
      
 62 
     | 
    
         
            +
            ============================================================
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            š Step 1: Authenticating with Tyler EFM...
         
     | 
| 
      
 65 
     | 
    
         
            +
            ā
 Authentication successful!
         
     | 
| 
      
 66 
     | 
    
         
            +
            š¤ User: John Doe
         
     | 
| 
      
 67 
     | 
    
         
            +
            š§ Email: john.doe@example.com
         
     | 
| 
      
 68 
     | 
    
         
            +
            š Password Hash: 5c31af92-391e-4ca2-a530-3ee61af1fa37
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            š Step 2: Retrieving case list...
         
     | 
| 
      
 71 
     | 
    
         
            +
            ā
 Case list retrieved successfully!
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            š Found 3 cases:
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            1. Case: 23MPF011258
         
     | 
| 
      
 76 
     | 
    
         
            +
               Title: AARONS vs. JAREKA LEWIS
         
     | 
| 
      
 77 
     | 
    
         
            +
               Status: Active
         
     | 
| 
      
 78 
     | 
    
         
            +
               Court: Georgia Magistrate Court
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            2. Case: 23CV001234
         
     | 
| 
      
 81 
     | 
    
         
            +
               Title: SMITH vs. JONES
         
     | 
| 
      
 82 
     | 
    
         
            +
               Status: Pending
         
     | 
| 
      
 83 
     | 
    
         
            +
               Court: Georgia Superior Court
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            3. Case: 23TR005678
         
     | 
| 
      
 86 
     | 
    
         
            +
               Title: STATE vs. JOHNSON
         
     | 
| 
      
 87 
     | 
    
         
            +
               Status: Closed
         
     | 
| 
      
 88 
     | 
    
         
            +
               Court: Georgia Municipal Court
         
     | 
| 
      
 89 
     | 
    
         
            +
            ```
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            ## š§ Configuration Options
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
            ### config.json Structure
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            ```json
         
     | 
| 
      
 96 
     | 
    
         
            +
            {
         
     | 
| 
      
 97 
     | 
    
         
            +
              "service": {
         
     | 
| 
      
 98 
     | 
    
         
            +
                "user_service_url": "https://georgia-stage.tylertech.cloud/EFM/EFMUserService.svc",
         
     | 
| 
      
 99 
     | 
    
         
            +
                "court_service_url": "https://georgia-stage.tylertech.cloud/efm/v5/CourtRecordService.svc"
         
     | 
| 
      
 100 
     | 
    
         
            +
              },
         
     | 
| 
      
 101 
     | 
    
         
            +
              "certificate": {
         
     | 
| 
      
 102 
     | 
    
         
            +
                "pfx_file": "path/to/your/certificate.pfx",
         
     | 
| 
      
 103 
     | 
    
         
            +
                "pfx_password": "your_pfx_password"
         
     | 
| 
      
 104 
     | 
    
         
            +
              },
         
     | 
| 
      
 105 
     | 
    
         
            +
              "credentials": {
         
     | 
| 
      
 106 
     | 
    
         
            +
                "email": "your-email@domain.com",
         
     | 
| 
      
 107 
     | 
    
         
            +
                "password": "your-password"
         
     | 
| 
      
 108 
     | 
    
         
            +
              },
         
     | 
| 
      
 109 
     | 
    
         
            +
              "court": {
         
     | 
| 
      
 110 
     | 
    
         
            +
                "court_id": "georgia:statewide"
         
     | 
| 
      
 111 
     | 
    
         
            +
              }
         
     | 
| 
      
 112 
     | 
    
         
            +
            }
         
     | 
| 
      
 113 
     | 
    
         
            +
            ```
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
            ### Environment Options
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
            - **Production URLs**: Use Tyler production service endpoints
         
     | 
| 
      
 118 
     | 
    
         
            +
            - **Different Courts**: Change `court_id` for specific jurisdictions
         
     | 
| 
      
 119 
     | 
    
         
            +
            - **Debug Mode**: Set `DEBUG=1` environment variable for detailed error traces
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
            ## š§Ŗ Alpha Testing Notes
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
            This application uses the **alpha version** of the Tyler EFM Client gem:
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
            ### ā
 What Works
         
     | 
| 
      
 126 
     | 
    
         
            +
            - **Authentication**: Complete WS-Security implementation
         
     | 
| 
      
 127 
     | 
    
         
            +
            - **GetCaseList**: Retrieves case data successfully
         
     | 
| 
      
 128 
     | 
    
         
            +
            - **Certificate handling**: Automatic PFX processing
         
     | 
| 
      
 129 
     | 
    
         
            +
            - **Error handling**: Comprehensive error reporting
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
            ### ā ļø  Alpha Limitations
         
     | 
| 
      
 132 
     | 
    
         
            +
            - **Limited testing**: May have edge cases not yet discovered
         
     | 
| 
      
 133 
     | 
    
         
            +
            - **API stability**: Methods may change before v1.0.0 stable
         
     | 
| 
      
 134 
     | 
    
         
            +
            - **Documentation**: Some features may not be fully documented
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
            ### š Feedback Welcome
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
            Please report any issues or suggestions:
         
     | 
| 
      
 139 
     | 
    
         
            +
            - [GitHub Issues](https://github.com/tyler-technologies/cj-esol-efm-client-ruby/issues)
         
     | 
| 
      
 140 
     | 
    
         
            +
            - Tyler Support: ecf-support@tylertech.com
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
            ## š Additional Examples
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
            The `examples/` directory contains more specialized examples:
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
            - `simple_auth.rb` - Basic authentication only
         
     | 
| 
      
 147 
     | 
    
         
            +
            - `advanced_soap.rb` - Custom SOAP operations
         
     | 
| 
      
 148 
     | 
    
         
            +
            - `error_handling.rb` - Comprehensive error handling patterns
         
     | 
| 
      
 149 
     | 
    
         
            +
            - `batch_operations.rb` - Multiple service calls
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
            ## š Resources
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
            - [Tyler EFM Client Ruby Gem](https://rubygems.org/gems/tyler_efm_client)
         
     | 
| 
      
 154 
     | 
    
         
            +
            - [Developer Portal](https://tyler-technologies.github.io/cj-esol-efm-client-developer-portal/)
         
     | 
| 
      
 155 
     | 
    
         
            +
            - [Python SDK](https://github.com/tyler-technologies/cj-esol-efm-client-python)
         
     | 
| 
      
 156 
     | 
    
         
            +
            - [Tyler ECF Documentation](https://github.com/tyler-technologies/cj-esol-efm-client-management)
         
     | 
| 
      
 157 
     | 
    
         
            +
             
     | 
| 
      
 158 
     | 
    
         
            +
            ---
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
            **š Built for Tyler ECF integration partners using the alpha Tyler EFM Client Ruby gem.**
         
     | 
| 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {
         
     | 
| 
      
 2 
     | 
    
         
            +
              "service": {
         
     | 
| 
      
 3 
     | 
    
         
            +
                "user_service_url": "https://georgia-stage.tylertech.cloud/EFM/EFMUserService.svc",
         
     | 
| 
      
 4 
     | 
    
         
            +
                "court_service_url": "https://georgia-stage.tylertech.cloud/efm/v5/CourtRecordService.svc"
         
     | 
| 
      
 5 
     | 
    
         
            +
              },
         
     | 
| 
      
 6 
     | 
    
         
            +
              "certificate": {
         
     | 
| 
      
 7 
     | 
    
         
            +
                "pfx_file": "path/to/your/certificate.pfx",
         
     | 
| 
      
 8 
     | 
    
         
            +
                "pfx_password": "your_pfx_password"
         
     | 
| 
      
 9 
     | 
    
         
            +
              },
         
     | 
| 
      
 10 
     | 
    
         
            +
              "credentials": {
         
     | 
| 
      
 11 
     | 
    
         
            +
                "email": "your-email@domain.com",
         
     | 
| 
      
 12 
     | 
    
         
            +
                "password": "your-password"
         
     | 
| 
      
 13 
     | 
    
         
            +
              },
         
     | 
| 
      
 14 
     | 
    
         
            +
              "court": {
         
     | 
| 
      
 15 
     | 
    
         
            +
                "court_id": "georgia:statewide"
         
     | 
| 
      
 16 
     | 
    
         
            +
              }
         
     | 
| 
      
 17 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -0,0 +1,187 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            require 'tyler_efm_client'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'optparse'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            # Sample Tyler EFM Client Application
         
     | 
| 
      
 9 
     | 
    
         
            +
            # Demonstrates authentication and GetCaseList using the alpha gem
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            class TylerEFMSampleApp
         
     | 
| 
      
 12 
     | 
    
         
            +
              def initialize(config_file = 'config.json')
         
     | 
| 
      
 13 
     | 
    
         
            +
                @config_file = config_file
         
     | 
| 
      
 14 
     | 
    
         
            +
                @config = load_config
         
     | 
| 
      
 15 
     | 
    
         
            +
                @client = TylerEfmClient::Client.new
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              def run
         
     | 
| 
      
 19 
     | 
    
         
            +
                puts "šÆ Tyler EFM Client Ruby Gem - Sample Application"
         
     | 
| 
      
 20 
     | 
    
         
            +
                puts "š¦ Using alpha version: #{TylerEfmClient::VERSION}"
         
     | 
| 
      
 21 
     | 
    
         
            +
                puts "=" * 60
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                # Step 1: Authenticate
         
     | 
| 
      
 24 
     | 
    
         
            +
                puts "\nš Step 1: Authenticating with Tyler EFM..."
         
     | 
| 
      
 25 
     | 
    
         
            +
                auth_result = authenticate
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                if auth_result[:success]
         
     | 
| 
      
 28 
     | 
    
         
            +
                  puts "ā
 Authentication successful!"
         
     | 
| 
      
 29 
     | 
    
         
            +
                  puts "š¤ User: #{auth_result[:first_name]} #{auth_result[:last_name]}"
         
     | 
| 
      
 30 
     | 
    
         
            +
                  puts "š§ Email: #{auth_result[:email]}"
         
     | 
| 
      
 31 
     | 
    
         
            +
                  puts "š Password Hash: #{auth_result[:password_hash]}"
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  # Step 2: Get Case List
         
     | 
| 
      
 34 
     | 
    
         
            +
                  puts "\nš Step 2: Retrieving case list..."
         
     | 
| 
      
 35 
     | 
    
         
            +
                  case_result = get_case_list(auth_result[:password_hash])
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  if case_result[:success]
         
     | 
| 
      
 38 
     | 
    
         
            +
                    puts "ā
 Case list retrieved successfully!"
         
     | 
| 
      
 39 
     | 
    
         
            +
                    display_cases(case_result[:data])
         
     | 
| 
      
 40 
     | 
    
         
            +
                  else
         
     | 
| 
      
 41 
     | 
    
         
            +
                    puts "ā Failed to retrieve case list: #{case_result[:error_message]}"
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
                else
         
     | 
| 
      
 44 
     | 
    
         
            +
                  puts "ā Authentication failed: #{auth_result[:error_message]}"
         
     | 
| 
      
 45 
     | 
    
         
            +
                  exit 1
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              private
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
              def load_config
         
     | 
| 
      
 52 
     | 
    
         
            +
                unless File.exist?(@config_file)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  puts "ā Configuration file not found: #{@config_file}"
         
     | 
| 
      
 54 
     | 
    
         
            +
                  puts "š Please copy config.example.json to #{@config_file} and update with your credentials."
         
     | 
| 
      
 55 
     | 
    
         
            +
                  exit 1
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                JSON.parse(File.read(@config_file), symbolize_names: true)
         
     | 
| 
      
 59 
     | 
    
         
            +
              rescue JSON::ParserError => e
         
     | 
| 
      
 60 
     | 
    
         
            +
                puts "ā Invalid JSON in configuration file: #{e.message}"
         
     | 
| 
      
 61 
     | 
    
         
            +
                exit 1
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
              def authenticate
         
     | 
| 
      
 65 
     | 
    
         
            +
                @client.authenticate(
         
     | 
| 
      
 66 
     | 
    
         
            +
                  base_url: @config[:service][:user_service_url],
         
     | 
| 
      
 67 
     | 
    
         
            +
                  pfx_file: @config[:certificate][:pfx_file],
         
     | 
| 
      
 68 
     | 
    
         
            +
                  pfx_password: @config[:certificate][:pfx_password],
         
     | 
| 
      
 69 
     | 
    
         
            +
                  user_email: @config[:credentials][:email],
         
     | 
| 
      
 70 
     | 
    
         
            +
                  user_password: @config[:credentials][:password]
         
     | 
| 
      
 71 
     | 
    
         
            +
                )
         
     | 
| 
      
 72 
     | 
    
         
            +
              rescue StandardError => e
         
     | 
| 
      
 73 
     | 
    
         
            +
                {
         
     | 
| 
      
 74 
     | 
    
         
            +
                  success: false,
         
     | 
| 
      
 75 
     | 
    
         
            +
                  error_message: "Authentication error: #{e.message}"
         
     | 
| 
      
 76 
     | 
    
         
            +
                }
         
     | 
| 
      
 77 
     | 
    
         
            +
              end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
              def get_case_list(password_hash)
         
     | 
| 
      
 80 
     | 
    
         
            +
                # Create SOAP body for GetCaseList operation
         
     | 
| 
      
 81 
     | 
    
         
            +
                soap_body = build_get_case_list_soap_body
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                @client.call_service(
         
     | 
| 
      
 84 
     | 
    
         
            +
                  base_url: @config[:service][:court_service_url],
         
     | 
| 
      
 85 
     | 
    
         
            +
                  password_hash: password_hash,
         
     | 
| 
      
 86 
     | 
    
         
            +
                  operation: 'GetCaseList',
         
     | 
| 
      
 87 
     | 
    
         
            +
                  soap_body: soap_body,
         
     | 
| 
      
 88 
     | 
    
         
            +
                  user_email: @config[:credentials][:email],
         
     | 
| 
      
 89 
     | 
    
         
            +
                  pfx_file: @config[:certificate][:pfx_file],
         
     | 
| 
      
 90 
     | 
    
         
            +
                  pfx_password: @config[:certificate][:pfx_password],
         
     | 
| 
      
 91 
     | 
    
         
            +
                  return_json: true
         
     | 
| 
      
 92 
     | 
    
         
            +
                )
         
     | 
| 
      
 93 
     | 
    
         
            +
              rescue StandardError => e
         
     | 
| 
      
 94 
     | 
    
         
            +
                {
         
     | 
| 
      
 95 
     | 
    
         
            +
                  success: false,
         
     | 
| 
      
 96 
     | 
    
         
            +
                  error_message: "GetCaseList error: #{e.message}"
         
     | 
| 
      
 97 
     | 
    
         
            +
                }
         
     | 
| 
      
 98 
     | 
    
         
            +
              end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
              def build_get_case_list_soap_body
         
     | 
| 
      
 101 
     | 
    
         
            +
                court_id = @config[:court][:court_id]
         
     | 
| 
      
 102 
     | 
    
         
            +
                
         
     | 
| 
      
 103 
     | 
    
         
            +
                <<~SOAP
         
     | 
| 
      
 104 
     | 
    
         
            +
                  <wrappers:GetCaseListRequest xmlns:wrappers="https://docs.oasis-open.org/legalxml-courtfiling/ns/v5.0/wrappers">
         
     | 
| 
      
 105 
     | 
    
         
            +
                    <wrappers:CourtLocationId>
         
     | 
| 
      
 106 
     | 
    
         
            +
                      <nc:IdentificationID>#{court_id}</nc:IdentificationID>
         
     | 
| 
      
 107 
     | 
    
         
            +
                    </wrappers:CourtLocationId>
         
     | 
| 
      
 108 
     | 
    
         
            +
                    <wrappers:CaseListQueryMessage>
         
     | 
| 
      
 109 
     | 
    
         
            +
                      <ecf:ElectronicCourtFilingQueryMessage xmlns:ecf="https://docs.oasis-open.org/legalxml-courtfiling/ns/v5.0/ecf">
         
     | 
| 
      
 110 
     | 
    
         
            +
                        <nc:DocumentIdentification xmlns:nc="http://niem.gov/niem/niem-core/2.0">
         
     | 
| 
      
 111 
     | 
    
         
            +
                          <nc:IdentificationID>GetCaseList-#{Time.now.to_i}</nc:IdentificationID>
         
     | 
| 
      
 112 
     | 
    
         
            +
                        </nc:DocumentIdentification>
         
     | 
| 
      
 113 
     | 
    
         
            +
                        <nc:DocumentSubmitter xmlns:nc="http://niem.gov/niem/niem-core/2.0">
         
     | 
| 
      
 114 
     | 
    
         
            +
                          <nc:EntityRepresentation>
         
     | 
| 
      
 115 
     | 
    
         
            +
                            <nc:EntityPerson>
         
     | 
| 
      
 116 
     | 
    
         
            +
                              <nc:PersonName>
         
     | 
| 
      
 117 
     | 
    
         
            +
                                <nc:PersonFullName>Sample Application User</nc:PersonFullName>
         
     | 
| 
      
 118 
     | 
    
         
            +
                              </nc:PersonName>
         
     | 
| 
      
 119 
     | 
    
         
            +
                            </nc:EntityPerson>
         
     | 
| 
      
 120 
     | 
    
         
            +
                          </nc:EntityRepresentation>
         
     | 
| 
      
 121 
     | 
    
         
            +
                        </nc:DocumentSubmitter>
         
     | 
| 
      
 122 
     | 
    
         
            +
                        <ecf:CaseListQueryCriteria>
         
     | 
| 
      
 123 
     | 
    
         
            +
                          <ecf:CaseParticipantRoleCode>Party</ecf:CaseParticipantRoleCode>
         
     | 
| 
      
 124 
     | 
    
         
            +
                        </ecf:CaseListQueryCriteria>
         
     | 
| 
      
 125 
     | 
    
         
            +
                      </ecf:ElectronicCourtFilingQueryMessage>
         
     | 
| 
      
 126 
     | 
    
         
            +
                    </wrappers:CaseListQueryMessage>
         
     | 
| 
      
 127 
     | 
    
         
            +
                  </wrappers:GetCaseListRequest>
         
     | 
| 
      
 128 
     | 
    
         
            +
                SOAP
         
     | 
| 
      
 129 
     | 
    
         
            +
              end
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
              def display_cases(case_data)
         
     | 
| 
      
 132 
     | 
    
         
            +
                if case_data.is_a?(Hash) && case_data['cases']
         
     | 
| 
      
 133 
     | 
    
         
            +
                  cases = case_data['cases']
         
     | 
| 
      
 134 
     | 
    
         
            +
                  puts "\nš Found #{cases.length} cases:"
         
     | 
| 
      
 135 
     | 
    
         
            +
                  
         
     | 
| 
      
 136 
     | 
    
         
            +
                  cases.each_with_index do |case_info, index|
         
     | 
| 
      
 137 
     | 
    
         
            +
                    puts "\n#{index + 1}. Case: #{case_info['case_number'] || 'Unknown'}"
         
     | 
| 
      
 138 
     | 
    
         
            +
                    puts "   Title: #{case_info['case_title'] || 'No title'}"
         
     | 
| 
      
 139 
     | 
    
         
            +
                    puts "   Status: #{case_info['status'] || 'Unknown'}"
         
     | 
| 
      
 140 
     | 
    
         
            +
                    puts "   Court: #{case_info['court'] || 'Unknown'}"
         
     | 
| 
      
 141 
     | 
    
         
            +
                  end
         
     | 
| 
      
 142 
     | 
    
         
            +
                elsif case_data.is_a?(String)
         
     | 
| 
      
 143 
     | 
    
         
            +
                  # Raw XML response
         
     | 
| 
      
 144 
     | 
    
         
            +
                  puts "\nš Raw XML Response (first 500 characters):"
         
     | 
| 
      
 145 
     | 
    
         
            +
                  puts case_data[0..500]
         
     | 
| 
      
 146 
     | 
    
         
            +
                  puts "..." if case_data.length > 500
         
     | 
| 
      
 147 
     | 
    
         
            +
                else
         
     | 
| 
      
 148 
     | 
    
         
            +
                  puts "\nš Response data:"
         
     | 
| 
      
 149 
     | 
    
         
            +
                  puts case_data.inspect
         
     | 
| 
      
 150 
     | 
    
         
            +
                end
         
     | 
| 
      
 151 
     | 
    
         
            +
              end
         
     | 
| 
      
 152 
     | 
    
         
            +
            end
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
            # Command line interface
         
     | 
| 
      
 155 
     | 
    
         
            +
            def main
         
     | 
| 
      
 156 
     | 
    
         
            +
              options = {}
         
     | 
| 
      
 157 
     | 
    
         
            +
              
         
     | 
| 
      
 158 
     | 
    
         
            +
              OptionParser.new do |opts|
         
     | 
| 
      
 159 
     | 
    
         
            +
                opts.banner = "Usage: ruby sample_app.rb [options]"
         
     | 
| 
      
 160 
     | 
    
         
            +
                
         
     | 
| 
      
 161 
     | 
    
         
            +
                opts.on('-c', '--config FILE', 'Configuration file (default: config.json)') do |file|
         
     | 
| 
      
 162 
     | 
    
         
            +
                  options[:config] = file
         
     | 
| 
      
 163 
     | 
    
         
            +
                end
         
     | 
| 
      
 164 
     | 
    
         
            +
                
         
     | 
| 
      
 165 
     | 
    
         
            +
                opts.on('-h', '--help', 'Show this help message') do
         
     | 
| 
      
 166 
     | 
    
         
            +
                  puts opts
         
     | 
| 
      
 167 
     | 
    
         
            +
                  exit
         
     | 
| 
      
 168 
     | 
    
         
            +
                end
         
     | 
| 
      
 169 
     | 
    
         
            +
              end.parse!
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
              config_file = options[:config] || 'config.json'
         
     | 
| 
      
 172 
     | 
    
         
            +
              
         
     | 
| 
      
 173 
     | 
    
         
            +
              begin
         
     | 
| 
      
 174 
     | 
    
         
            +
                app = TylerEFMSampleApp.new(config_file)
         
     | 
| 
      
 175 
     | 
    
         
            +
                app.run
         
     | 
| 
      
 176 
     | 
    
         
            +
              rescue Interrupt
         
     | 
| 
      
 177 
     | 
    
         
            +
                puts "\n\nš Application interrupted by user"
         
     | 
| 
      
 178 
     | 
    
         
            +
                exit 0
         
     | 
| 
      
 179 
     | 
    
         
            +
              rescue StandardError => e
         
     | 
| 
      
 180 
     | 
    
         
            +
                puts "\nā Application error: #{e.message}"
         
     | 
| 
      
 181 
     | 
    
         
            +
                puts "š #{e.backtrace.first}" if ENV['DEBUG']
         
     | 
| 
      
 182 
     | 
    
         
            +
                exit 1
         
     | 
| 
      
 183 
     | 
    
         
            +
              end
         
     | 
| 
      
 184 
     | 
    
         
            +
            end
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
            # Run the application if this file is executed directly
         
     | 
| 
      
 187 
     | 
    
         
            +
            main if __FILE__ == $PROGRAM_NAME
         
     | 
| 
         @@ -0,0 +1,147 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            require 'tyler_efm_client'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            # Test the alpha gem with working configuration
         
     | 
| 
      
 8 
     | 
    
         
            +
            # This uses the same config as your working Python/Ruby implementations
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            class AlphaGemTester
         
     | 
| 
      
 11 
     | 
    
         
            +
              def initialize
         
     | 
| 
      
 12 
     | 
    
         
            +
                # Load configuration from the working setup
         
     | 
| 
      
 13 
     | 
    
         
            +
                @config_path = '../../../python_auth/config.json'
         
     | 
| 
      
 14 
     | 
    
         
            +
                @config = load_config
         
     | 
| 
      
 15 
     | 
    
         
            +
                @client = TylerEfmClient::Client.new
         
     | 
| 
      
 16 
     | 
    
         
            +
                
         
     | 
| 
      
 17 
     | 
    
         
            +
                puts "š§Ŗ Testing Tyler EFM Client Ruby Gem Alpha Version"
         
     | 
| 
      
 18 
     | 
    
         
            +
                puts "š¦ Gem Version: #{TylerEfmClient::VERSION}"
         
     | 
| 
      
 19 
     | 
    
         
            +
                puts "š Using config: #{@config_path}"
         
     | 
| 
      
 20 
     | 
    
         
            +
                puts "=" * 60
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              def run_test
         
     | 
| 
      
 24 
     | 
    
         
            +
                # Test 1: Authentication
         
     | 
| 
      
 25 
     | 
    
         
            +
                puts "\nš Test 1: Authentication"
         
     | 
| 
      
 26 
     | 
    
         
            +
                auth_result = test_authentication
         
     | 
| 
      
 27 
     | 
    
         
            +
                
         
     | 
| 
      
 28 
     | 
    
         
            +
                if auth_result[:success]
         
     | 
| 
      
 29 
     | 
    
         
            +
                  puts "ā
 Authentication test passed!"
         
     | 
| 
      
 30 
     | 
    
         
            +
                  
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # Test 2: GetCaseList
         
     | 
| 
      
 32 
     | 
    
         
            +
                  puts "\nš Test 2: GetCaseList Operation"
         
     | 
| 
      
 33 
     | 
    
         
            +
                  case_result = test_get_case_list(auth_result[:password_hash])
         
     | 
| 
      
 34 
     | 
    
         
            +
                  
         
     | 
| 
      
 35 
     | 
    
         
            +
                  if case_result[:success]
         
     | 
| 
      
 36 
     | 
    
         
            +
                    puts "ā
 GetCaseList test passed!"
         
     | 
| 
      
 37 
     | 
    
         
            +
                    puts "\nš All alpha gem tests successful!"
         
     | 
| 
      
 38 
     | 
    
         
            +
                  else
         
     | 
| 
      
 39 
     | 
    
         
            +
                    puts "ā GetCaseList test failed: #{case_result[:error_message]}"
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
                else
         
     | 
| 
      
 42 
     | 
    
         
            +
                  puts "ā Authentication test failed: #{auth_result[:error_message]}"
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              private
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              def load_config
         
     | 
| 
      
 49 
     | 
    
         
            +
                full_path = File.expand_path(@config_path, __FILE__)
         
     | 
| 
      
 50 
     | 
    
         
            +
                
         
     | 
| 
      
 51 
     | 
    
         
            +
                unless File.exist?(full_path)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  puts "ā Config file not found: #{full_path}"
         
     | 
| 
      
 53 
     | 
    
         
            +
                  puts "š Make sure you have config.json in your python_auth directory"
         
     | 
| 
      
 54 
     | 
    
         
            +
                  exit 1
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                JSON.parse(File.read(full_path), symbolize_names: true)
         
     | 
| 
      
 58 
     | 
    
         
            +
              rescue JSON::ParserError => e
         
     | 
| 
      
 59 
     | 
    
         
            +
                puts "ā Invalid JSON in config file: #{e.message}"
         
     | 
| 
      
 60 
     | 
    
         
            +
                exit 1
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              def test_authentication
         
     | 
| 
      
 64 
     | 
    
         
            +
                puts "   š Authenticating with Tyler EFM User Service..."
         
     | 
| 
      
 65 
     | 
    
         
            +
                
         
     | 
| 
      
 66 
     | 
    
         
            +
                @client.authenticate(
         
     | 
| 
      
 67 
     | 
    
         
            +
                  base_url: @config[:service][:endpoint],
         
     | 
| 
      
 68 
     | 
    
         
            +
                  pfx_file: File.expand_path(@config[:certificate][:pfx_file], File.dirname(@config_path)),
         
     | 
| 
      
 69 
     | 
    
         
            +
                  pfx_password: @config[:certificate][:pfx_password],
         
     | 
| 
      
 70 
     | 
    
         
            +
                  user_email: @config[:credentials][:email],
         
     | 
| 
      
 71 
     | 
    
         
            +
                  user_password: @config[:credentials][:password]
         
     | 
| 
      
 72 
     | 
    
         
            +
                )
         
     | 
| 
      
 73 
     | 
    
         
            +
              rescue StandardError => e
         
     | 
| 
      
 74 
     | 
    
         
            +
                {
         
     | 
| 
      
 75 
     | 
    
         
            +
                  success: false,
         
     | 
| 
      
 76 
     | 
    
         
            +
                  error_message: "Authentication error: #{e.message}"
         
     | 
| 
      
 77 
     | 
    
         
            +
                }
         
     | 
| 
      
 78 
     | 
    
         
            +
              end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
              def test_get_case_list(password_hash)
         
     | 
| 
      
 81 
     | 
    
         
            +
                puts "   š Calling GetCaseList with password hash..."
         
     | 
| 
      
 82 
     | 
    
         
            +
                
         
     | 
| 
      
 83 
     | 
    
         
            +
                # Use the same SOAP body structure as your working implementation
         
     | 
| 
      
 84 
     | 
    
         
            +
                soap_body = build_get_case_list_soap
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                court_service_url = @config[:service][:court_service_url] || 
         
     | 
| 
      
 87 
     | 
    
         
            +
                                   "https://georgia-stage.tylertech.cloud/efm/v5/CourtRecordService.svc"
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
                @client.call_service(
         
     | 
| 
      
 90 
     | 
    
         
            +
                  base_url: court_service_url,
         
     | 
| 
      
 91 
     | 
    
         
            +
                  password_hash: password_hash,
         
     | 
| 
      
 92 
     | 
    
         
            +
                  operation: 'GetCaseList',
         
     | 
| 
      
 93 
     | 
    
         
            +
                  soap_body: soap_body,
         
     | 
| 
      
 94 
     | 
    
         
            +
                  user_email: @config[:credentials][:email],
         
     | 
| 
      
 95 
     | 
    
         
            +
                  pfx_file: File.expand_path(@config[:certificate][:pfx_file], File.dirname(@config_path)),
         
     | 
| 
      
 96 
     | 
    
         
            +
                  pfx_password: @config[:certificate][:pfx_password],
         
     | 
| 
      
 97 
     | 
    
         
            +
                  return_json: false  # Get raw XML first for debugging
         
     | 
| 
      
 98 
     | 
    
         
            +
                )
         
     | 
| 
      
 99 
     | 
    
         
            +
              rescue StandardError => e
         
     | 
| 
      
 100 
     | 
    
         
            +
                {
         
     | 
| 
      
 101 
     | 
    
         
            +
                  success: false,
         
     | 
| 
      
 102 
     | 
    
         
            +
                  error_message: "GetCaseList error: #{e.message}"
         
     | 
| 
      
 103 
     | 
    
         
            +
                }
         
     | 
| 
      
 104 
     | 
    
         
            +
              end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
              def build_get_case_list_soap
         
     | 
| 
      
 107 
     | 
    
         
            +
                # Simple GetCaseList request - matches your working implementation pattern
         
     | 
| 
      
 108 
     | 
    
         
            +
                <<~SOAP
         
     | 
| 
      
 109 
     | 
    
         
            +
                  <wrappers:GetCaseListRequest xmlns:wrappers="https://docs.oasis-open.org/legalxml-courtfiling/ns/v5.0/wrappers">
         
     | 
| 
      
 110 
     | 
    
         
            +
                    <wrappers:CourtLocationId>
         
     | 
| 
      
 111 
     | 
    
         
            +
                      <nc:IdentificationID xmlns:nc="http://niem.gov/niem/niem-core/2.0">georgia:statewide</nc:IdentificationID>
         
     | 
| 
      
 112 
     | 
    
         
            +
                    </wrappers:CourtLocationId>
         
     | 
| 
      
 113 
     | 
    
         
            +
                    <wrappers:CaseListQueryMessage>
         
     | 
| 
      
 114 
     | 
    
         
            +
                      <ecf:ElectronicCourtFilingQueryMessage xmlns:ecf="https://docs.oasis-open.org/legalxml-courtfiling/ns/v5.0/ecf">
         
     | 
| 
      
 115 
     | 
    
         
            +
                        <nc:DocumentIdentification xmlns:nc="http://niem.gov/niem/niem-core/2.0">
         
     | 
| 
      
 116 
     | 
    
         
            +
                          <nc:IdentificationID>GetCaseList-Test-#{Time.now.to_i}</nc:IdentificationID>
         
     | 
| 
      
 117 
     | 
    
         
            +
                        </nc:DocumentIdentification>
         
     | 
| 
      
 118 
     | 
    
         
            +
                        <nc:DocumentSubmitter xmlns:nc="http://niem.gov/niem/niem-core/2.0">
         
     | 
| 
      
 119 
     | 
    
         
            +
                          <nc:EntityRepresentation>
         
     | 
| 
      
 120 
     | 
    
         
            +
                            <nc:EntityPerson>
         
     | 
| 
      
 121 
     | 
    
         
            +
                              <nc:PersonName>
         
     | 
| 
      
 122 
     | 
    
         
            +
                                <nc:PersonFullName>Alpha Gem Tester</nc:PersonFullName>
         
     | 
| 
      
 123 
     | 
    
         
            +
                              </nc:PersonName>
         
     | 
| 
      
 124 
     | 
    
         
            +
                            </nc:EntityPerson>
         
     | 
| 
      
 125 
     | 
    
         
            +
                          </nc:EntityRepresentation>
         
     | 
| 
      
 126 
     | 
    
         
            +
                        </nc:DocumentSubmitter>
         
     | 
| 
      
 127 
     | 
    
         
            +
                        <ecf:CaseListQueryCriteria>
         
     | 
| 
      
 128 
     | 
    
         
            +
                          <ecf:CaseParticipantRoleCode>Party</ecf:CaseParticipantRoleCode>
         
     | 
| 
      
 129 
     | 
    
         
            +
                        </ecf:CaseListQueryCriteria>
         
     | 
| 
      
 130 
     | 
    
         
            +
                      </ecf:ElectronicCourtFilingQueryMessage>
         
     | 
| 
      
 131 
     | 
    
         
            +
                    </wrappers:CaseListQueryMessage>
         
     | 
| 
      
 132 
     | 
    
         
            +
                  </wrappers:GetCaseListRequest>
         
     | 
| 
      
 133 
     | 
    
         
            +
                SOAP
         
     | 
| 
      
 134 
     | 
    
         
            +
              end
         
     | 
| 
      
 135 
     | 
    
         
            +
            end
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
            # Run the test
         
     | 
| 
      
 138 
     | 
    
         
            +
            begin
         
     | 
| 
      
 139 
     | 
    
         
            +
              tester = AlphaGemTester.new
         
     | 
| 
      
 140 
     | 
    
         
            +
              tester.run_test
         
     | 
| 
      
 141 
     | 
    
         
            +
            rescue Interrupt
         
     | 
| 
      
 142 
     | 
    
         
            +
              puts "\n\nš Test interrupted by user"
         
     | 
| 
      
 143 
     | 
    
         
            +
            rescue StandardError => e
         
     | 
| 
      
 144 
     | 
    
         
            +
              puts "\nš„ Test failed with exception: #{e.message}"
         
     | 
| 
      
 145 
     | 
    
         
            +
              puts "š #{e.backtrace.first}" if ENV['DEBUG']
         
     | 
| 
      
 146 
     | 
    
         
            +
              exit 1
         
     | 
| 
      
 147 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            require 'tyler_efm_client'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # Simple authentication example using Tyler EFM Client Ruby gem
         
     | 
| 
      
 7 
     | 
    
         
            +
            # This is the most basic usage - just authenticate and get the password hash
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            puts "š Tyler EFM Client - Basic Authentication Example"
         
     | 
| 
      
 10 
     | 
    
         
            +
            puts "=" * 50
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            # Initialize the client
         
     | 
| 
      
 13 
     | 
    
         
            +
            client = TylerEfmClient::Client.new
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            # Authenticate with Tyler EFM
         
     | 
| 
      
 16 
     | 
    
         
            +
            begin
         
     | 
| 
      
 17 
     | 
    
         
            +
              result = client.authenticate(
         
     | 
| 
      
 18 
     | 
    
         
            +
                base_url: 'https://georgia-stage.tylertech.cloud/EFM/EFMUserService.svc',
         
     | 
| 
      
 19 
     | 
    
         
            +
                pfx_file: 'path/to/your/certificate.pfx',
         
     | 
| 
      
 20 
     | 
    
         
            +
                pfx_password: 'your_pfx_password',
         
     | 
| 
      
 21 
     | 
    
         
            +
                user_email: 'your-email@domain.com',
         
     | 
| 
      
 22 
     | 
    
         
            +
                user_password: 'your_password'
         
     | 
| 
      
 23 
     | 
    
         
            +
              )
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              if result[:success]
         
     | 
| 
      
 26 
     | 
    
         
            +
                puts "ā
 Authentication successful!"
         
     | 
| 
      
 27 
     | 
    
         
            +
                puts "š¤ User: #{result[:first_name]} #{result[:last_name]}"
         
     | 
| 
      
 28 
     | 
    
         
            +
                puts "š§ Email: #{result[:email]}"
         
     | 
| 
      
 29 
     | 
    
         
            +
                puts "š Password Hash: #{result[:password_hash]}"
         
     | 
| 
      
 30 
     | 
    
         
            +
                puts "ā° Expires: #{result[:expiration_date]}"
         
     | 
| 
      
 31 
     | 
    
         
            +
              else
         
     | 
| 
      
 32 
     | 
    
         
            +
                puts "ā Authentication failed!"
         
     | 
| 
      
 33 
     | 
    
         
            +
                puts "šØ Error: #{result[:error_message]}"
         
     | 
| 
      
 34 
     | 
    
         
            +
                puts "š Code: #{result[:error_code]}" if result[:error_code]
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            rescue StandardError => e
         
     | 
| 
      
 38 
     | 
    
         
            +
              puts "š„ Exception occurred: #{e.message}"
         
     | 
| 
      
 39 
     | 
    
         
            +
              puts "š Details: #{e.backtrace.first}" if ENV['DEBUG']
         
     | 
| 
      
 40 
     | 
    
         
            +
            end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            puts "\n⨠That's it! You've successfully used the Tyler EFM Client Ruby gem."
         
     | 
| 
         @@ -315,9 +315,9 @@ puts "Certificate subject: #{cert.certificate.subject}" 
     | 
|
| 
       315 
315 
     | 
    
         
             
            ## š Related Documentation
         
     | 
| 
       316 
316 
     | 
    
         | 
| 
       317 
317 
     | 
    
         
             
            - [Getting Started Guide](../../docs/getting_started.md)
         
     | 
| 
       318 
     | 
    
         
            -
            - [ 
     | 
| 
       319 
     | 
    
         
            -
            - [ 
     | 
| 
       320 
     | 
    
         
            -
            - [ 
     | 
| 
      
 318 
     | 
    
         
            +
            - [Main README](../../README.md)
         
     | 
| 
      
 319 
     | 
    
         
            +
            - [Versioning Guide](../../VERSIONING.md)
         
     | 
| 
      
 320 
     | 
    
         
            +
            - [Ruby Gem Documentation](https://rubygems.org/gems/tyler_efm_client)
         
     | 
| 
       321 
321 
     | 
    
         | 
| 
       322 
322 
     | 
    
         
             
            ## š Support
         
     | 
| 
       323 
323 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: tyler_efm_client
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0.0.pre.alpha. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.0.pre.alpha.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Tyler Technologies ECF Integration Team
         
     | 
| 
         @@ -118,12 +118,21 @@ files: 
     | 
|
| 
       118 
118 
     | 
    
         
             
            - PUBLICATION_GUIDE.md
         
     | 
| 
       119 
119 
     | 
    
         
             
            - README.md
         
     | 
| 
       120 
120 
     | 
    
         
             
            - Rakefile
         
     | 
| 
      
 121 
     | 
    
         
            +
            - VERSIONING.md
         
     | 
| 
       121 
122 
     | 
    
         
             
            - build_gem.rb
         
     | 
| 
       122 
123 
     | 
    
         
             
            - config.example.json
         
     | 
| 
       123 
124 
     | 
    
         
             
            - docs/getting_started.md
         
     | 
| 
      
 125 
     | 
    
         
            +
            - examples/SETUP_AND_TEST.md
         
     | 
| 
       124 
126 
     | 
    
         
             
            - examples/authentication_example.rb
         
     | 
| 
       125 
127 
     | 
    
         
             
            - examples/complete_workflow_example.rb
         
     | 
| 
       126 
128 
     | 
    
         
             
            - examples/getcaselist_example.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - examples/sample_application/.gitignore
         
     | 
| 
      
 130 
     | 
    
         
            +
            - examples/sample_application/Gemfile
         
     | 
| 
      
 131 
     | 
    
         
            +
            - examples/sample_application/README.md
         
     | 
| 
      
 132 
     | 
    
         
            +
            - examples/sample_application/config.example.json
         
     | 
| 
      
 133 
     | 
    
         
            +
            - examples/sample_application/sample_app.rb
         
     | 
| 
      
 134 
     | 
    
         
            +
            - examples/sample_application/test_with_working_config.rb
         
     | 
| 
      
 135 
     | 
    
         
            +
            - examples/simple_examples/basic_auth.rb
         
     | 
| 
       127 
136 
     | 
    
         
             
            - lib/tyler_efm_client.rb
         
     | 
| 
       128 
137 
     | 
    
         
             
            - lib/tyler_efm_client/client.rb
         
     | 
| 
       129 
138 
     | 
    
         
             
            - lib/tyler_efm_client/errors.rb
         
     |