schema_dot_org 2.3.1 → 2.3.3

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: 2a529f1af595e1f98f68b87b85bca0f8bd9aea55b0a05799cdad60b2a23afb0c
4
- data.tar.gz: 1fafd9ec704f895bb8e3e8e4bb2fb3935081cab7587d15d441a2b31eba6ca090
3
+ metadata.gz: 736ca556e9da839382ce55910f9729313cbd37bee13df252fdff1606af240650
4
+ data.tar.gz: '08fa546126f7f829e1ee6af9358566e69fef5181afeaacb83c781741353f08af'
5
5
  SHA512:
6
- metadata.gz: 43bc701abbb0e01a88792dee858c48586fa58cd5e8016e4989a939dd31dd1287edb93c3b4d937791f25b9011cc1eac6e2794ef03d26c181f99aa3af9b0ce3fe6
7
- data.tar.gz: 5c044fc3ca56cf5cea5d8cab39a6afc125ffc1a0ffe12e6224ffa9b81365bd4a8af7bd963653c3e61a019d7e2b0adf78e93ccdbd6e963304402f8eab8fa405a6
6
+ metadata.gz: 91dda5511231e77bddf3a15eb5c73c41cbf36a4eef69cf20be03b6b803c156555aeac751bc9d0d0112316a4dec0b8faf472479b0325f69253afb6c868860ec6e
7
+ data.tar.gz: cc529cd3d76bf23fb01b8273b6675c063c98b082122fcec9327fd26f428d98e35f158499fcbb20b0513fc67f2c962ccd07483e54040bf44f37f63bd2b6a6779e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- schema_dot_org (2.3.1)
4
+ schema_dot_org (2.3.3)
5
5
  validated_object (~> 2.3)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -1,15 +1,30 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/schema_dot_org.svg)](https://badge.fury.io/rb/schema_dot_org)
2
2
 
3
+ ## Table of Contents
4
+
5
+ - [SchemaDotOrg](#schemadotorg)
6
+ - [Usage](#usage)
7
+ - [Principle: No silent failures](#principle-no-silent-failures)
8
+ - [You are prevented from creating invalid markup](#you-are-prevented-from-creating-invalid-markup)
9
+ - [Supported Schema.org Types](#supported-schemaorg-types)
10
+ - [Examples](#examples)
11
+ - [WebSite](#website)
12
+ - [Organization](#organization)
13
+ - [Installation](#installation)
14
+ - [Development](#development)
15
+ - [Contributing](#contributing)
16
+ - [License](#license)
17
+
3
18
  # SchemaDotOrg
4
19
 
5
20
  Easily create [Structured Data](https://developers.google.com/search/docs/guides/intro-structured-data) with **correct syntax and semantics**.
6
21
  Good structured data [helps enhance a website's search result appearance](https://developers.google.com/search/docs/guides/enhance-site):
7
22
 
8
- > Google Search works hard to understand the content of a page. You can help us by providing explicit clues about the meaning of a page…
23
+ > "Google Search works hard to understand the content of a page. You can help us by providing explicit clues about the meaning of a page…"
9
24
 
10
25
  ## Usage
11
26
 
12
- Let's say you have a Rails app. First write plain-ruby code in a controller. Just instantiate
27
+ Let's say you have a Rails app. First write plain-ruby code in a helper or controller. Just instantiate
13
28
  the structured data object you want in your web page:
14
29
 
15
30
  ```ruby
@@ -109,28 +124,28 @@ I move on to other things.
109
124
 
110
125
  See each type's RSpec for an example of how to use it.
111
126
 
112
- | NAME | Schema.org Page | RSpec Spec | Source Code |
127
+ | Name | Schema.org Page | RSpec Spec | Source Code |
113
128
  | ---------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
114
- | AggregateOffer | [Schema.org](https://schema.org/AggregateOffer) | | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/aggregate_offer.rb) |
115
- | CollegeOrUniversity | [Schema.org](https://schema.org/CollegeOrUniversity) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/college_or_university_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/college_or_university.rb) |
116
- | Comment | [Schema.org](https://schema.org/Comment) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/comment_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/comment.rb) |
117
- | ContactPoint | [Schema.org](https://schema.org/ContactPoint) | | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/contact_point.rb) |
118
- | DiscussionForumPosting | [Schema.org](https://schema.org/DiscussionForumPosting) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/discussion_forum_posting_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/discussion_forum_posting.rb) |
119
- | InteractionCounter | [Schema.org](https://schema.org/InteractionCounter) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/interaction_counter_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/interaction_counter.rb) |
120
- | ItemList | [Schema.org](https://schema.org/ItemList) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/item_list_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/item_list.rb) |
121
- | Language | [Schema.org](https://schema.org/Language) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/language_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/language.rb) |
122
- | ListItem | [Schema.org](https://schema.org/ListItem) | | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/list_item.rb) |
123
- | Offer | [Schema.org](https://schema.org/Offer) | | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/offer.rb) |
124
- | Organization | [Schema.org](https://schema.org/Organization) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/organization_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/organization.rb) |
125
- | Person | [Schema.org](https://schema.org/Person) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/person_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/person.rb) |
126
- | Place | [Schema.org](https://schema.org/Place) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/place_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/place.rb) |
127
- | Product | [Schema.org](https://schema.org/Product) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/product_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/product.rb) |
128
- | SearchAction | [Schema.org](https://schema.org/SearchAction) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/search_action_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/search_action.rb) |
129
- | WebSite | [Schema.org](https://schema.org/WebSite) | [RSpec](https://github.com/dogweather/schema-dot-org/blob/master/spec/schema_dot_org/web_site_spec.rb) | [Source](https://github.com/dogweather/schema-dot-org/blob/master/lib/schema_dot_org/web_site.rb) |
129
+ | AggregateOffer | [Schema.org](https://schema.org/AggregateOffer) | | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/aggregate_offer.rb) |
130
+ | CollegeOrUniversity | [Schema.org](https://schema.org/CollegeOrUniversity) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/college_or_university_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/college_or_university.rb) |
131
+ | Comment | [Schema.org](https://schema.org/Comment) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/comment_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/comment.rb) |
132
+ | ContactPoint | [Schema.org](https://schema.org/ContactPoint) | | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/contact_point.rb) |
133
+ | DiscussionForumPosting | [Schema.org](https://schema.org/DiscussionForumPosting) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/discussion_forum_posting_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/discussion_forum_posting.rb) |
134
+ | InteractionCounter | [Schema.org](https://schema.org/InteractionCounter) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/interaction_counter_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/interaction_counter.rb) |
135
+ | ItemList | [Schema.org](https://schema.org/ItemList) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/item_list_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/item_list.rb) |
136
+ | Language | [Schema.org](https://schema.org/Language) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/language_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/language.rb) |
137
+ | ListItem | [Schema.org](https://schema.org/ListItem) | | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/list_item.rb) |
138
+ | Offer | [Schema.org](https://schema.org/Offer) | | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/offer.rb) |
139
+ | Organization | [Schema.org](https://schema.org/Organization) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/organization_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/organization.rb) |
140
+ | Person | [Schema.org](https://schema.org/Person) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/person_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/person.rb) |
141
+ | Place | [Schema.org](https://schema.org/Place) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/place_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/place.rb) |
142
+ | Product | [Schema.org](https://schema.org/Product) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/product_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/product.rb) |
143
+ | SearchAction | [Schema.org](https://schema.org/SearchAction) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/search_action_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/search_action.rb) |
144
+ | WebSite | [Schema.org](https://schema.org/WebSite) | [RSpec](https://github.com/public-law/schema-dot-org/blob/master/spec/schema_dot_org/web_site_spec.rb) | [Source](https://github.com/public-law/schema-dot-org/blob/master/lib/schema_dot_org/web_site.rb) |
130
145
 
131
146
  ## Examples
132
147
 
133
- Here are a few examples. [The source code for these is extremely easy to read.](https://github.com/dogweather/schema-dot-org/tree/master/lib/schema_dot_org) Check them out to see all the available attributes.
148
+ Here are a few examples. [The source code for these is extremely easy to read.](https://github.com/public-law/schema-dot-org/tree/master/lib/schema_dot_org) Check them out to see all the available attributes.
134
149
 
135
150
  ### WebSite
136
151
 
@@ -7,6 +7,7 @@ require 'validated_object'
7
7
  #
8
8
  module SchemaDotOrg
9
9
  class SchemaType < ValidatedObject::Base
10
+ EXCLUDED_INSTANCE_VARIABLES = %i[@context_for_validation @validation_context @errors].freeze
10
11
  ROOT_ATTR = { "@context" => "https://schema.org" }.freeze
11
12
  UNQUALIFIED_CLASS_NAME_REGEX = /([^:]+)$/
12
13
 
@@ -85,7 +86,7 @@ module SchemaDotOrg
85
86
 
86
87
  elsif is_schema_type?(value)
87
88
  value.to_json_struct
88
-
89
+
89
90
  else
90
91
  value
91
92
  end
@@ -98,7 +99,7 @@ module SchemaDotOrg
98
99
 
99
100
 
100
101
  def attrs
101
- instance_variables.reject{ |v| [:@validation_context, :@errors].include?(v) }
102
+ instance_variables.reject{ |v| EXCLUDED_INSTANCE_VARIABLES.include?(v) }
102
103
  end
103
104
 
104
105
 
@@ -7,7 +7,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
7
7
  Gem::Specification.new do |spec|
8
8
  spec.required_ruby_version = '>= 3.0'
9
9
  spec.name = 'schema_dot_org'
10
- spec.version = '2.3.1'
10
+ spec.version = '2.3.3'
11
11
  spec.authors = ['Robb Shecter']
12
12
  spec.email = ['robb@public.law']
13
13
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_dot_org
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robb Shecter