| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 9e355ba commit a448547
20 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,3 +16,4 @@ | |||
| 16 | 16 | # Internal documentation and instructions | |
| 17 | 17 | /docs/internal/* | |
| 18 | 18 | .github/copilot-instructions.md | |
| 19 | + *.gem | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -34,6 +34,12 @@ Metrics/MethodLength: | |||
| 34 | 34 | Max: 15 | |
| 35 | 35 | Exclude: | |
| 36 | 36 | - 'spec/**/*.rb' | |
| 37 | + AllowedMethods: | ||
| 38 | + - connection | ||
| 39 | + | ||
| 40 | + Metrics/AbcSize: | ||
| 41 | + AllowedMethods: | ||
| 42 | + - connection | ||
| 37 | 43 | ||
| 38 | 44 | Layout/LineLength: | |
| 39 | 45 | Max: 120 | |
@@ -48,3 +54,15 @@ RSpec/NestedGroups: | |||
| 48 | 54 | ||
| 49 | 55 | RSpec/ExampleLength: | |
| 50 | 56 | Max: 15 | |
| 57 | + | ||
| 58 | + RSpec/VerifiedDoubles: | ||
| 59 | + Enabled: false | ||
| 60 | + | ||
| 61 | + RSpec/StubbedMock: | ||
| 62 | + Enabled: false | ||
| 63 | + | ||
| 64 | + RSpec/MessageSpies: | ||
| 65 | + Enabled: false | ||
| 66 | + | ||
| 67 | + MultipleDescribes: | ||
| 68 | + Enabled: false | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,6 +16,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
| 16 | 16 | ### Fixed | |
| 17 | 17 | - Nothing yet | |
| 18 | 18 | ||
| 19 | + ## [0.2.0] - 2025-10-31 | ||
| 20 | + | ||
| 21 | + ### Added | ||
| 22 | + - Sprint 1: Core Vistar Media API Client Implementation | ||
| 23 | + - Complete error hierarchy (Error, AuthenticationError, APIError, ConnectionError) | ||
| 24 | + - Client class with credential validation and configuration | ||
| 25 | + - HTTP connection management with Faraday | ||
| 26 | + - Custom error handler middleware with intelligent error parsing | ||
| 27 | + - Automatic retry logic with exponential backoff (3 retries, 429/5xx status codes) | ||
| 28 | + - `request_ad` method for programmatic ad requests | ||
| 29 | + - `submit_proof_of_play` method for ad display confirmation | ||
| 30 | + - Comprehensive parameter validation with descriptive error messages | ||
| 31 | + - Optional debug logging via VISTAR_DEBUG environment variable | ||
| 32 | + - Full test coverage: 118 test examples, 98.73% code coverage | ||
| 33 | + - 100% YARD documentation coverage (8 files, 5 modules, 7 classes, 11 methods) | ||
| 34 | + | ||
| 35 | + ### Changed | ||
| 36 | + - Refactored to modular architecture for extensibility | ||
| 37 | + - Connection class for HTTP client abstraction | ||
| 38 | + - API::Base module for shared API functionality | ||
| 39 | + - API::AdServing module for ad serving endpoints | ||
| 40 | + - Client class uses composition pattern (reduced from 238 to 89 lines) | ||
| 41 | + - Updated README with: | ||
| 42 | + - Architecture documentation | ||
| 43 | + - Comprehensive API method documentation | ||
| 44 | + - Error handling guide | ||
| 45 | + - Extension guide for adding new API modules | ||
| 46 | + - Improved error messages with HTTP status codes and response bodies | ||
| 47 | + | ||
| 48 | + ### Technical Details | ||
| 49 | + - Faraday-based HTTP client with middleware stack | ||
| 50 | + - JSON request/response encoding and parsing | ||
| 51 | + - Method delegation pattern for backward compatibility | ||
| 52 | + - WebMock integration for comprehensive API testing | ||
| 53 | + - RuboCop compliant code style | ||
| 54 | + | ||
| 19 | 55 | ## [0.1.0] - 2025-10-31 | |
| 20 | 56 | ||
| 21 | 57 | ### Added | |
@@ -31,5 +67,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
| 31 | 67 | - Development environment setup (.env, bin/setup, bin/console) | |
| 32 | 68 | - Release and contribution documentation | |
| 33 | 69 | ||
| 34 | - [Unreleased]: https://github.com/Sentia/vistar_client/compare/v0.1.0...HEAD | ||
| 70 | + [Unreleased]: https://github.com/Sentia/vistar_client/compare/v0.2.0...HEAD | ||
| 71 | + [0.2.0]: https://github.com/Sentia/vistar_client/compare/v0.1.0...v0.2.0 | ||
| 35 | 72 | [0.1.0]: https://github.com/Sentia/vistar_client/releases/tag/v0.1.0 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -20,4 +20,5 @@ gem 'rubocop', '~> 1.50' | |||
| 20 | 20 | gem 'rubocop-performance', '~> 1.19' | |
| 21 | 21 | gem 'rubocop-rspec', '~> 2.22' | |
| 22 | 22 | gem 'simplecov', '~> 0.22' | |
| 23 | + gem 'webmock', '~> 3.19' | ||
| 23 | 24 | gem 'yard', '~> 0.9' | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,16 +1,22 @@ | |||
| 1 | 1 | PATH | |
| 2 | 2 | remote: . | |
| 3 | 3 | specs: | |
| 4 | - vistar_client (0.1.0) | ||
| 4 | + vistar_client (0.2.0) | ||
| 5 | 5 | faraday (~> 2.7) | |
| 6 | 6 | faraday-retry (~> 2.2) | |
| 7 | 7 | ||
| 8 | 8 | GEM | |
| 9 | 9 | remote: https://rubygems.org/ | |
| 10 | 10 | specs: | |
| 11 | + addressable (2.8.7) | ||
| 12 | + public_suffix (>= 2.0.2, < 7.0) | ||
| 11 | 13 | ast (2.4.3) | |
| 14 | + bigdecimal (3.3.1) | ||
| 12 | 15 | cgi (0.5.0) | |
| 13 | 16 | coderay (1.1.3) | |
| 17 | + crack (1.0.1) | ||
| 18 | + bigdecimal | ||
| 19 | + rexml | ||
| 14 | 20 | date (3.5.0) | |
| 15 | 21 | diff-lcs (1.6.2) | |
| 16 | 22 | docile (1.4.1) | |
@@ -24,6 +30,7 @@ GEM | |||
| 24 | 30 | net-http (>= 0.5.0) | |
| 25 | 31 | faraday-retry (2.3.2) | |
| 26 | 32 | faraday (~> 2.0) | |
| 33 | + hashdiff (1.2.1) | ||
| 27 | 34 | io-console (0.8.1) | |
| 28 | 35 | irb (1.15.2) | |
| 29 | 36 | pp (>= 0.6.0) | |
@@ -50,6 +57,7 @@ GEM | |||
| 50 | 57 | psych (5.2.6) | |
| 51 | 58 | date | |
| 52 | 59 | stringio | |
| 60 | + public_suffix (6.0.2) | ||
| 53 | 61 | racc (1.8.1) | |
| 54 | 62 | rainbow (3.1.1) | |
| 55 | 63 | rake (13.3.1) | |
@@ -60,6 +68,7 @@ GEM | |||
| 60 | 68 | regexp_parser (2.11.3) | |
| 61 | 69 | reline (0.6.2) | |
| 62 | 70 | io-console (~> 0.5) | |
| 71 | + rexml (3.4.4) | ||
| 63 | 72 | rspec (3.13.2) | |
| 64 | 73 | rspec-core (~> 3.13.0) | |
| 65 | 74 | rspec-expectations (~> 3.13.0) | |
@@ -117,6 +126,10 @@ GEM | |||
| 117 | 126 | unicode-emoji (~> 4.1) | |
| 118 | 127 | unicode-emoji (4.1.0) | |
| 119 | 128 | uri (1.1.0) | |
| 129 | + webmock (3.25.2) | ||
| 130 | + addressable (>= 2.8.0) | ||
| 131 | + crack (>= 0.3.2) | ||
| 132 | + hashdiff (>= 0.4.0, < 2.0.0) | ||
| 120 | 133 | yard (0.9.37) | |
| 121 | 134 | ||
| 122 | 135 | PLATFORMS | |
@@ -134,6 +147,7 @@ DEPENDENCIES | |||
| 134 | 147 | rubocop-rspec (~> 2.22) | |
| 135 | 148 | simplecov (~> 0.22) | |
| 136 | 149 | vistar_client! | |
| 150 | + webmock (~> 3.19) | ||
| 137 | 151 | yard (~> 0.9) | |
| 138 | 152 | ||
| 139 | 153 | BUNDLED WITH | |
| Back | FazBrowse Home | New Git URL |
0 commit comments