rjq 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.
data/lib/rjq.rb ADDED
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'rjq/version'
4
+ require_relative 'rjq/errors'
5
+ require_relative 'rjq/number'
6
+ require_relative 'rjq/value'
7
+ require_relative 'rjq/json/input_buffer'
8
+ require_relative 'rjq/json/parser'
9
+ require_relative 'rjq/json/stream_parser'
10
+ require_relative 'rjq/json/dumper'
11
+ require_relative 'rjq/color'
12
+ require_relative 'rjq/path'
13
+ require_relative 'rjq/math_functions'
14
+ require_relative 'rjq/lexer'
15
+ require_relative 'rjq/ast'
16
+ require_relative 'rjq/parser'
17
+ require_relative 'rjq/builtins'
18
+ require_relative 'rjq/opcodes'
19
+ require_relative 'rjq/semantic_analyzer'
20
+ require_relative 'rjq/modules'
21
+ require_relative 'rjq/module_loader'
22
+ require_relative 'rjq/compiler'
23
+ require_relative 'rjq/vm'
24
+ require_relative 'rjq/runtime'
25
+
26
+ module Rjq
27
+ class << self
28
+ def compile(filter_string, opts = {})
29
+ Compiler.new(opts).compile(filter_string)
30
+ end
31
+
32
+ def run(filter_string, input_value, opts = {})
33
+ Runtime.validate_options!(opts)
34
+ compile(filter_string, Compiler.options_from(opts)).run(input_value, opts)
35
+ end
36
+
37
+ def run_stream(filter_string, io:, opts: {}, &block)
38
+ Runtime.new(filter_string, opts).run_stream(io, &block)
39
+ end
40
+ end
41
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rjq
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yudai Takada
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: fiddle
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.1'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '1.1'
26
+ description: rjq implements a practical jq 1.7.1-compatible subset with a command
27
+ line and Ruby API.
28
+ email:
29
+ - t.yudai92@gmail.com
30
+ executables:
31
+ - rjq
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ARCHITECTURE.md
36
+ - CHANGELOG.md
37
+ - COMPATIBILITY.md
38
+ - CONTRIBUTING.md
39
+ - LICENSE.txt
40
+ - README.md
41
+ - SECURITY.md
42
+ - bin/rjq
43
+ - lib/rjq.rb
44
+ - lib/rjq/ast.rb
45
+ - lib/rjq/builtins.rb
46
+ - lib/rjq/builtins/array.rb
47
+ - lib/rjq/builtins/core.rb
48
+ - lib/rjq/builtins/date.rb
49
+ - lib/rjq/builtins/format.rb
50
+ - lib/rjq/builtins/io.rb
51
+ - lib/rjq/builtins/math.rb
52
+ - lib/rjq/builtins/regex.rb
53
+ - lib/rjq/builtins/sql.rb
54
+ - lib/rjq/builtins/stream.rb
55
+ - lib/rjq/builtins/string.rb
56
+ - lib/rjq/cli.rb
57
+ - lib/rjq/color.rb
58
+ - lib/rjq/compiler.rb
59
+ - lib/rjq/errors.rb
60
+ - lib/rjq/json.rb
61
+ - lib/rjq/json/dumper.rb
62
+ - lib/rjq/json/input_buffer.rb
63
+ - lib/rjq/json/parser.rb
64
+ - lib/rjq/json/stream_parser.rb
65
+ - lib/rjq/lexer.rb
66
+ - lib/rjq/math_functions.rb
67
+ - lib/rjq/module_loader.rb
68
+ - lib/rjq/modules.rb
69
+ - lib/rjq/number.rb
70
+ - lib/rjq/opcodes.rb
71
+ - lib/rjq/parser.rb
72
+ - lib/rjq/path.rb
73
+ - lib/rjq/runtime.rb
74
+ - lib/rjq/semantic_analyzer.rb
75
+ - lib/rjq/value.rb
76
+ - lib/rjq/version.rb
77
+ - lib/rjq/vm.rb
78
+ homepage: https://github.com/ydah/rjq
79
+ licenses:
80
+ - MIT
81
+ metadata:
82
+ allowed_push_host: https://rubygems.org
83
+ homepage_uri: https://github.com/ydah/rjq
84
+ source_code_uri: https://github.com/ydah/rjq/tree/main
85
+ changelog_uri: https://github.com/ydah/rjq/blob/main/CHANGELOG.md
86
+ bug_tracker_uri: https://github.com/ydah/rjq/issues
87
+ documentation_uri: https://github.com/ydah/rjq#readme
88
+ rubygems_mfa_required: 'true'
89
+ rdoc_options: []
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '3.1'
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ requirements: []
103
+ rubygems_version: 4.0.6
104
+ specification_version: 4
105
+ summary: A Ruby implementation of a practical jq subset
106
+ test_files: []