Skip to content

Instantly share code, notes, and snippets.

@dnovais
Created July 19, 2023 12:57
Show Gist options
  • Save dnovais/b58797d184976a604ab5bb184fce307d to your computer and use it in GitHub Desktop.
Save dnovais/b58797d184976a604ab5bb184fce307d to your computer and use it in GitHub Desktop.
Ruby Generate Crystal
def generate_crystal_code(class_name, method_name, parameter_type, parameter_name)
code = <<~CRYSTAL
# Generated Crystal code
module MyModule
class #{class_name}
def initialize(#{parameter_name} : #{parameter_type})
@#{parameter_name} = #{parameter_name}
end
def #{method_name}
puts "Hello, #{@#{parameter_name}}!"
end
end
end
# Usage example
instance = MyModule::#{class_name}.new("John")
instance.#{method_name}
CRYSTAL
code
end
# Generate and print the Crystal code
class_name = "Person"
method_name = "greet"
parameter_type = "String"
parameter_name = "name"
puts generate_crystal_code(class_name, method_name, parameter_type, parameter_name)
@dnovais
Copy link
Author

dnovais commented Jul 19, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment