sereth_json_spec 1.0beta1
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 +7 -0
- data/lib/seek_test.rb +34 -0
- data/lib/sereth_json_spec/api.rb +64 -0
- data/lib/sereth_json_spec/cache.rb +31 -0
- data/lib/sereth_json_spec/data.rb +225 -0
- data/lib/sereth_json_spec/exports.rb +156 -0
- data/lib/sereth_json_spec/generator.rb +86 -0
- data/lib/sereth_json_spec/imports.rb +23 -0
- data/lib/sereth_json_spec/lib_config.rb +5 -0
- data/lib/sereth_json_spec/utils.rb +58 -0
- data/lib/sereth_json_spec.rb +14 -0
- data/lib/sereth_utils/alias_args.rb +40 -0
- data/lib/sereth_utils/all.rb +15 -0
- data/lib/sereth_utils/callbacks.rb +31 -0
- data/lib/sereth_utils/config.rb +141 -0
- data/lib/sereth_utils/dev_log.rb +140 -0
- data/lib/sereth_utils/parser.rb +70 -0
- data/lib/sereth_utils/stage.rb +80 -0
- data/lib/sereth_utils/symbol_callback.rb +27 -0
- metadata +131 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
# Sereth Libraries
|
2
|
+
require_relative 'sereth_utils/all'
|
3
|
+
|
4
|
+
# JSON Spec
|
5
|
+
require_relative 'sereth_json_spec/utils'
|
6
|
+
require_relative 'sereth_json_spec/generator'
|
7
|
+
require_relative 'sereth_json_spec/cache'
|
8
|
+
require_relative 'sereth_json_spec/exports'
|
9
|
+
require_relative 'sereth_json_spec/imports'
|
10
|
+
require_relative 'sereth_json_spec/data'
|
11
|
+
require_relative 'sereth_json_spec/api'
|
12
|
+
|
13
|
+
# TODO - Run any necessary stages
|
14
|
+
# Binding.run_stage(:sereth_util_loaded)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
=begin
|
2
|
+
# Usage:
|
3
|
+
|
4
|
+
class Thing
|
5
|
+
def method_name(*args)
|
6
|
+
args
|
7
|
+
end
|
8
|
+
alias_shift_arg(:method_changed, :method_name, 1, 2, 3)
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
thing = Thing.new
|
13
|
+
thing.method_name("a").inspect #=> ["a"]
|
14
|
+
thing.method_changed("a").inspect #=> [1, 2, 3, "a"]
|
15
|
+
=end
|
16
|
+
|
17
|
+
module Sereth
|
18
|
+
module AliasArgs
|
19
|
+
# Register an alias before the method is defined. Not for performance critical use
|
20
|
+
def alias_preload(target, source)
|
21
|
+
self.send(:define_method, target) do |*orig_args, &block|
|
22
|
+
self.send(source, *orig_args, &block)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Register a method that appends some arguments before calling the aliased method
|
27
|
+
def alias_push_args(target, source, *args)
|
28
|
+
self.send(:define_method, target) do |*orig_args, &block|
|
29
|
+
self.send(source, *(orig_args + args), &block)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Register a method that prepends some arguments before calling the aliased method
|
34
|
+
def alias_shift_args(target, source, *args)
|
35
|
+
self.send(:define_method, target) do |*orig_args, &block|
|
36
|
+
self.send(source, *(args + orig_args), &block)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Ensure the sereth namespace exists
|
2
|
+
module Sereth; end
|
3
|
+
|
4
|
+
raise LoadError, 'Ruquires Ruby 2' if !RUBY_VERSION.match(/^2/)
|
5
|
+
require 'rubygems'
|
6
|
+
require 'pry'
|
7
|
+
require 'andand'
|
8
|
+
require 'binding_of_caller'
|
9
|
+
|
10
|
+
# Use staging for all following code.
|
11
|
+
require_relative './stage'
|
12
|
+
require_relative './alias_args'
|
13
|
+
require_relative './callbacks'
|
14
|
+
|
15
|
+
Binding.run_stage(:sereth_util_loaded)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
=begin
|
2
|
+
# Callback System
|
3
|
+
Implements around callbacks for any requested function.
|
4
|
+
|
5
|
+
## Usage:
|
6
|
+
class Example
|
7
|
+
include Sereth::Callback
|
8
|
+
|
9
|
+
around_method :method_name do |*args, &block|
|
10
|
+
print 'ar1'
|
11
|
+
super(*args, &block)
|
12
|
+
print 'ar2'
|
13
|
+
end
|
14
|
+
|
15
|
+
def method_name(*args, &block)
|
16
|
+
print 'method'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Example.new.method_name => ar1 method ar2
|
21
|
+
=end
|
22
|
+
module Sereth
|
23
|
+
# Enables around callbacks for a given object. Ruby 1.9 only.
|
24
|
+
module Callbacks
|
25
|
+
def around_method(func_name, &callback)
|
26
|
+
handler = Module.new
|
27
|
+
handler.send :define_method, func_name, &callback
|
28
|
+
self.send(:prepend, handler)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
=begin
|
2
|
+
# Configuration Module
|
3
|
+
The configuration module allows tools to register configuraiton parameters, and then query
|
4
|
+
them as necessay. It also acts as a config file generator, loader, and validator, as well as
|
5
|
+
an argument parser.
|
6
|
+
|
7
|
+
## Parameter Sources
|
8
|
+
Parameters are sourced from (in order of importance):
|
9
|
+
|
10
|
+
1. In-code Configuration
|
11
|
+
2. Command Line Configuration
|
12
|
+
3. File Configuration
|
13
|
+
4. Default Configuration
|
14
|
+
|
15
|
+
## Storage
|
16
|
+
All configuration options are stored at a fully formed path "/path/is/here" with a proper
|
17
|
+
symbol :name.
|
18
|
+
|
19
|
+
## Command line configuration
|
20
|
+
Command line aguments must specify the argument name, and may also specify any of the
|
21
|
+
preceding path. The system will to its best to find an argument that matches that name,
|
22
|
+
but will fail if a single match can not be determined
|
23
|
+
|
24
|
+
Given:
|
25
|
+
config.add_arg('/path/1', :name)
|
26
|
+
config.add_arg('/path/2', :name)
|
27
|
+
|
28
|
+
ruby script.rb -name=on #=> [/path/1/name => on, /path/2/name => nil]
|
29
|
+
ruby script.rb -1_name=on #=> [/path/1/name => on, /path/2/name => nil]
|
30
|
+
ruby script.rb -2_name=on #=> [/path/1/name => nil, /path/2/name => on]
|
31
|
+
ruby script.rb -path_2_name=on #=> [/path/1/name => nil, /path/2/name => on]
|
32
|
+
|
33
|
+
TODO: Fully formed Flow path
|
34
|
+
|
35
|
+
## Usage
|
36
|
+
The configuration module is best combined with binding stages in order to ensure that
|
37
|
+
the execution has proper access to the local context, and all values defined therein.
|
38
|
+
|
39
|
+
Valid Types: Boolean (Default) | Integer | String
|
40
|
+
|
41
|
+
class Data
|
42
|
+
binding.stage :after_parse do
|
43
|
+
extend Sereth::Config
|
44
|
+
|
45
|
+
args_config :category, "path"... do
|
46
|
+
command :name do
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
bool :name_b, "desc"[, default_value]
|
51
|
+
int :name_i, "desc"[, default_value]
|
52
|
+
string :name_s, "desc"[, default_value]
|
53
|
+
exec :name_e, "desc" &block
|
54
|
+
|
55
|
+
config :deeper_category do
|
56
|
+
bool :name_x
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
Sereth::Stage.run_stage :after_parse
|
64
|
+
|
65
|
+
Sereth::Config.value(:category, :path, :name_b) #=> Bool Value/Default/nil
|
66
|
+
cont = Sereth::Config.container(:category, :path, :deeper_category)
|
67
|
+
con
|
68
|
+
|
69
|
+
## Argument Styles
|
70
|
+
Static arguments: Basic type of argument, optionally assigned a default value. These
|
71
|
+
arguments are automatically parsed when they are defined, and may be re-parsed later
|
72
|
+
for updates.
|
73
|
+
Dynamic arguments: These arguments are generated automatically once they are accessed,
|
74
|
+
or when the configdb is notified to parse the data.
|
75
|
+
|
76
|
+
=end
|
77
|
+
module Sereth
|
78
|
+
class ConfigDB
|
79
|
+
# Register the config paramters
|
80
|
+
binding.stage :sereth_util_loaded do
|
81
|
+
extend Config
|
82
|
+
end
|
83
|
+
|
84
|
+
@full_names = {}
|
85
|
+
@data = {}
|
86
|
+
|
87
|
+
class << self
|
88
|
+
def parse_file
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
def parse_args
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
def gen_path(path)
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
def get_path(path)
|
101
|
+
path = path.split('/').map(&:to_sym)
|
102
|
+
@data.get(*path)
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
def parse
|
107
|
+
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def initialize
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
def add(name, type)
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
def set(name, value)
|
120
|
+
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
module Config
|
125
|
+
# This module is only for extension
|
126
|
+
def self.included(target)
|
127
|
+
raise "The #{self} Module should only be extended, not included."
|
128
|
+
end
|
129
|
+
|
130
|
+
# Add the callback method added to the method_added stack
|
131
|
+
def self.extended(target)
|
132
|
+
# Stack the method_added callback
|
133
|
+
raise "Cannot exted system_config" if target.method_defined?(:system_config)
|
134
|
+
end
|
135
|
+
|
136
|
+
def args_config(*path, &block)
|
137
|
+
path = path.map(&:to_sym)
|
138
|
+
ConfigDB
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# Tree logging
|
2
|
+
# Multiple perspectives/buffers for threads and others
|
3
|
+
|
4
|
+
# Modify depth for any
|
5
|
+
module Sereth
|
6
|
+
module DevLogBinding
|
7
|
+
def var_in_parent(var_name)
|
8
|
+
begin
|
9
|
+
i = 0
|
10
|
+
while i += 1
|
11
|
+
ret = binding.of_caller(i).eval("#{var_name} if defined? #{var_name}")
|
12
|
+
return ret if !ret.nil?
|
13
|
+
end
|
14
|
+
rescue
|
15
|
+
return nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def dev_sectionize(func, tag)
|
20
|
+
# Get the closest parent binding with a
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module DevLogKernel
|
25
|
+
include Callbacks
|
26
|
+
|
27
|
+
def dev_sectionize(func, tag)
|
28
|
+
# Get the closest parent binding with a
|
29
|
+
self.define_method :func do |*args, &block|
|
30
|
+
Sereth::DevLog.section(tag)
|
31
|
+
begin
|
32
|
+
super(*args, &block)
|
33
|
+
ensure
|
34
|
+
Sereth::DevLog.pop
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
#
|
40
|
+
def putd(*args)
|
41
|
+
return if !Sereth::DevLog.active?
|
42
|
+
|
43
|
+
Sereth::DevLog.write(depth, *args)
|
44
|
+
end
|
45
|
+
|
46
|
+
def putds(*args)
|
47
|
+
if Sereth::DevLog.active?
|
48
|
+
putd(*args)
|
49
|
+
else
|
50
|
+
puts(*args)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class DevLogBuffers
|
56
|
+
# Random name with a low probability of intersection
|
57
|
+
@default_buffer = nil
|
58
|
+
@buffers = {}
|
59
|
+
|
60
|
+
class << self
|
61
|
+
def default_buffer
|
62
|
+
@default_buffer ||= LoggerBuffers.new
|
63
|
+
@default_buffer
|
64
|
+
end
|
65
|
+
|
66
|
+
def get_buffer(id = nil)
|
67
|
+
return default_buffer if id.nil?
|
68
|
+
@buffers[id] ||= LoggerBuffers.new
|
69
|
+
@buffers[id]
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
attr_accessor :mirror
|
74
|
+
def initialzie(spacer = " ")
|
75
|
+
@io = StringIO.new
|
76
|
+
@depth = 0
|
77
|
+
@spacer = spacer
|
78
|
+
@mirror = nil
|
79
|
+
end
|
80
|
+
|
81
|
+
def write(string)
|
82
|
+
# Generate the spacer to use for this write
|
83
|
+
cur_spacer = ""
|
84
|
+
@depth.times{cur_spacer << @spacer}
|
85
|
+
# Log the message to the boud IO, and optionally mirror the output elsewhere
|
86
|
+
string.split("\n").each do |str|
|
87
|
+
to_write = "#{cur_spacer}#{str}"
|
88
|
+
@io.write(to_write)
|
89
|
+
@mirror.write(to_write) if @mirror
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# Forward everything else to string IO
|
94
|
+
def respond_to_missing?(name, include_private = false)
|
95
|
+
@io.respond_to?(name, include_private)
|
96
|
+
end
|
97
|
+
|
98
|
+
# Forward everything else to string IO
|
99
|
+
def method_missing(name, *args, &block)
|
100
|
+
@io.send(name, *args, &block)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
class DevLog
|
105
|
+
@buffer_table = {}
|
106
|
+
@active = false
|
107
|
+
class << self
|
108
|
+
def active?
|
109
|
+
@active
|
110
|
+
end
|
111
|
+
|
112
|
+
def activate
|
113
|
+
@active = true
|
114
|
+
end
|
115
|
+
|
116
|
+
def root
|
117
|
+
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
def initialize(section, depth = 0, buffer = nil)
|
122
|
+
@buffer = buffer
|
123
|
+
@section = section
|
124
|
+
@depth = depth
|
125
|
+
end
|
126
|
+
|
127
|
+
def spawn(section)
|
128
|
+
self.class.new(section, @depth += 1, @buffer)
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
class Binding
|
135
|
+
include Sereth::DevLogBinding
|
136
|
+
end
|
137
|
+
|
138
|
+
module Kernel
|
139
|
+
include Sereth::DevLogKernel
|
140
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
=begin
|
2
|
+
TODO - When adding a regex to lexxer, insert it into the global state
|
3
|
+
machine. This state machine can match multiple objects based on context.
|
4
|
+
|
5
|
+
Result is based on selection priority
|
6
|
+
=end
|
7
|
+
|
8
|
+
module Sereth
|
9
|
+
|
10
|
+
class Parser
|
11
|
+
class << self
|
12
|
+
def inherited
|
13
|
+
# Log Stuff
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize(raw)
|
20
|
+
@raw = raw
|
21
|
+
@raw_pos = 0
|
22
|
+
end
|
23
|
+
|
24
|
+
def add_query
|
25
|
+
next_matcher = nil
|
26
|
+
to_match = /\G#{next_matcher}/
|
27
|
+
end
|
28
|
+
|
29
|
+
def query
|
30
|
+
res = @raw.match(next_query, @raw_pos)
|
31
|
+
raise 'Parse Error' if !res
|
32
|
+
match = res[0]
|
33
|
+
@raw_pos += match.size
|
34
|
+
match
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class JSONParser < Parser
|
39
|
+
_config do
|
40
|
+
ignore_whitespace true
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
# Global Value
|
45
|
+
value! _any(number, string, array, object, literals)
|
46
|
+
|
47
|
+
# Basic value types
|
48
|
+
literals! %w{false null true}
|
49
|
+
|
50
|
+
number! do
|
51
|
+
opt '-'
|
52
|
+
raw(:integers, %r{^(0|[1-9]\d+)})
|
53
|
+
opt raw(:frac, '.', /\d+/)
|
54
|
+
opt raw(:exp, /e|E/, /\d+/)
|
55
|
+
handle
|
56
|
+
end
|
57
|
+
|
58
|
+
string! '"', string_value, '"' do
|
59
|
+
string_value! _until(%r{(.*[^\\](\\\\)*|(\\\\)*)?(?=")})
|
60
|
+
end
|
61
|
+
|
62
|
+
# Recursive Definitions
|
63
|
+
values! _opt(value, _opt(',', values))
|
64
|
+
members! _opt(string, ':', value, _opt(',', members))
|
65
|
+
|
66
|
+
# Containers
|
67
|
+
array! '[', values, ']'
|
68
|
+
object! '{', members, '}'
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
=begin
|
2
|
+
# Staging Module
|
3
|
+
Allows for the configuration of execution stages, and provides code to be executed in
|
4
|
+
that stage. Node, code is executed in the current context.
|
5
|
+
|
6
|
+
This is particularly useful for tasks that need to be performed at specific spots in
|
7
|
+
the loading process. May also be useful for cleanup code.
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
binding.stage :name do
|
11
|
+
... code ...
|
12
|
+
end
|
13
|
+
|
14
|
+
# Example
|
15
|
+
$result = []
|
16
|
+
class Ex
|
17
|
+
val = 1
|
18
|
+
$result.push(val)
|
19
|
+
binding.stage(:after) {$result.push(val)}
|
20
|
+
val = 2
|
21
|
+
end
|
22
|
+
|
23
|
+
Sereth::Stage.run_stage :after
|
24
|
+
|
25
|
+
$result == [1, 2]
|
26
|
+
=end
|
27
|
+
require 'sourcify'
|
28
|
+
|
29
|
+
module Sereth
|
30
|
+
module StageBindingExtender
|
31
|
+
def run_stage(name)
|
32
|
+
Sereth::Stage.run_stage(:sereth_util_loaded)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
module StageBinding
|
37
|
+
# Convert the requested block to source code
|
38
|
+
def stage(name, &block)
|
39
|
+
Sereth::Stage.add_stage(name, self, block.to_source(:strip_enclosure => true))
|
40
|
+
end
|
41
|
+
|
42
|
+
# Extend target with the proper singleton methods
|
43
|
+
def self.included(target)
|
44
|
+
target.send(:extend, StageBindingExtender)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Stage
|
49
|
+
@db = {}
|
50
|
+
class << self
|
51
|
+
def add_stage(name, target_binding, code)
|
52
|
+
@db[name] ||= Stage.new(name)
|
53
|
+
@db[name].add(target_binding, code)
|
54
|
+
end
|
55
|
+
|
56
|
+
def run_stage(name)
|
57
|
+
return if !@db.has_key?(name)
|
58
|
+
@db.delete(name).run
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def initialize(name)
|
63
|
+
@name = name
|
64
|
+
@targets = []
|
65
|
+
end
|
66
|
+
|
67
|
+
def add(target_binding, code)
|
68
|
+
@targets.push([target_binding, code])
|
69
|
+
end
|
70
|
+
|
71
|
+
def run
|
72
|
+
@targets.each {|target_binding, code| target_binding.eval(code)}
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
class Binding
|
79
|
+
include Sereth::StageBinding
|
80
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Sereth
|
2
|
+
module SymbolCallbackIncludes
|
3
|
+
# Generate a proc object to be evaluated in a context
|
4
|
+
def caller
|
5
|
+
return proc {|*input| self.send(*(input + args))}
|
6
|
+
end
|
7
|
+
|
8
|
+
# Generate a proc object to be evaluated in a context with arg appended
|
9
|
+
def caller_push(*args)
|
10
|
+
return proc {|*input| self.send(*(input + args))}
|
11
|
+
end
|
12
|
+
|
13
|
+
# Generate a proc object to be evaluated in a context with arg prepended
|
14
|
+
def caller_shift(*args)
|
15
|
+
return proc do |*input|
|
16
|
+
return proc {|*input| self.send(*(args + input))}
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class SymbolCallback
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Symbol
|
26
|
+
include Sereth::SymbolCallbackIncludes
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sereth_json_spec
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0beta1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tikhon Botchkarev
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: andand
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: binding_of_caller
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sourcify
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: A gem to generate JSON schema and output from object instances
|
84
|
+
email: TikiTDO@gmail.com
|
85
|
+
executables: []
|
86
|
+
extensions: []
|
87
|
+
extra_rdoc_files: []
|
88
|
+
files:
|
89
|
+
- lib/seek_test.rb
|
90
|
+
- lib/sereth_json_spec.rb
|
91
|
+
- lib/sereth_json_spec/api.rb
|
92
|
+
- lib/sereth_json_spec/cache.rb
|
93
|
+
- lib/sereth_json_spec/data.rb
|
94
|
+
- lib/sereth_json_spec/exports.rb
|
95
|
+
- lib/sereth_json_spec/generator.rb
|
96
|
+
- lib/sereth_json_spec/imports.rb
|
97
|
+
- lib/sereth_json_spec/lib_config.rb
|
98
|
+
- lib/sereth_json_spec/utils.rb
|
99
|
+
- lib/sereth_utils/alias_args.rb
|
100
|
+
- lib/sereth_utils/all.rb
|
101
|
+
- lib/sereth_utils/callbacks.rb
|
102
|
+
- lib/sereth_utils/config.rb
|
103
|
+
- lib/sereth_utils/dev_log.rb
|
104
|
+
- lib/sereth_utils/parser.rb
|
105
|
+
- lib/sereth_utils/stage.rb
|
106
|
+
- lib/sereth_utils/symbol_callback.rb
|
107
|
+
homepage: https://github.com/TikiTDO/sereth_json_spec
|
108
|
+
licenses:
|
109
|
+
- MIT
|
110
|
+
metadata: {}
|
111
|
+
post_install_message:
|
112
|
+
rdoc_options: []
|
113
|
+
require_paths:
|
114
|
+
- lib
|
115
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 2.0.0
|
120
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>'
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.3.1
|
125
|
+
requirements: []
|
126
|
+
rubyforge_project:
|
127
|
+
rubygems_version: 2.0.0
|
128
|
+
signing_key:
|
129
|
+
specification_version: 4
|
130
|
+
summary: Sereth JSON Specification gem
|
131
|
+
test_files: []
|