Add DiasporaFederation::Schemas to access JSON schema

This commit is contained in:
Benjamin Neff 2017-07-21 01:49:58 +02:00
parent 1c8f656b46
commit 93e18e1a79
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
4 changed files with 33 additions and 2 deletions

View file

@ -15,5 +15,5 @@ Gem::Specification.new do |s|
"validating JSON serialized federation objects."
s.license = "AGPL-3.0"
s.files = Dir["lib/diaspora_federation/schemas/*.json"]
s.files = Dir["lib/diaspora_federation/schemas.rb", "lib/diaspora_federation/schemas/*.json"]
end

View file

@ -17,7 +17,8 @@ Gem::Specification.new do |s|
s.license = "AGPL-3.0"
s.files = Dir["lib/**/*", "LICENSE", "README.md", "Changelog.md"] -
Dir["lib/diaspora_federation/{engine,rails,test}.rb",
Dir["lib/diaspora_federation/{engine,rails,schemas,test}.rb",
"lib/diaspora_federation/schemas/*",
"lib/diaspora_federation/test/*",
"lib/tasks/*.rake"]

View file

@ -0,0 +1,17 @@
require "pathname"
require "json"
module DiasporaFederation
# A helper class to access the JSON schema.
module Schemas
# federation_entities schema uri
FEDERATION_ENTITIES_URI = "https://diaspora.github.io/diaspora_federation/schemas/federation_entities.json".freeze
# Parsed federation_entities schema
def self.federation_entities
@federation_entities ||= JSON.parse(
Pathname.new(__dir__).join("schemas", "federation_entities.json").read
)
end
end
end

View file

@ -0,0 +1,13 @@
require "diaspora_federation/schemas"
module DiasporaFederation
describe Schemas do
describe ".federation_entities" do
it "returns the parsed federation_entities JSON schema" do
schema = DiasporaFederation::Schemas.federation_entities
expect(schema).to be_a(Hash)
expect(schema["id"]).to eq(DiasporaFederation::Schemas::FEDERATION_ENTITIES_URI)
end
end
end
end