Class: Solrengine::Programs::IdlParser
- Inherits:
-
Object
- Object
- Solrengine::Programs::IdlParser
show all
- Defined in:
- lib/solrengine/programs/idl_parser.rb
Defined Under Namespace
Classes: ParsedAccount, ParsedAccountMeta, ParsedError, ParsedField, ParsedIdl, ParsedInstruction, ParsedSeed, ParsedType, UnsupportedVersionError
Constant Summary
collapse
- SUPPORTED_SPEC =
"0.1.0"
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(json_string) ⇒ IdlParser
Returns a new instance of IdlParser.
58
59
60
|
# File 'lib/solrengine/programs/idl_parser.rb', line 58
def initialize(json_string)
@data = JSON.parse(json_string)
end
|
Class Method Details
.parse(json_string) ⇒ Object
50
51
52
|
# File 'lib/solrengine/programs/idl_parser.rb', line 50
def self.parse(json_string)
new(json_string).parse
end
|
.parse_file(path) ⇒ Object
54
55
56
|
# File 'lib/solrengine/programs/idl_parser.rb', line 54
def self.parse_file(path)
parse(File.read(path))
end
|
Instance Method Details
#parse ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/solrengine/programs/idl_parser.rb', line 62
def parse
validate_spec_version!
ParsedIdl.new(
program_id: @data["address"],
name: @data.dig("metadata", "name"),
version: @data.dig("metadata", "version"),
instructions: parse_instructions,
accounts: parse_accounts,
types: parse_types,
errors: parse_errors
)
end
|