ydl 0.2.06
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/.gitignore +23 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +83 -0
- data/README.org +208 -0
- data/Rakefile +6 -0
- data/bin/console +11 -0
- data/bin/setup +8 -0
- data/examples/brief.tex +43 -0
- data/examples/cases.ydl +79 -0
- data/examples/header.rb +12 -0
- data/examples/lawyers.ydl +65 -0
- data/examples/mwe.tex +67 -0
- data/examples/persons.ydl +10 -0
- data/examples/simple.tex +23 -0
- data/examples/test_page.tex +76 -0
- data/lib/ydl/core_ext/array.rb +6 -0
- data/lib/ydl/core_ext/array_refine.rb +16 -0
- data/lib/ydl/core_ext/boolean.rb +13 -0
- data/lib/ydl/core_ext/date.rb +6 -0
- data/lib/ydl/core_ext/hash.rb +16 -0
- data/lib/ydl/core_ext/numeric.rb +6 -0
- data/lib/ydl/core_ext/string.rb +16 -0
- data/lib/ydl/core_ext.rb +7 -0
- data/lib/ydl/errors.rb +5 -0
- data/lib/ydl/node.rb +190 -0
- data/lib/ydl/top_queue.rb +40 -0
- data/lib/ydl/tree.rb +95 -0
- data/lib/ydl/version.rb +3 -0
- data/lib/ydl/ydl.rb +244 -0
- data/lib/ydl.rb +15 -0
- data/spec/array_spec.rb +14 -0
- data/spec/core_ext/array_spec.rb +23 -0
- data/spec/core_ext/boolean_spec.rb +10 -0
- data/spec/core_ext/date_spec.rb +9 -0
- data/spec/core_ext/hash_spec.rb +19 -0
- data/spec/core_ext/numeric_spec.rb +13 -0
- data/spec/core_ext/string_spec.rb +27 -0
- data/spec/example_files/err/person_err.ydl +6 -0
- data/spec/example_files/home/user/.ydl/config_template.yaml +40 -0
- data/spec/example_files/home/user/.ydl/courts/courts.ydl +28 -0
- data/spec/example_files/home/user/.ydl/lawyers.ydl +40 -0
- data/spec/example_files/home/user/.ydl/persons.ydl +9 -0
- data/spec/example_files/home/user/project/cases.ydl +59 -0
- data/spec/example_files/home/user/project/courts.ydl +7 -0
- data/spec/example_files/home/user/project/judges.ydl +27 -0
- data/spec/example_files/home/user/project/lawyers.ydl +52 -0
- data/spec/example_files/home/user/project/persons.ydl +5 -0
- data/spec/example_files/home/user/project/subproject/lawyers.ydl +85 -0
- data/spec/example_files/home/user/project/subproject/persons.ydl +55 -0
- data/spec/example_files/sys/ydl/constants.ydl +1 -0
- data/spec/example_files/sys/ydl/junk.ydl +1 -0
- data/spec/spec_helper.rb +55 -0
- data/spec/ydl_error_spec.rb +15 -0
- data/spec/ydl_spec.rb +184 -0
- data/yaml_v_psych.rb +15 -0
- data/ydl.gemspec +40 -0
- metadata +230 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
# This is a comment
|
2
|
+
ded:
|
3
|
+
address:
|
4
|
+
street:
|
5
|
+
- Commerce Plaza I
|
6
|
+
- 7300 W. 110th Street, Suite 930
|
7
|
+
phone: 913-488-3342
|
8
|
+
bar_numbers:
|
9
|
+
NY: "DD-2145"
|
10
|
+
|
11
|
+
rjones:
|
12
|
+
sex: male
|
13
|
+
last: Jones
|
14
|
+
first: Robert
|
15
|
+
middle: G.
|
16
|
+
address:
|
17
|
+
street:
|
18
|
+
- Ropes & Gray LLP
|
19
|
+
- 800 Boylston Street
|
20
|
+
city: Boston
|
21
|
+
state: MA
|
22
|
+
zip: "02199"
|
23
|
+
phone: 617-951-7000
|
24
|
+
fax: 617-951-7050
|
25
|
+
email: robert.jones@ropesgray.com
|
26
|
+
|
27
|
+
mcrisp:
|
28
|
+
sex: male
|
29
|
+
last: Crisp
|
30
|
+
first: Martin
|
31
|
+
middle: J.
|
32
|
+
address:
|
33
|
+
street:
|
34
|
+
- Ropes & Gray LLP
|
35
|
+
- 1211 Avenue of the Americas
|
36
|
+
city: New York
|
37
|
+
state: NY
|
38
|
+
zip: "10036-8704"
|
39
|
+
phone: 212-596-9000
|
40
|
+
fax: 212-596-9090
|
41
|
+
email: martin.crisp@ropesgray.com
|
42
|
+
|
43
|
+
tfarrell:
|
44
|
+
sex: male
|
45
|
+
last: Farrell
|
46
|
+
first: Timothy
|
47
|
+
middle: R.
|
48
|
+
address:
|
49
|
+
street:
|
50
|
+
- Ropes & Gray LLP
|
51
|
+
- 191 North Wacker Drive, 32nd Floor
|
52
|
+
city: Chicago
|
53
|
+
state: IL
|
54
|
+
zip: "60606"
|
55
|
+
phone: 312-845-1209
|
56
|
+
fax: 312-845-5569
|
57
|
+
email: Timothy.Farrell@ropesgray.com
|
58
|
+
|
59
|
+
dclarke:
|
60
|
+
sex: male
|
61
|
+
last: Clarke
|
62
|
+
first: David
|
63
|
+
address:
|
64
|
+
street:
|
65
|
+
- DLA Piper LLP (US)
|
66
|
+
- 1251 Avenue of the Americas
|
67
|
+
city: New York
|
68
|
+
state: NY
|
69
|
+
zip: "10020"
|
70
|
+
phone: 212-335-4500
|
71
|
+
email: john.clarke@dlapiper.com
|
72
|
+
|
73
|
+
jclarke:
|
74
|
+
sex: male
|
75
|
+
last: Clarke
|
76
|
+
first: David
|
77
|
+
address:
|
78
|
+
street:
|
79
|
+
- DLA Piper LLP (US)
|
80
|
+
- 500 Eighth Street NW
|
81
|
+
city: Washington
|
82
|
+
state: DC
|
83
|
+
zip: "20004"
|
84
|
+
phone: 202-799-4000
|
85
|
+
email: david.clarke@dlapiper.com
|
@@ -0,0 +1,55 @@
|
|
1
|
+
zmpef1:
|
2
|
+
sex: entity
|
3
|
+
name: ZM Private Equity Fund I, L.P.
|
4
|
+
address:
|
5
|
+
street:
|
6
|
+
- c/o Corporation Service Company
|
7
|
+
- 2711 Centerville Rd, Suite 400
|
8
|
+
city: Wilmington
|
9
|
+
state: DE
|
10
|
+
zip: '19808'
|
11
|
+
|
12
|
+
zmpef2:
|
13
|
+
sex: entity
|
14
|
+
name: ZM Private Equity Fund II, L.P.
|
15
|
+
address:
|
16
|
+
street:
|
17
|
+
- c/o Corporation Service Company
|
18
|
+
- 2711 Centerville Rd, Suite 400
|
19
|
+
city: Wilmington
|
20
|
+
state: DE
|
21
|
+
zip: '19808'
|
22
|
+
|
23
|
+
morgan:
|
24
|
+
sex: male
|
25
|
+
first: Quinn
|
26
|
+
last: Morgan
|
27
|
+
address:
|
28
|
+
street:
|
29
|
+
- 60 East 42nd Street
|
30
|
+
- Suite 1400
|
31
|
+
city: New York
|
32
|
+
state: NY
|
33
|
+
zip: 10165
|
34
|
+
|
35
|
+
erickson:
|
36
|
+
sex: entity
|
37
|
+
name: Erickson Incorporated
|
38
|
+
address:
|
39
|
+
street:
|
40
|
+
- c/o The Corporation Trust Company
|
41
|
+
- Corporation Trust Center, 1209 Orange Street
|
42
|
+
city: Wilmington
|
43
|
+
state: DE
|
44
|
+
zip: '19801'
|
45
|
+
|
46
|
+
zmeac:
|
47
|
+
sex: entity
|
48
|
+
name: ZM EAC LLC
|
49
|
+
address:
|
50
|
+
street:
|
51
|
+
- 60 East 42nd Street
|
52
|
+
- Suite 1400
|
53
|
+
city: New York
|
54
|
+
state: NY
|
55
|
+
zip: 10165
|
@@ -0,0 +1 @@
|
|
1
|
+
pi: 3.14159
|
@@ -0,0 +1 @@
|
|
1
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'ydl'
|
3
|
+
|
4
|
+
require 'pry'
|
5
|
+
require 'debug'
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
# Enable flags like --only-failures and --next-failure
|
9
|
+
config.example_status_persistence_file_path = ".rspec_status"
|
10
|
+
|
11
|
+
config.expect_with :rspec do |c|
|
12
|
+
c.syntax = :expect
|
13
|
+
end
|
14
|
+
|
15
|
+
# The following sets up a mock-up of a file system to use for testing under
|
16
|
+
# the project's spec/example_files directory. It copies the configuration
|
17
|
+
# template file to a configuration file that changes where the system ydl
|
18
|
+
# directory is to be found.
|
19
|
+
begin_cwd = Dir.pwd
|
20
|
+
begin_home = ENV['HOME']
|
21
|
+
spec_sys_dir = File.join(__dir__, 'example_files', 'sys')
|
22
|
+
spec_home_dir = File.join(__dir__, 'example_files', 'home', 'user')
|
23
|
+
spec_project_dir = File.join(spec_home_dir, 'project', 'subproject')
|
24
|
+
cfg_template = File.join(spec_home_dir, '.ydl', 'config_template.yaml')
|
25
|
+
cfg_file = File.join(spec_home_dir, '.ydl', 'config.yaml')
|
26
|
+
|
27
|
+
config.before(:suite) do
|
28
|
+
# FileUtils.cp_r(spec_sys_dir, tmp_dir)
|
29
|
+
FileUtils.cp(cfg_template, cfg_file)
|
30
|
+
File.open(cfg_file, 'a') do |f|
|
31
|
+
cfg_line = <<-EOS
|
32
|
+
|
33
|
+
system_ydl_dir: #{spec_sys_dir}
|
34
|
+
|
35
|
+
EOS
|
36
|
+
f.write(cfg_line)
|
37
|
+
end
|
38
|
+
ENV['HOME'] = spec_home_dir
|
39
|
+
ENV['YDL_CONFIG_FILE'] = cfg_file
|
40
|
+
Dir.chdir(spec_project_dir)
|
41
|
+
end
|
42
|
+
|
43
|
+
config.after(:suite) do
|
44
|
+
FileUtils.rm_rf(cfg_file)
|
45
|
+
# FileUtils.rm_rf(tmp_sys)
|
46
|
+
ENV['HOME'] = begin_home
|
47
|
+
Dir.chdir(begin_cwd)
|
48
|
+
end
|
49
|
+
|
50
|
+
config.before(:suite) do
|
51
|
+
@save_err = $stderr
|
52
|
+
@err = File.new(File.join(__dir__, 'error.out'), 'w', textmode: true)
|
53
|
+
$stderr = @err
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Ydl do
|
4
|
+
before :all do
|
5
|
+
require 'law_doc'
|
6
|
+
end
|
7
|
+
|
8
|
+
describe 'load ydl_file with errors' do
|
9
|
+
it 'shows file where error occurred' do
|
10
|
+
expect {
|
11
|
+
Ydl.load_file('../../../../err/person_err.ydl')
|
12
|
+
}.to raise_error Ydl::UserError, /person_err.*line.*column/
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/spec/ydl_spec.rb
ADDED
@@ -0,0 +1,184 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Ydl do
|
4
|
+
before :all do
|
5
|
+
require 'law_doc'
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'has a version number' do
|
9
|
+
expect(Ydl::VERSION).not_to be nil
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'ydl_files' do
|
13
|
+
it 'finds all ydl files' do
|
14
|
+
ydls = Ydl.ydl_files
|
15
|
+
expect(ydls.size).to be > 5
|
16
|
+
# The last element ought to contain the name of the cwd.
|
17
|
+
expect(ydls.last).to match(/subproject/)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'can ignore ydl files by string' do
|
21
|
+
all_ydls = Ydl.ydl_files
|
22
|
+
some_ydls = Ydl.ydl_files(ignore: 'lawyers')
|
23
|
+
expect(all_ydls.size).to be > some_ydls.size
|
24
|
+
expect(all_ydls.any? { |n| n =~ /lawyer/ }).to be true
|
25
|
+
expect(some_ydls.any? { |n| n =~ /lawyer/ }).to be false
|
26
|
+
expect((all_ydls - some_ydls).all? { |n| n =~ /lawyer/ }).to be true
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'can ignore ydl files by regexp' do
|
30
|
+
all_ydls = Ydl.ydl_files
|
31
|
+
some_ydls = Ydl.ydl_files(ignore: /law/)
|
32
|
+
expect(all_ydls.size).to be > some_ydls.size
|
33
|
+
expect(all_ydls.any? { |n| n =~ /lawyer/ }).to be true
|
34
|
+
expect(some_ydls.any? { |n| n =~ /lawyer/ }).to be false
|
35
|
+
expect((all_ydls - some_ydls).all? { |n| n =~ /lawyer/ }).to be true
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'can ignore ydl files by array of string and regexp' do
|
39
|
+
all_ydls = Ydl.ydl_files
|
40
|
+
some_ydls = Ydl.ydl_files(ignore: ['courts', /law/])
|
41
|
+
expect(all_ydls.size).to be > some_ydls.size
|
42
|
+
expect(all_ydls.any? { |n| n =~ /lawyer|court/ }).to be true
|
43
|
+
expect(some_ydls.any? { |n| n =~ /lawyer|court/ }).to be false
|
44
|
+
expect((all_ydls - some_ydls).all? { |n| n =~ /lawyer|court/ }).to be true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'class instantiation' do
|
49
|
+
it 'should be able to find candidate classes within any module' do
|
50
|
+
cnds = Ydl.candidate_classes(:set)
|
51
|
+
expect(cnds.size).to be > 3
|
52
|
+
expect(cnds).to include(Set)
|
53
|
+
expect(cnds).to include(Psych::Set)
|
54
|
+
expect(cnds).to include(RSpec::Core::Set)
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should be able to find candidate classes within modules as string' do
|
58
|
+
cnds = Ydl.candidate_classes(:set, 'Psych')
|
59
|
+
expect(cnds.size).to eq(1)
|
60
|
+
expect(cnds).to include(Psych::Set)
|
61
|
+
|
62
|
+
cnds = Ydl.candidate_classes(:set, ',Psych, RSpec::Core')
|
63
|
+
expect(cnds.size).to eq(3)
|
64
|
+
expect(cnds).to include(Set)
|
65
|
+
expect(cnds).to include(Psych::Set)
|
66
|
+
expect(cnds).to include(RSpec::Core::Set)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'should find candidate_classes with modules as array' do
|
70
|
+
cnds = Ydl.candidate_classes(:set, ['', 'Psych'])
|
71
|
+
expect(cnds.size).to eq(2)
|
72
|
+
expect(cnds).to include(Set)
|
73
|
+
expect(cnds).to include(Psych::Set)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should know how to map keys to classes' do
|
77
|
+
Ydl.read_config
|
78
|
+
expect(Ydl.class_map(:persons)).to eq(LawDoc::Person)
|
79
|
+
expect(Ydl.class_map(:address)).to eq(LawDoc::Address)
|
80
|
+
expect(Ydl.class_map(:junk)).to be nil
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'should know init method for classes' do
|
84
|
+
Ydl.read_config
|
85
|
+
# expect(Ydl.class_init('LawDoc::Person')).to eq(:from_hash)
|
86
|
+
expect(Ydl.class_init('LawDoc::Address')).to eq(:new)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe 'selective load' do
|
91
|
+
before :all do
|
92
|
+
@people = Ydl.load('persons')
|
93
|
+
@lawyers = Ydl.load('lawyers')
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'should return a merged Hash keyed by symbols' do
|
97
|
+
expect(@people.class).to eq(Hash)
|
98
|
+
expect(@people.class).to eq(Hash)
|
99
|
+
expect(@people[:revive].class).to eq(LawDoc::Person)
|
100
|
+
expect(@people.keys.sort)
|
101
|
+
.to eq(%i[erickson mainstreet mdg morgan revive tdoherty zmeac zmpef1 zmpef2])
|
102
|
+
|
103
|
+
expect(@lawyers.class).to eq(Hash)
|
104
|
+
expect(@lawyers.class).to eq(Hash)
|
105
|
+
expect(@lawyers[:ded].class).to eq(LawDoc::Lawyer)
|
106
|
+
expect(@lawyers.keys.sort)
|
107
|
+
.to eq(%i[cjh dclarke ded jclarke mcrisp pittenger rjones tfarrell])
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should resolve cross references' do
|
111
|
+
expect(@people[:erickson].name).to eq('Erickson Incorporated')
|
112
|
+
expect(@lawyers[:ded].last).to eq('Doherty')
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'should instantiate all persons' do
|
116
|
+
klasses = { persons: 'LawDoc::Person' }
|
117
|
+
klasses.each_pair do |sym, kls|
|
118
|
+
Ydl[sym].each_pair do |_nm, obj|
|
119
|
+
expect(obj.class.name).to eq(kls)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'should instantiate all lawyers' do
|
125
|
+
klasses = { lawyers: 'LawDoc::Lawyer' }
|
126
|
+
klasses.each_pair do |sym, kls|
|
127
|
+
Ydl[sym].each_pair do |_nm, obj|
|
128
|
+
expect(obj.class.name).to eq(kls)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should allow access through Ydl[]' do
|
134
|
+
expect(Ydl.data[:persons].class).to eq(Hash)
|
135
|
+
expect(Ydl[:persons].class).to eq(Hash)
|
136
|
+
expect(Ydl.data[:lawyers].class).to eq(Hash)
|
137
|
+
expect(Ydl[:lawyers].class).to eq(Hash)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
describe 'load everything' do
|
142
|
+
before :all do
|
143
|
+
@hsh = Ydl.load
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'should return a merged Hash keyed by symbols' do
|
147
|
+
expect(@hsh.class).to eq(Hash)
|
148
|
+
expect(Ydl.data.class).to eq(Hash)
|
149
|
+
expect(Ydl.data[:lawyers][:ded].class).to eq(LawDoc::Lawyer)
|
150
|
+
expect(Ydl.data.keys.sort)
|
151
|
+
.to eq(%i[cases constants courts judges junk lawyers persons])
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'should resolve cross references' do
|
155
|
+
expect(Ydl[:cases][:erickson].parties.first.lawyers.first.last)
|
156
|
+
.to eq('Doherty')
|
157
|
+
end
|
158
|
+
|
159
|
+
it 'should instantiate all objects' do
|
160
|
+
klasses = { cases: 'LawDoc::Case', courts: 'LawDoc::Court',
|
161
|
+
judges: 'LawDoc::Judge', lawyers: 'LawDoc::Lawyer',
|
162
|
+
persons: 'LawDoc::Person' }
|
163
|
+
klasses.each_pair do |sym, kls|
|
164
|
+
Ydl[sym].each_value do |obj|
|
165
|
+
expect(obj.class.name).to eq(kls)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
it 'should include court in mainstreet case' do
|
171
|
+
mainstreet = Ydl[:cases][:mainstreet]
|
172
|
+
expect(mainstreet.court.state).to eq('KS')
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'should allow access through []' do
|
176
|
+
expect(Ydl[:lawyers].class).to eq(Hash)
|
177
|
+
expect(Ydl[:lawyers][:ded].class).to eq(LawDoc::Lawyer)
|
178
|
+
expect(Ydl[:lawyers][:ded].address.class).to eq(LawDoc::Address)
|
179
|
+
ad = Ydl[:cases][:erickson].parties.first.lawyers.first.address
|
180
|
+
expect(ad.class).to eq(LawDoc::Address)
|
181
|
+
expect(ad.city).to eq('Overland Park')
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
data/yaml_v_psych.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'benchmark'
|
4
|
+
require 'yaml'
|
5
|
+
require 'psych'
|
6
|
+
require 'ydl'
|
7
|
+
|
8
|
+
n = 100
|
9
|
+
puts "Loading files #{n} times..."
|
10
|
+
Benchmark.bm(10) do |x|
|
11
|
+
x.report('YAML') { n.times { YAML.load_file('/home/ded/.ydl/lawyers.ydl') } }
|
12
|
+
x.report('Psych') { n.times { Psych.load_file('/home/ded/.ydl/lawyers.ydl') } }
|
13
|
+
x.report('Ydl') { n.times { Ydl.load_file('/home/ded/.ydl/lawyers.ydl') } }
|
14
|
+
end
|
15
|
+
puts "Done."
|
data/ydl.gemspec
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'ydl/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = 'ydl'
|
9
|
+
spec.version = Ydl::VERSION
|
10
|
+
spec.authors = ['Daniel E. Doherty']
|
11
|
+
spec.email = ['ded@ddoherty.net']
|
12
|
+
|
13
|
+
spec.summary = 'Object definition and instantiation using YAML files for Ruby programs'
|
14
|
+
spec.description = <<~DESC
|
15
|
+
Ydl provides a way to supply a ruby app with initialized objects by allowing
|
16
|
+
the user to supply the data about the objects in a hierarchical series of
|
17
|
+
"data definition files" with the extension .ydl.
|
18
|
+
DESC
|
19
|
+
spec.homepage = 'https://github.com/ddoherty03/ydl.git'
|
20
|
+
spec.license = 'MIT'
|
21
|
+
|
22
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
23
|
+
f.match(%r{^(test|features)/})
|
24
|
+
end
|
25
|
+
spec.bindir = 'bin'
|
26
|
+
# spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
27
|
+
spec.require_paths = ['lib']
|
28
|
+
|
29
|
+
spec.add_dependency 'activesupport', '~>6.0'
|
30
|
+
spec.add_dependency 'fat_core'
|
31
|
+
spec.add_dependency 'psych'
|
32
|
+
|
33
|
+
spec.add_development_dependency 'law_doc', '>= 0.1.15'
|
34
|
+
spec.add_development_dependency 'pry'
|
35
|
+
spec.add_development_dependency 'pry-doc'
|
36
|
+
spec.add_development_dependency 'debug', '>= 1.0.0'
|
37
|
+
spec.add_development_dependency 'rake'
|
38
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
39
|
+
# spec.add_development_dependency 'law_doc'
|
40
|
+
end
|
metadata
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ydl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.06
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Daniel E. Doherty
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-01-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '6.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: fat_core
|
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: psych
|
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: law_doc
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.1.15
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.1.15
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry-doc
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: debug
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.0.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.0.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.0'
|
139
|
+
description: |
|
140
|
+
Ydl provides a way to supply a ruby app with initialized objects by allowing
|
141
|
+
the user to supply the data about the objects in a hierarchical series of
|
142
|
+
"data definition files" with the extension .ydl.
|
143
|
+
email:
|
144
|
+
- ded@ddoherty.net
|
145
|
+
executables: []
|
146
|
+
extensions: []
|
147
|
+
extra_rdoc_files: []
|
148
|
+
files:
|
149
|
+
- ".gitignore"
|
150
|
+
- ".rspec"
|
151
|
+
- ".travis.yml"
|
152
|
+
- Gemfile
|
153
|
+
- Gemfile.lock
|
154
|
+
- README.org
|
155
|
+
- Rakefile
|
156
|
+
- bin/console
|
157
|
+
- bin/setup
|
158
|
+
- examples/brief.tex
|
159
|
+
- examples/cases.ydl
|
160
|
+
- examples/header.rb
|
161
|
+
- examples/lawyers.ydl
|
162
|
+
- examples/mwe.tex
|
163
|
+
- examples/persons.ydl
|
164
|
+
- examples/simple.tex
|
165
|
+
- examples/test_page.tex
|
166
|
+
- lib/ydl.rb
|
167
|
+
- lib/ydl/core_ext.rb
|
168
|
+
- lib/ydl/core_ext/array.rb
|
169
|
+
- lib/ydl/core_ext/array_refine.rb
|
170
|
+
- lib/ydl/core_ext/boolean.rb
|
171
|
+
- lib/ydl/core_ext/date.rb
|
172
|
+
- lib/ydl/core_ext/hash.rb
|
173
|
+
- lib/ydl/core_ext/numeric.rb
|
174
|
+
- lib/ydl/core_ext/string.rb
|
175
|
+
- lib/ydl/errors.rb
|
176
|
+
- lib/ydl/node.rb
|
177
|
+
- lib/ydl/top_queue.rb
|
178
|
+
- lib/ydl/tree.rb
|
179
|
+
- lib/ydl/version.rb
|
180
|
+
- lib/ydl/ydl.rb
|
181
|
+
- spec/array_spec.rb
|
182
|
+
- spec/core_ext/array_spec.rb
|
183
|
+
- spec/core_ext/boolean_spec.rb
|
184
|
+
- spec/core_ext/date_spec.rb
|
185
|
+
- spec/core_ext/hash_spec.rb
|
186
|
+
- spec/core_ext/numeric_spec.rb
|
187
|
+
- spec/core_ext/string_spec.rb
|
188
|
+
- spec/example_files/err/person_err.ydl
|
189
|
+
- spec/example_files/home/user/.ydl/config_template.yaml
|
190
|
+
- spec/example_files/home/user/.ydl/courts/courts.ydl
|
191
|
+
- spec/example_files/home/user/.ydl/lawyers.ydl
|
192
|
+
- spec/example_files/home/user/.ydl/persons.ydl
|
193
|
+
- spec/example_files/home/user/project/cases.ydl
|
194
|
+
- spec/example_files/home/user/project/courts.ydl
|
195
|
+
- spec/example_files/home/user/project/judges.ydl
|
196
|
+
- spec/example_files/home/user/project/lawyers.ydl
|
197
|
+
- spec/example_files/home/user/project/persons.ydl
|
198
|
+
- spec/example_files/home/user/project/subproject/lawyers.ydl
|
199
|
+
- spec/example_files/home/user/project/subproject/persons.ydl
|
200
|
+
- spec/example_files/sys/ydl/constants.ydl
|
201
|
+
- spec/example_files/sys/ydl/junk.ydl
|
202
|
+
- spec/spec_helper.rb
|
203
|
+
- spec/ydl_error_spec.rb
|
204
|
+
- spec/ydl_spec.rb
|
205
|
+
- yaml_v_psych.rb
|
206
|
+
- ydl.gemspec
|
207
|
+
homepage: https://github.com/ddoherty03/ydl.git
|
208
|
+
licenses:
|
209
|
+
- MIT
|
210
|
+
metadata: {}
|
211
|
+
post_install_message:
|
212
|
+
rdoc_options: []
|
213
|
+
require_paths:
|
214
|
+
- lib
|
215
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
216
|
+
requirements:
|
217
|
+
- - ">="
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0'
|
220
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
|
+
requirements:
|
222
|
+
- - ">="
|
223
|
+
- !ruby/object:Gem::Version
|
224
|
+
version: '0'
|
225
|
+
requirements: []
|
226
|
+
rubygems_version: 3.3.3
|
227
|
+
signing_key:
|
228
|
+
specification_version: 4
|
229
|
+
summary: Object definition and instantiation using YAML files for Ruby programs
|
230
|
+
test_files: []
|