jpt 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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