pyru 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 761974aaa8c642be06a7175aed03eaca3f73b959e9c4ebe24837794e648d8253
4
+ data.tar.gz: 1f1f12d36f52863d6a84c09571ca90a93f44f1a6c03636224af99468155d4ceb
5
+ SHA512:
6
+ metadata.gz: eb9a19bf1e05e0cd1c53d2da85166cafe47086e1244112d517c38e00a20f689dd9b1cae39800aa901b2bc12afd9f0dbe8817d5c0cc4df2444082513faf344f9d
7
+ data.tar.gz: d8f3dc017ece04da33b8a5af9005a0d8f5693981c4e04fadd394d1f717d8ecfcc9743785fd6d474bd6c32714ed8582f5489e264fcde74a350ac676265898bd1d
data/lib/pyru.rb ADDED
@@ -0,0 +1,8 @@
1
+ # pyru.rb
2
+
3
+ require "pyru/version"
4
+
5
+ module Pyru
6
+ class Error < StandardError; end
7
+ # Your code goes here...
8
+ end
@@ -0,0 +1,14 @@
1
+ # pyru_compiler.rb
2
+
3
+ class PyruCompiler
4
+ def initialize(ast)
5
+ @ast = ast
6
+ end
7
+
8
+ def compile
9
+ # Placeholder for compilation logic
10
+ # You can translate the AST into executable code
11
+ # For simplicity, let's just return the AST as is for now
12
+ @ast
13
+ end
14
+ end
@@ -0,0 +1,29 @@
1
+ # pyru_examples.rb
2
+
3
+ # Require the pyru_ruby_bridge gem
4
+ require 'pyru_ruby_bridge'
5
+
6
+ # Example method to demonstrate calling a Pyru method using the bridge module
7
+ def call_pyru_method
8
+ begin
9
+ # Call the Pyru method using the RubyBridge class
10
+ result = PyruRubyBridge::RubyBridge.some_pyru_method("example_argument")
11
+
12
+ # Print the result
13
+ puts "Result from Pyru method: #{result}"
14
+ rescue PyruRubyBridge::PyruException => e
15
+ # Handle Pyru exceptions raised by the bridge module
16
+ puts "Pyru exception caught: #{e.message}"
17
+ end
18
+ end
19
+
20
+ # Main method
21
+ def main
22
+ # Call the example method to demonstrate calling a Pyru method
23
+ call_pyru_method
24
+ end
25
+
26
+ # Entry point of the script
27
+ if __FILE__ == $0
28
+ main
29
+ end
data/lib/pyru_lexer.rb ADDED
@@ -0,0 +1,32 @@
1
+ # pyru_lexer.rb
2
+
3
+ class PyruLexer
4
+ def initialize(code)
5
+ @code = code
6
+ @position = 0
7
+ @tokens = []
8
+ end
9
+
10
+ def tokenize
11
+ while @position < @code.length
12
+ case @code[@position]
13
+ when /\s/
14
+ # Skip whitespace
15
+ @position += 1
16
+ when /[a-zA-Z]/
17
+ # Identify identifiers
18
+ identifier = ''
19
+ while @code[@position] =~ /[a-zA-Z0-9_]/
20
+ identifier += @code[@position]
21
+ @position += 1
22
+ end
23
+ @tokens << { type: :IDENTIFIER, value: identifier }
24
+ # Add other token types and their respective cases as needed
25
+ else
26
+ # Skip unknown characters
27
+ @position += 1
28
+ end
29
+ end
30
+ @tokens
31
+ end
32
+ end
@@ -0,0 +1,15 @@
1
+ # pyru_parser.rb
2
+
3
+ class PyruParser
4
+ def initialize(tokens)
5
+ @tokens = tokens
6
+ @position = 0
7
+ end
8
+
9
+ def parse
10
+ # Placeholder for parsing logic
11
+ # You can define grammar rules and parse the tokens accordingly
12
+ # For simplicity, let's just return the tokens for now
13
+ @tokens
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ # pyrupythonbridge.rb
2
+
3
+ module PyruPythonBridge
4
+ class PythonBridge
5
+ def self.call_python_function
6
+ begin
7
+ # Call the actual Python function here
8
+ result = SomePythonModule.some_python_function # Placeholder for calling Python function
9
+ return result
10
+ rescue StandardError => e
11
+ # Convert Python exception to Pyru exception
12
+ raise PyruException, "Error calling Python function: #{e.message}"
13
+ end
14
+ end
15
+ end
16
+
17
+ class Conversions
18
+ def self.python_to_pyru(python_value)
19
+ # Placeholder for converting Python to Pyru
20
+ end
21
+ end
22
+
23
+ class PyruException < StandardError
24
+ # Pyru exception class
25
+ end
26
+ end
@@ -0,0 +1,33 @@
1
+ # lib/pyru_ruby_bridge.rb
2
+
3
+ require 'json'
4
+
5
+ module Pyru_Ruby_Bridge
6
+ class RubyBridge
7
+ def self.some_ruby_method(arg)
8
+ # Call the actual Ruby method here
9
+ # For example, assuming `some_ruby_method` is defined in a Ruby library
10
+ result = some_ruby_method(arg)
11
+
12
+ # Convert the result to Pyru data type
13
+ return PyruRubyBridge::Conversions.ruby_to_pyru(result)
14
+ rescue StandardError => e
15
+ # Convert Ruby exception to Pyru exception
16
+ raise PyruRubyBridge::PyruException, "Error calling Ruby method: #{e.message}"
17
+ end
18
+ end
19
+
20
+ class Conversions
21
+ def self.ruby_to_pyru(ruby_value)
22
+ # Placeholder for converting Ruby to Pyru
23
+ # You can implement the conversion logic based on your requirements
24
+ # For example:
25
+ # Convert Ruby hash to Pyru dictionary
26
+ return JSON.parse(ruby_value.to_json)
27
+ end
28
+ end
29
+
30
+ class PyruException < StandardError
31
+ # Pyru exception class
32
+ end
33
+ end
metadata ADDED
@@ -0,0 +1,162 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pyru
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - munsterkreations
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-05-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubygems
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '13.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '13.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: python
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.14'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.14'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faker
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.0'
125
+ description: A Ruby gem that provides a Pyru-friendly interface for Ruby libraries.
126
+ email:
127
+ - k7Gp7@example.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - lib/pyru.rb
133
+ - lib/pyru_compiler.rb
134
+ - lib/pyru_examples.rb
135
+ - lib/pyru_lexer.rb
136
+ - lib/pyru_parser.rb
137
+ - lib/pyru_python_bridge.rb
138
+ - lib/pyru_ruby_bridge.rb
139
+ homepage: https://github.com/munsterkreations/pyru
140
+ licenses:
141
+ - MIT
142
+ metadata: {}
143
+ post_install_message:
144
+ rdoc_options: []
145
+ require_paths:
146
+ - lib
147
+ required_ruby_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ requirements: []
158
+ rubygems_version: 3.5.9
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: Pyru-friendly interface for Ruby libraries
162
+ test_files: []