jpt 0.0.4 → 0.0.5

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/jpt +7 -0
  3. data/jpt.gemspec +1 -1
  4. data/lib/jpt.rb +7 -0
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8384c2b533862dd8680c91a673db060c59f950a5f6f7e56962bb5d18913d3f54
4
- data.tar.gz: f2700ad739f78beb7ed048998c7c6831c9c077a6810c723b51091b4c95176be6
3
+ metadata.gz: 2556dc372f83257488713fad1a473be979587873c8cb31d0f4833c736d286533
4
+ data.tar.gz: cff64906279a4fdff9e10be53807e29a074c9d0ae3890ebbc756b9fd5ee49d41
5
5
  SHA512:
6
- metadata.gz: dab70f4ce946f2716d403696d750ac97ddee416c9da1a04a2bc8b375c5c93ff9bf93aff1ccce23c0431820e7e6ef39fbb00f08a6cb4ff34c8e206dea4d97d33c
7
- data.tar.gz: b4c83b1a0c98652b00359a554a6f75f3fcf8ab57330425b139f6093aec70505a5061fa0036f13b5d32006486d3928035558b50a346a004cfaa3310f5f4c94bc5
6
+ metadata.gz: 964781ffc90ec14022559b5128a0cecbb50ac4f6ae4ce1e1fd1a5b57031c663efc6557b65626b187916eb6ce9ad0be169bc5a2a155f8c97c9652de8cc5355342
7
+ data.tar.gz: c2e910750fb6180465cf673f33232f103e6d4dcf772351bafeb2c468c2579ba25a51bab15395dadf046e69003617e4842accdac33dd0fef72046bcabd239a00a
data/bin/jpt CHANGED
@@ -10,6 +10,8 @@ Encoding.default_external = Encoding::UTF_8
10
10
  require 'optparse'
11
11
  require 'ostruct'
12
12
 
13
+ FUNCSIG_CHARS = {"l" => :logical, "n" => :nodes, "v" => :value}
14
+
13
15
  $options = OpenStruct.new
14
16
  begin
15
17
  op = OptionParser.new do |opts|
@@ -21,6 +23,11 @@ begin
21
23
  opts.on("-l", "--[no-]lines", "multi-line mode") do |v|
22
24
  $options.lines = v
23
25
  end
26
+ opts.on("-fFUNCSIG", "--[no-]f=FUNCSIG", "add function signature name=rppp") do |v|
27
+ fail "funcsig format must be name=rppp" unless v =~ /\A([a-z][_a-z0-9]*)-([lnv]+)\z/
28
+
29
+ JPTType.add_funcsig($1, $2)
30
+ end
24
31
  opts.on("-tFMT", "--to=FMT", [:basic, :neat, :json, :yaml, :enum, :jp], "Target format") do |v|
25
32
  $options.target = v
26
33
  end
data/jpt.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "jpt"
3
- s.version = "0.0.4"
3
+ s.version = "0.0.5"
4
4
  s.summary = "JSONPath tools"
5
5
  s.description = %q{jpt implements converters and miscellaneous tools for JSONPath}
6
6
  s.author = "Carsten Bormann"
data/lib/jpt.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  module JPTType
2
2
  # :value, :nodes, :logical
3
3
 
4
+
5
+ FUNCSIG_CHARS = {"l" => :logical, "n" => :nodes, "v" => :value}
6
+
4
7
  FUNCTABLE = {
5
8
  "length" => [:value, :value],
6
9
  "count" => [:value, :nodes],
@@ -8,6 +11,10 @@ module JPTType
8
11
  "search" => [:logical, :value, :value],
9
12
  }
10
13
 
14
+ def self.add_funcsig(name, sig)
15
+ FUNCTABLE[name] = sig.chars.map {FUNCSIG_CHARS[_1]}
16
+ end
17
+
11
18
  def declared_type(ast)
12
19
  case ast
13
20
  in Numeric | String | false | true | nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jpt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-20 00:00:00.000000000 Z
11
+ date: 2023-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler