dtr_to_rust 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generator.rb +12 -5
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71e0a411f0334b28f5a9c2cdb1c37edf9d5d0809ec1e58ab788a8f415f826051
4
- data.tar.gz: 9b5e033c957a78ab03662b32ec4f8db4806cb4842571437d9eed4ff353a816cf
3
+ metadata.gz: 99cb5bd9bbecdd7e38955c2d2c15e8ad746a0a0384ded632a825265335923573
4
+ data.tar.gz: a79bdec55b768d0bac92377e5ccd956dbd9ce6b5e206ebcd8a0da8091f0e1c3d
5
5
  SHA512:
6
- metadata.gz: b0ee5eae92ae5a2ac7ce5942c058a2acfdfd33ae1d73e2f7464172f586b7cf6cf8b9eadaa38e31f87c79dd7f3a853d652257cbe4f374ef422b76d88c8a5b879e
7
- data.tar.gz: 4580e5e730eb5045319de5206335f56021a2c8f294428ed2e86236c9686c31e5962540d1876f3ae8bd79762e96ff764759c5ed1a86f763137e15a3af9a5a0112
6
+ metadata.gz: 2fb2def5de76fdf1c470536ae88bac3d235e367d67b0681e9b21a28a656bd093558a055b0ca6dbe3653424591eaee4cc7b473afeeb2a7b478105932bb6f93aa9
7
+ data.tar.gz: e92bce3301fe1f5b55b51031f61722d759bcd329958ab5cc1ac81f780deea8ba07d03174496a380aa478d1d82387fecffac4339cf039f1a67d7505b5d11e0b72
data/lib/generator.rb CHANGED
@@ -5,9 +5,8 @@ require 'dtr_core'
5
5
  module DTRToRust
6
6
  # Generates Rust code from a DTR contract
7
7
  class Generator
8
- def initialize(file_path)
9
- @file_path = file_path
10
- @dtr_contract = ::DTRCore::Parser.parse(file_path)
8
+ def initialize(content)
9
+ @dtr_contract = ::DTRCore::Contract.from_dtr_raw(content)
11
10
  end
12
11
 
13
12
  def generate
@@ -21,6 +20,14 @@ module DTRToRust
21
20
  @content
22
21
  end
23
22
 
23
+ def self.generate_from_file(file_path)
24
+ new(File.read(file_path)).generate
25
+ end
26
+
27
+ def self.generate_from_string(dtr_string)
28
+ new(dtr_string).generate
29
+ end
30
+
24
31
  private
25
32
 
26
33
  attr_reader :dtr_contract
@@ -49,10 +56,10 @@ module DTRToRust
49
56
  end
50
57
 
51
58
  def generate_functions_each(functions)
52
- functions.map do |function|
59
+ functions&.map do |function|
53
60
  "\n pub fn #{function.name}(#{generate_function_args(function)}) " \
54
61
  "-> #{function.output} {\n#{generate_instructions_each(function.instructions)}\n }\n"
55
- end.join("\n")
62
+ end&.join("\n")
56
63
  end
57
64
 
58
65
  def generate_function_args(function)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dtr_to_rust
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Durst