better_seo 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42834acb5d5dca21a12b20288b28544bd5112aac2fe8a05dbf3123707f1f21fe
4
- data.tar.gz: 8efa2fd4287fbf0078d57691148c2cdc78e2f03a18c5af2eb96fc6819d32c5d6
3
+ metadata.gz: dc1a6c6c25f2dc3616b15df387f07221107b54c40333534637218ceba2988de1
4
+ data.tar.gz: 47d74de790f4e4eae6c817cae3e60bc9e197707d9645712f2446b9cc6929f6d7
5
5
  SHA512:
6
- metadata.gz: 934a6db489cbda29d885011c889d268b66858b9d202d5c561907543365a639547c7e9bc39cd2dc0acc529e4fba4c9f9eb21de10fb76cdb7211c15c4622249073
7
- data.tar.gz: d5ceb959972b3e687140a87c87c649525d0844abaffb1ddd316259eaa4cd82b7b5780152a92e06120c8ab7ff46fdce33f1c2449f8f225321a92958f87d8895bc
6
+ metadata.gz: da8e3671910eb851c1a99f9f45d36fc2be629c9058e0960e35b962a652b36f580df02f85bfaf399815afacca577d41e4db50c4b057dcceabab159d1e83057dfa
7
+ data.tar.gz: 2a9de0cf32b76321c1b069a30ea3b3c9c0d62169132594cc8d9597a36e3a45af467f2c2a13df91be16eb13f393a28839c253dbef3e284c604e4bc9203327592c
data/CHANGELOG.md CHANGED
@@ -7,6 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.14.0] - 2025-01-23
11
+
12
+ ### Added
13
+ - SEO Intelligence & Advanced Analytics features
14
+ - **Google Tag Manager** (`BetterSeo::Analytics::GoogleTagManager`)
15
+ - `to_head_script(nonce:)` - Generate GTM head script tag
16
+ - `to_body_noscript` - Generate GTM body noscript fallback
17
+ - `push_data_layer(**data)` - Push custom data to data layer
18
+ - `push_ecommerce(event:, ecommerce:)` - Push e-commerce events
19
+ - `push_user_data(**user_data)` - Push user information
20
+ - Custom data layer name support
21
+ - CSP nonce support for Content Security Policy
22
+ - Complete GTM integration for enterprise analytics
23
+ - **SEO Recommendations Engine** (`BetterSeo::Validators::SeoRecommendations`)
24
+ - `generate_recommendations(validation_result)` - AI-powered SEO suggestions
25
+ - `recommend_title_improvements(title_result)` - Title optimization tips
26
+ - `recommend_description_improvements(desc_result)` - Description enhancements
27
+ - `recommend_heading_improvements(headings_result)` - Heading structure fixes
28
+ - `recommend_image_improvements(images_result)` - Image alt text suggestions
29
+ - `format_recommendations(recommendations)` - Markdown formatted output
30
+ - Priority-based recommendations (high, medium, low)
31
+ - Actionable improvement steps with details
32
+ - Integration with SEO Validator
33
+
34
+ ### Enhanced
35
+ - Analytics module expanded with GTM support
36
+ - Validators module enhanced with intelligent recommendations
37
+ - Comprehensive SEO improvement workflow
38
+
39
+ ### Test Coverage
40
+ - 899 tests passing (+25 from v0.13.0)
41
+ - 94.3% code coverage (1817/1926 lines)
42
+ - 25 new tests across intelligence features:
43
+ - Google Tag Manager: 11 tests
44
+ - SEO Recommendations: 14 tests
45
+
10
46
  ## [0.13.0] - 2025-01-23
11
47
 
12
48
  ### Added
@@ -39,12 +75,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
39
75
  - Comprehensive validation rules following SEO best practices
40
76
  - Detailed error messages with actionable recommendations
41
77
 
78
+ - **Image Optimizer** (`BetterSeo::Image::Optimizer`)
79
+ - `validate_format!(path)` - Validate image format (JPEG, PNG, WebP, GIF)
80
+ - `convert_to_webp(source, destination)` - Convert images to WebP format
81
+ - `resize(source, destination, width:, height:)` - Resize images
82
+ - `compress(source, destination)` - Compress images with quality setting
83
+ - `generate_responsive(source, output_dir, sizes:)` - Generate multiple sizes
84
+ - `optimize(source, destination, resize:)` - Complete optimization with statistics
85
+ - Requires ImageMagick and mini_magick gem
86
+ - Quality control (0-100)
87
+ - Optimization statistics (size reduction percentage)
88
+ - **Analytics Integration** (`BetterSeo::Analytics::GoogleAnalytics`)
89
+ - `to_script_tag(nonce:, **config)` - Generate GA4 script tag
90
+ - `track_event(event_name, **parameters)` - Custom event tracking
91
+ - `track_page_view(page_path, title:)` - Page view tracking
92
+ - `ecommerce_purchase(transaction_id:, value:, items:)` - E-commerce tracking
93
+ - Anonymize IP support for GDPR compliance
94
+ - CSP nonce support for Content Security Policy
95
+ - Custom configuration options
96
+
42
97
  ### Test Coverage
43
- - 858 tests passing (+47 from v0.12.0)
44
- - 96.7% code coverage (1668/1725 lines)
45
- - 47 new tests across SEO tools:
98
+ - 874 tests passing (+63 from v0.12.0)
99
+ - 94.1% code coverage (1723/1831 lines)
100
+ - 63 new tests across all advanced features:
46
101
  - Robots.txt Generator: 25 tests
47
102
  - SEO Validator: 22 tests
103
+ - Image Optimizer: 5 tests (+ ImageMagick-dependent)
104
+ - Google Analytics: 11 tests
48
105
 
49
106
  ## [0.12.0] - 2025-01-23
50
107
 
data/README.md CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  A comprehensive SEO gem for Ruby and Rails applications. BetterSeo provides a clean, fluent DSL for managing meta tags, Open Graph, Twitter Cards, structured data, sitemaps, and more.
4
4
 
5
- [![Tests](https://img.shields.io/badge/tests-858%20passing-brightgreen)](https://github.com/yourusername/better_seo)
6
- [![Coverage](https://img.shields.io/badge/coverage-96.7%25-brightgreen)](https://github.com/yourusername/better_seo)
5
+ [![Tests](https://img.shields.io/badge/tests-899%20passing-brightgreen)](https://github.com/yourusername/better_seo)
6
+ [![Coverage](https://img.shields.io/badge/coverage-94.3%25-brightgreen)](https://github.com/yourusername/better_seo)
7
7
  [![Ruby](https://img.shields.io/badge/ruby-%3E%3D%203.0.0-red)](https://www.ruby-lang.org)
8
8
  [![Rails](https://img.shields.io/badge/rails-%3E%3D%206.1-red)](https://rubyonrails.org)
9
9
 
10
10
  ## Features
11
11
 
12
- ### ✅ Implemented (v0.13.0)
12
+ ### ✅ Implemented (v0.14.0)
13
13
 
14
14
  - **Core Configuration System**
15
15
  - Singleton configuration with block-style setup
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterSeo
4
- VERSION = "0.13.0"
4
+ VERSION = "0.14.0"
5
5
  end
data/lib/better_seo.rb CHANGED
@@ -18,6 +18,10 @@ require_relative "better_seo/generators/amp_generator"
18
18
  require_relative "better_seo/generators/canonical_url_manager"
19
19
  require_relative "better_seo/generators/robots_txt_generator"
20
20
  require_relative "better_seo/validators/seo_validator"
21
+ require_relative "better_seo/validators/seo_recommendations"
22
+ require_relative "better_seo/image/optimizer"
23
+ require_relative "better_seo/analytics/google_analytics"
24
+ require_relative "better_seo/analytics/google_tag_manager"
21
25
  require_relative "better_seo/sitemap/url_entry"
22
26
  require_relative "better_seo/sitemap/builder"
23
27
  require_relative "better_seo/sitemap/generator"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_seo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - alessiobussolari
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mini_magick
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.11'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.11'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement