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