Skip to content

Commit

Permalink
msggen: adding example and fixes typo
Browse files Browse the repository at this point in the history
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
  • Loading branch information
vincenzopalazzo authored and cdecker committed May 7, 2022
1 parent 4e902fb commit 2ab2061
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 6 deletions.
37 changes: 37 additions & 0 deletions contrib/msggen/examples/generator_example.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#! /usr/bin/python3
"""
Example of usage msggen module.
This example introduces a fake generator to understand how the
package works, If you would like to see a real generator example
try to see the Rust generator in the `msggen/gen/rust.py`
author: https://github.com/vincenzopalazzo
"""
from msggen.gen.generator import GeneratorChain, IGenerator
from msggen import Service
from msggen.utils import load_jsonrpc_service


class MonkylangGen(IGenerator):
"""This is the custom generator that implements a monkylang generator
that uses the interface handler IGenerator."""

def generate(self, service: Service):
self.write('println("Monky")')


def register_monkylang_gen(generator_chain: GeneratorChain):
"""Helper function to register the custom generator, and
load the correct path of the json schema."""
file = '<your_path_of_result>'
dest = open(file, 'w')
generator_chain.add_generator(MonkylangGen(dest))


if __name__ == '__main__':
schema_dir = '<path_of_json_schema_dir>'
service = load_jsonrpc_service(schema_dir=schema_dir)
generator_chain = GeneratorChain()
register_monkylang_gen(generator_chain)
generator_chain.generate(service)
8 changes: 4 additions & 4 deletions contrib/msggen/msggen/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from msggen.utils import repo_root, load_jsonrpc_service


def gengrpc(generator_chain: GeneratorChain, meta):
def add_handler_gen_grpc(generator_chain: GeneratorChain, meta):
"""Load all mapped RPC methods, wrap them in a Service, and split them into messages.
"""
fname = repo_root() / "cln-grpc" / "proto" / "node.proto"
Expand All @@ -22,7 +22,7 @@ def gengrpc(generator_chain: GeneratorChain, meta):
generator_chain.add_generator(GrpcServerGenerator(dest))


def genrustjsonrpc(generator_chain: GeneratorChain):
def add_handler_gen_rust_jsonrpc(generator_chain: GeneratorChain):
fname = repo_root() / "cln-rpc" / "src" / "model.rs"
dest = open(fname, "w")
generator_chain.add_generator(RustGenerator(dest))
Expand All @@ -43,8 +43,8 @@ def run():
meta = load_msggen_meta()
generator_chain = GeneratorChain()

gengrpc(generator_chain, meta)
genrustjsonrpc(generator_chain)
add_handler_gen_grpc(generator_chain, meta)
add_handler_gen_rust_jsonrpc(generator_chain)

generator_chain.generate(service)

Expand Down
4 changes: 2 additions & 2 deletions contrib/msggen/msggen/gen/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

class IGenerator(ABC):
"""
Change of responsibility handler that need to be
Chain of responsibility handler that need to be
implemented by all the generators.
"""

Expand All @@ -21,7 +21,7 @@ def generate(self, service: Service):

class GeneratorChain:
"""
Chain responsibility patter implementation to generalize
Chain responsibility pattern implementation to generalize
the generation method.
"""

Expand Down

0 comments on commit 2ab2061

Please sign in to comment.