Add DiasporaFederation::Schemas to access JSON schema
This commit is contained in:
parent
1c8f656b46
commit
93e18e1a79
4 changed files with 33 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
||||
|
|
|
|||
17
lib/diaspora_federation/schemas.rb
Normal file
17
lib/diaspora_federation/schemas.rb
Normal 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
|
||||
13
spec/lib/diaspora_federation/schemas_spec.rb
Normal file
13
spec/lib/diaspora_federation/schemas_spec.rb
Normal 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
|
||||
Loading…
Reference in a new issue