schema_dot_org 0.4.0 → 0.5.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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +16 -8
- data/lib/schema_dot_org/organization.rb +3 -1
- data/lib/schema_dot_org/person.rb +19 -0
- data/lib/schema_dot_org/place.rb +1 -3
- data/lib/schema_dot_org/version.rb +1 -1
- data/test-script.rb +4 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e11781fcf6716d6ead9eeb5128d405c6a7b1f417b59a34ff81ac9a79b5bebc4
|
4
|
+
data.tar.gz: 894473636d64822d08f87ebbdc082477d892f5b3496b9c421fa18429c11bf39b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8ac48952653f553840cd8bc8282040cad63b8782a0aca6d8dc908032a6c178ceff8e934b10b6088aa6dbc8e8e0860c758cb90aaa1fb59b2fb8a56b5822752df
|
7
|
+
data.tar.gz: 18129d7a92e1c39e71d412fcc70e90e61b415c669380718625b7a24c1d51533af054bf2e5b40e4558fa608c060a02fce23b344984a4dacb6edb1770d6dcb40f9
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -21,7 +21,10 @@ include SchemaDotOrg
|
|
21
21
|
org.name = "Public.Law"
|
22
22
|
org.email = "say_hi@public.law"
|
23
23
|
org.url = "https://www.public.law"
|
24
|
-
org.founding_date
|
24
|
+
org.founding_date = Date.new(2009, 3, 6)
|
25
|
+
org.founder = Person.new do |person|
|
26
|
+
person.name = "Robb Shecter"
|
27
|
+
end
|
25
28
|
org.founding_location = Place.new do |place|
|
26
29
|
place.address = "Portland, OR"
|
27
30
|
end
|
@@ -43,6 +46,10 @@ SchemaDotOrg will validate your code, and if correct, will generate Schema.org J
|
|
43
46
|
"email": "say_hi@public.law",
|
44
47
|
"url": "https://www.public.law",
|
45
48
|
"foundingDate": "2009-03-06",
|
49
|
+
"founder": {
|
50
|
+
"@type": "Person",
|
51
|
+
"name": "Robb Shecter"
|
52
|
+
},
|
46
53
|
"foundingLocation": {
|
47
54
|
"@type": "Place",
|
48
55
|
"address": "Portland, OR"
|
@@ -109,13 +116,14 @@ but also _semantically_ correct. It should, e.g., ensure that only allowed
|
|
109
116
|
attributes are used.
|
110
117
|
|
111
118
|
## Schema Development Roadmap
|
112
|
-
|
113
|
-
|
|
114
|
-
|
|
115
|
-
| [
|
116
|
-
| [
|
117
|
-
| [
|
118
|
-
| [
|
119
|
+
|
120
|
+
| Type | Planned | Completed |
|
121
|
+
| ---------------------------------------------- | :-----: | :-------: |
|
122
|
+
| [Place](http://schema.org/Place) | X | X |
|
123
|
+
| [Person](http://schema.org/Person) | X |
|
124
|
+
| [Organization](http://schema.org/Organization) | X |
|
125
|
+
| [Date](http://schema.org/Date) | X |
|
126
|
+
| [URL](http://schema.org/URL) | X |
|
119
127
|
|
120
128
|
The plan is to implement a small subset of types and attributes relevant to the Google web crawler.
|
121
129
|
Propose new types and attributes by opening an Issue.
|
@@ -4,9 +4,10 @@ require 'schema_dot_org'
|
|
4
4
|
|
5
5
|
module SchemaDotOrg
|
6
6
|
class Organization < SchemaType
|
7
|
-
attr_accessor :
|
7
|
+
attr_accessor :email, :founder, :founding_date, :founding_location, :name, :url
|
8
8
|
|
9
9
|
validates :email, type: String
|
10
|
+
validates :founder, type: Person
|
10
11
|
validates :founding_date, type: Date
|
11
12
|
validates :founding_location, type: Place
|
12
13
|
validates :name, type: String
|
@@ -18,6 +19,7 @@ module SchemaDotOrg
|
|
18
19
|
"name" => name,
|
19
20
|
"email" => email,
|
20
21
|
"url" => url,
|
22
|
+
"founder" => founder.to_json_struct,
|
21
23
|
"foundingDate" => founding_date.to_s,
|
22
24
|
"foundingLocation" => founding_location.to_json_struct
|
23
25
|
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'schema_dot_org'
|
2
|
+
|
3
|
+
|
4
|
+
module SchemaDotOrg
|
5
|
+
# Model the Schema.org `Person`. See http://schema.org/Person
|
6
|
+
class Person < SchemaType
|
7
|
+
|
8
|
+
attr_accessor :name
|
9
|
+
validates :name, type: String, presence: true
|
10
|
+
|
11
|
+
|
12
|
+
def to_json_struct
|
13
|
+
{
|
14
|
+
"@type" => "Person",
|
15
|
+
name: self.name
|
16
|
+
}
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/schema_dot_org/place.rb
CHANGED
@@ -5,9 +5,7 @@ module SchemaDotOrg
|
|
5
5
|
# Model the Schema.org `Thing > Place`. See http://schema.org/Place
|
6
6
|
class Place < SchemaType
|
7
7
|
attr_accessor :address
|
8
|
-
|
9
|
-
validates :address, presence: true
|
10
|
-
validates :address, type: String
|
8
|
+
validates :address, type: String, presence: true
|
11
9
|
|
12
10
|
def to_json_struct
|
13
11
|
{
|
data/test-script.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'date'
|
2
2
|
|
3
|
+
require 'schema_dot_org/person'
|
3
4
|
require 'schema_dot_org/place'
|
4
5
|
require 'schema_dot_org/organization'
|
5
6
|
include SchemaDotOrg
|
@@ -10,6 +11,9 @@ public_law = Organization.new do |org|
|
|
10
11
|
org.founding_date = Date.new(2009, 3, 6)
|
11
12
|
org.email = "say_hi@public.law"
|
12
13
|
org.url = "https://www.public.law"
|
14
|
+
org.founder = Person.new do |person|
|
15
|
+
person.name = "Robb Shecter"
|
16
|
+
end
|
13
17
|
org.founding_location = Place.new do |place|
|
14
18
|
place.address = "Portland, OR"
|
15
19
|
end
|
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: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robb Shecter
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- bin/setup
|
87
87
|
- lib/schema_dot_org.rb
|
88
88
|
- lib/schema_dot_org/organization.rb
|
89
|
+
- lib/schema_dot_org/person.rb
|
89
90
|
- lib/schema_dot_org/place.rb
|
90
91
|
- lib/schema_dot_org/version.rb
|
91
92
|
- schema_dot_org.gemspec
|