sec_query 1.1.0 → 1.5.0
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 +5 -5
- data/.github/workflows/ruby.yml +35 -0
- data/.gitignore +2 -0
- data/Gemfile +1 -1
- data/README.md +69 -47
- data/Rakefile +9 -1
- data/lib/sec_query.rb +1 -3
- data/lib/sec_query/entity.rb +3 -7
- data/lib/sec_query/filing.rb +19 -18
- data/lib/sec_query/filing_detail.rb +68 -0
- data/lib/sec_query/sec_uri.rb +5 -5
- data/lib/sec_query/version.rb +1 -1
- data/sec_query.gemspec +13 -10
- data/spec/sec_query/entity_spec.rb +35 -2
- data/spec/sec_query/filing_spec.rb +96 -81
- data/spec/sec_query/sec_uri_spec.rb +7 -7
- data/spec/spec_helper.rb +8 -8
- metadata +81 -34
- data/lib/sec_query/relationship.rb +0 -72
- data/lib/sec_query/transaction.rb +0 -106
- data/spec/sec_query/transaction_spec.rb +0 -39
- data/spec/support/filings/filing.txt +0 -257
- data/spec/support/idx/test.idx +0 -4639
data/lib/sec_query/version.rb
CHANGED
data/sec_query.gemspec
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
$:.push File.expand_path('../lib', __FILE__)
|
3
3
|
|
4
4
|
require 'sec_query/version'
|
5
|
-
require 'sec_query'
|
6
5
|
|
7
6
|
Gem::Specification.new do |s|
|
8
7
|
s.name = 'sec_query'
|
@@ -12,7 +11,7 @@ Gem::Specification.new do |s|
|
|
12
11
|
s.license = 'MIT'
|
13
12
|
s.homepage = 'https://github.com/tyrauber/sec_query'
|
14
13
|
s.summary = 'A ruby gem for querying the United States Securities and Exchange Commission Edgar System.'
|
15
|
-
s.description = 'Search for company or person, by name, symbol or Central Index Key (CIK), and retrieve
|
14
|
+
s.description = 'Search for company or person, by name, symbol or Central Index Key (CIK), and retrieve filings.'
|
16
15
|
|
17
16
|
s.rubyforge_project = 'sec_query'
|
18
17
|
s.files = `git ls-files`.split("\n")
|
@@ -20,11 +19,15 @@ Gem::Specification.new do |s|
|
|
20
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
20
|
s.require_paths = ['lib']
|
22
21
|
|
23
|
-
s.add_development_dependency '
|
24
|
-
s.add_development_dependency '
|
25
|
-
s.add_development_dependency '
|
26
|
-
s.add_development_dependency '
|
27
|
-
s.
|
28
|
-
s.
|
29
|
-
s.add_runtime_dependency '
|
30
|
-
|
22
|
+
s.add_development_dependency 'bundler', '~> 2.2.14'
|
23
|
+
s.add_development_dependency 'rake'
|
24
|
+
s.add_development_dependency 'rspec', '~> 3.10'
|
25
|
+
s.add_development_dependency 'vcr', '~> 6.0'
|
26
|
+
s.add_development_dependency 'webmock', '~> 3.12'
|
27
|
+
s.add_development_dependency 'rubocop', '~> 1.11'
|
28
|
+
s.add_runtime_dependency 'rest-client', '~> 2.1.0'
|
29
|
+
s.add_runtime_dependency 'addressable', '~> 2.7'
|
30
|
+
s.add_runtime_dependency 'nokogiri', '~> 1'
|
31
|
+
s.add_runtime_dependency 'activesupport', '~> 5.2'
|
32
|
+
s.add_runtime_dependency 'rss', '~> 0.2'
|
33
|
+
end
|
@@ -7,7 +7,7 @@ describe SecQuery::Entity do
|
|
7
7
|
|
8
8
|
describe "Company Queries", vcr: { cassette_name: "aapl"} do
|
9
9
|
|
10
|
-
let(:query){{name: "
|
10
|
+
let(:query){{name: "Apple Inc.", sic: "3571", symbol: "aapl", cik:"0000320193"}}
|
11
11
|
|
12
12
|
[:symbol, :cik, :name].each do |key|
|
13
13
|
context "when quering by #{key}" do
|
@@ -37,7 +37,40 @@ describe SecQuery::Entity do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
|
+
describe "Company Queries - Alphabet Inc.", vcr: { cassette_name: "googl"} do
|
42
|
+
|
43
|
+
let(:query){{name: "Alphabet Inc.", sic: "7370", symbol: "googl", cik:"0001652044"}}
|
44
|
+
|
45
|
+
[:symbol, :cik, :name].each do |key|
|
46
|
+
context "when quering by #{key}" do
|
47
|
+
describe "as hash" do
|
48
|
+
|
49
|
+
let(:entity){ SecQuery::Entity.find({ key => query[key] }) }
|
50
|
+
|
51
|
+
it "should be valid" do
|
52
|
+
is_valid?(entity)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should have a valid mailing address" do
|
56
|
+
is_valid_address?(entity.mailing_address)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should have a valid business address" do
|
60
|
+
is_valid_address?(entity.business_address)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "as string" do
|
65
|
+
it "should be valid" do
|
66
|
+
entity = SecQuery::Entity.find(query[key])
|
67
|
+
is_valid?(entity)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
41
74
|
describe "People Queries", vcr: { cassette_name: "Steve Jobs"} do
|
42
75
|
|
43
76
|
let(:query){ { name: "JOBS STEVEN P", :cik => "0001007844" } }
|
@@ -5,57 +5,32 @@ require 'spec_helper'
|
|
5
5
|
describe SecQuery::Filing do
|
6
6
|
it '::uri_for_recent' do
|
7
7
|
expect(SecQuery::Filing.uri_for_recent.to_s)
|
8
|
-
.to eq('
|
8
|
+
.to eq('https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent&company&count=100&output=atom&owner=include&start=0')
|
9
9
|
end
|
10
10
|
|
11
11
|
it '::uri_for_cik' do
|
12
12
|
expect(SecQuery::Filing.uri_for_cik('testing').to_s)
|
13
|
-
.to eq('
|
13
|
+
.to eq('https://www.sec.gov/cgi-bin/browse-edgar?CIK=testing&action=getcompany&company&count=100&output=atom&owner=include&start=0')
|
14
14
|
end
|
15
15
|
|
16
|
-
describe '::
|
17
|
-
let(:index) {
|
18
|
-
let(:filing1) { SecQuery::Filing.filings_for_index(index).first }
|
16
|
+
describe '::for_date', vcr: { cassette_name: 'idx' } do
|
17
|
+
let(:index) { SecQuery::Filing.for_date(Date.parse('20161230')) }
|
19
18
|
|
20
19
|
it 'parses all of the filings' do
|
21
|
-
expect(
|
20
|
+
expect(index.count).to eq(2554)
|
22
21
|
end
|
23
22
|
|
24
23
|
it 'correctly parses out the link' do
|
25
|
-
expect(
|
26
|
-
.to
|
24
|
+
expect(index.first.link)
|
25
|
+
.to match(/https:\/\/www.sec.gov\/Archives\/edgar\/data\//)
|
27
26
|
end
|
28
27
|
|
29
28
|
it 'correctly parses out the cik' do
|
30
|
-
expect(
|
29
|
+
expect(index.first.cik).to eq('1605941')
|
31
30
|
end
|
32
31
|
|
33
32
|
it 'correctly parses out the term' do
|
34
|
-
expect(
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe '::for_date' do
|
39
|
-
let(:filings) do
|
40
|
-
[].tap do |filings|
|
41
|
-
SecQuery::Filing.for_date(Date.parse('20121123')) do |f|
|
42
|
-
filings << f
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
let(:filing1) { filings.first }
|
48
|
-
|
49
|
-
it 'correctly parses a filing from a zipped company index' do
|
50
|
-
expect(filing1.term).to eq('4')
|
51
|
-
expect(filing1.cik).to eq('1551138')
|
52
|
-
expect(filing1.date).to eq(Date.parse('20121123'))
|
53
|
-
expect(filing1.link)
|
54
|
-
.to eq('http://www.sec.gov/Archives/edgar/data/1551138/0001144204-12-064668.txt')
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'returns nil if for_date is run on a market close day' do
|
58
|
-
expect(SecQuery::Filing.for_date(Date.parse('20120101'))).to eq(nil)
|
33
|
+
expect(index.first.term).to eq('N-CSR')
|
59
34
|
end
|
60
35
|
end
|
61
36
|
|
@@ -86,61 +61,101 @@ describe SecQuery::Filing do
|
|
86
61
|
end
|
87
62
|
|
88
63
|
describe "::find" do
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
{cik: "0000320193", name: "APPLE INC"},
|
93
|
-
{cik: "0001001039", name: "WALT DISNEY CO/"},
|
94
|
-
{cik: "0001002114", name: "PIXAR \\CA\\"}
|
95
|
-
],
|
96
|
-
transactions:[
|
97
|
-
{filing_number: "0001181431-07-052839", reporting_owner: "APPLE INC", shares:120000.0},
|
98
|
-
{filing_number: "0001181431-07-052839", reporting_owner: "APPLE INC", shares: 40000.0},
|
99
|
-
{filing_number: "0001181431-07-052839", reporting_owner: "APPLE INC", shares: 40000.0},
|
100
|
-
{filing_number: "0001181431-07-052839", reporting_owner: "APPLE INC", shares: 40000.0},
|
101
|
-
{filing_number: "0001181431-06-028746", reporting_owner: "WALT DISNEY CO/", shares: 138000004.0},
|
102
|
-
{filing_number: "0001356184-06-000008", reporting_owner: "PIXAR \\CA\\", shares: 60000002.0},
|
103
|
-
{filing_number: "0001181431-06-019230", reporting_owner: "APPLE COMPUTER INC", shares: 4573553.0},
|
104
|
-
{filing_number: "0001181431-06-028747", reporting_owner: "WALT DISNEY CO/", shares: 0.0}
|
105
|
-
],
|
106
|
-
filings:[
|
107
|
-
{cik: "0001007844", file_id: "0001181431-07-052839"},
|
108
|
-
{cik: "0001007844", file_id: "0001356184-06-000008"},
|
109
|
-
{cik: "0001007844", file_id: "0001193125-06-103741"},
|
110
|
-
{cik: "0001007844", file_id: "0001181431-06-028747"},
|
111
|
-
{cik: "0001007844", file_id: "0001181431-06-028746"},
|
112
|
-
{cik: "0001007844", file_id: "0001181431-06-019230"},
|
113
|
-
{cik: "0001007844", file_id: "0001193125-06-019727"},
|
114
|
-
{cik: "0001007844", file_id: "0001104659-03-004723"}
|
115
|
-
]
|
116
|
-
}}
|
117
|
-
|
118
|
-
let(:entity) {SecQuery::Entity.find(query[:cik])}
|
119
|
-
|
120
|
-
describe "Filings", vcr: { cassette_name: "Steve Jobs"} do
|
121
|
-
it "should respond to filings" do
|
122
|
-
entity.should respond_to(:filings)
|
123
|
-
entity.filings.should be_kind_of(Array)
|
64
|
+
shared_examples_for "it found filings" do
|
65
|
+
it "should return an array of filings" do
|
66
|
+
expect(filings).to be_kind_of(Array)
|
124
67
|
end
|
125
68
|
|
126
|
-
it "should be valid
|
127
|
-
is_valid_filing?(
|
69
|
+
it "the filings should be valid" do
|
70
|
+
is_valid_filing?(filings.first)
|
128
71
|
end
|
129
72
|
end
|
130
73
|
|
74
|
+
let(:cik){"0000320193"}
|
75
|
+
|
76
|
+
context "when querying by cik" do
|
77
|
+
let(:filings){ SecQuery::Filing.find(cik) }
|
78
|
+
|
79
|
+
describe "Filings", vcr: { cassette_name: "Steve Jobs"} do
|
80
|
+
it_behaves_like "it found filings"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context "when querying cik and by type param" do
|
85
|
+
let(:filings){ SecQuery::Filing.find(cik, 0, 40, { type: "10-K" }) }
|
86
|
+
|
87
|
+
describe "Filings", vcr: { cassette_name: "Steve Jobs"} do
|
88
|
+
it_behaves_like "it found filings"
|
89
|
+
|
90
|
+
it "should only return filings of type" do
|
91
|
+
expect(filings.first.term).to eq "10-K"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
131
96
|
describe '#content', vcr: { cassette_name: 'content' } do
|
97
|
+
let(:index) { SecQuery::Filing.for_date(Date.parse('20161230')) }
|
98
|
+
|
132
99
|
it 'returns content of the filing by requesting the link' do
|
133
|
-
f = Filing.new(
|
134
|
-
|
135
|
-
title: 'test filing title',
|
136
|
-
summary: 'test filing',
|
137
|
-
link: 'http://www.sec.gov/Archives/edgar/data/1572871/000114036114019536/0001140361-14-019536.txt',
|
138
|
-
term: '4',
|
139
|
-
date: Date.today,
|
140
|
-
file_id: 1
|
141
|
-
)
|
142
|
-
expect(f.content).to eq(File.read('./spec/support/filings/filing.txt'))
|
100
|
+
f = Filing.new(link: index.first.link)
|
101
|
+
expect(f.content).to match(/^(<SEC-DOCUMENT>)/)
|
143
102
|
end
|
144
103
|
end
|
104
|
+
|
105
|
+
describe "::last", vcr: { cassette_name: "Steve Jobs"} do
|
106
|
+
let(:cik) { "0000320193" }
|
107
|
+
|
108
|
+
context 'when querying by cik' do
|
109
|
+
let(:filing) { SecQuery::Filing.last(cik) }
|
110
|
+
|
111
|
+
it 'returns the first filing' do
|
112
|
+
expect(filing).to be_kind_of(SecQuery::Filing)
|
113
|
+
is_valid_filing?(filing)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'when querying cik and by type param' do
|
118
|
+
let(:filing) { SecQuery::Filing.last(cik,{ type: "10-K" }) }
|
119
|
+
|
120
|
+
describe "Filings", vcr: { cassette_name: "Steve Jobs"} do
|
121
|
+
it "should return filing of type 10-K" do
|
122
|
+
expect(filing).to be_kind_of(SecQuery::Filing)
|
123
|
+
expect(filing.term).to eq "10-K"
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe '#detail', vcr: { cassette_name: 'Steve Jobs'} do
|
131
|
+
let(:cik) { '0000320193' }
|
132
|
+
let(:filing) { SecQuery::Filing.find(cik, 0, 1, {type: type}).first }
|
133
|
+
subject(:filing_detail) { filing.detail }
|
134
|
+
|
135
|
+
shared_examples 'Valid SecQuery::FilingDetail' do |filing_type|
|
136
|
+
it 'valid filing detail' do
|
137
|
+
expect(filing_detail).to be_a SecQuery::FilingDetail
|
138
|
+
expect((Date.strptime(subject.filing_date, '%Y-%m-%d') rescue false)).to be_a Date
|
139
|
+
expect((DateTime.strptime(subject.accepted_date, '%Y-%m-%d %H:%M:%S') rescue false)).to be_a DateTime
|
140
|
+
expect((Date.strptime(subject.period_of_report, '%Y-%m-%d') rescue false)).to be_a Date
|
141
|
+
expect(filing_detail.sec_access_number).to match /^[0-9]{10}-[0-9]{2}-[0-9]{6}$/ # ex: 0000320193-18-000100
|
142
|
+
expect(filing_detail.document_count).to be > 0
|
143
|
+
|
144
|
+
|
145
|
+
expect(filing_detail.data_files).not_to be_empty if filing_type == '10-K'
|
146
|
+
expect(filing_detail.data_files).to be_empty if filing_type == '4'
|
147
|
+
expect(filing_detail.format_files).not_to be_empty
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
context '10-K' do
|
152
|
+
let(:type) { '10-K' }
|
153
|
+
it_behaves_like 'Valid SecQuery::FilingDetail', '10-K'
|
154
|
+
end
|
155
|
+
|
156
|
+
context 'Form 4' do
|
157
|
+
let(:type) { '4' }
|
158
|
+
it_behaves_like 'Valid SecQuery::FilingDetail', '4'
|
159
|
+
end
|
145
160
|
end
|
146
161
|
end
|
@@ -7,31 +7,31 @@ describe SecQuery::SecURI do
|
|
7
7
|
describe '#browse_edgar_uri' do
|
8
8
|
it 'builds a default /browse-edgar/ url' do
|
9
9
|
uri = SecQuery::SecURI.browse_edgar_uri
|
10
|
-
expect(uri.to_s).to eq('
|
10
|
+
expect(uri.to_s).to eq('https://www.sec.gov/cgi-bin/browse-edgar')
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'builds a default /browse-edgar/ url with options: {symbol: "AAPL"}' do
|
14
14
|
uri = SecQuery::SecURI.browse_edgar_uri(symbol: 'AAPL')
|
15
15
|
expect(uri.to_s)
|
16
|
-
.to include('
|
16
|
+
.to include('https://www.sec.gov/cgi-bin/browse-edgar?CIK=AAPL')
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'builds a default /browse-edgar/ url with options: {cik: "AAPL"}' do
|
20
20
|
uri = SecQuery::SecURI.browse_edgar_uri(cik: 'AAPL')
|
21
21
|
expect(uri.to_s)
|
22
|
-
.to include('
|
22
|
+
.to include('https://www.sec.gov/cgi-bin/browse-edgar?CIK=AAPL')
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'builds a default /browse-edgar/ url with options: "AAPL"' do
|
26
26
|
uri = SecQuery::SecURI.browse_edgar_uri('AAPL')
|
27
27
|
expect(uri.to_s)
|
28
|
-
.to eq('
|
28
|
+
.to eq('https://www.sec.gov/cgi-bin/browse-edgar?CIK=AAPL')
|
29
29
|
end
|
30
30
|
|
31
|
-
it 'builds a default /browse-edgar/ url with options: "Apple"' do
|
32
|
-
uri = SecQuery::SecURI.browse_edgar_uri('Apple')
|
31
|
+
it 'builds a default /browse-edgar/ url with options: "Apple Inc"' do
|
32
|
+
uri = SecQuery::SecURI.browse_edgar_uri('Apple Inc')
|
33
33
|
expect(uri.to_s)
|
34
|
-
.to eq('
|
34
|
+
.to eq('https://www.sec.gov/cgi-bin/browse-edgar?company=Apple%20Inc')
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
data/spec/spec_helper.rb
CHANGED
@@ -6,24 +6,24 @@ require 'sec_query'
|
|
6
6
|
require 'support/vcr'
|
7
7
|
|
8
8
|
def is_valid?(entity)
|
9
|
-
entity.
|
10
|
-
entity.name.
|
11
|
-
entity.cik.
|
9
|
+
expect(entity).to_not be_nil
|
10
|
+
expect(entity.name).to eq query[:name]
|
11
|
+
expect(entity.cik).to eq query[:cik]
|
12
12
|
entity.instance_variables.each do |key|
|
13
|
-
SecQuery::Entity::COLUMNS.
|
13
|
+
expect(SecQuery::Entity::COLUMNS).to include(key[1..-1].to_sym)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
def is_valid_address?(address)
|
18
|
-
address.
|
18
|
+
expect(address).to_not be_nil
|
19
19
|
address.keys.each do |key|
|
20
|
-
['city', 'state', 'street1', 'street2', 'type', 'zip', 'phone'].
|
20
|
+
expect(['city', 'state', 'street1', 'street2', 'type', 'zip', 'phone']).to include(key)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
def is_valid_filing?(filing)
|
25
|
-
filing.
|
25
|
+
expect(filing).to_not be_nil
|
26
26
|
filing.instance_variables.each do |key|
|
27
|
-
SecQuery::Filing::COLUMNS.
|
27
|
+
expect(SecQuery::Filing::COLUMNS).to include(key[1..-1].to_sym)
|
28
28
|
end
|
29
29
|
end
|
metadata
CHANGED
@@ -1,147 +1,199 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sec_query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ty Rauber
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.2.14
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.2.14
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: rspec
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
16
44
|
requirements:
|
17
45
|
- - "~>"
|
18
46
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
47
|
+
version: '3.10'
|
20
48
|
type: :development
|
21
49
|
prerelease: false
|
22
50
|
version_requirements: !ruby/object:Gem::Requirement
|
23
51
|
requirements:
|
24
52
|
- - "~>"
|
25
53
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
54
|
+
version: '3.10'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: vcr
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
30
58
|
requirements:
|
31
59
|
- - "~>"
|
32
60
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
61
|
+
version: '6.0'
|
34
62
|
type: :development
|
35
63
|
prerelease: false
|
36
64
|
version_requirements: !ruby/object:Gem::Requirement
|
37
65
|
requirements:
|
38
66
|
- - "~>"
|
39
67
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
68
|
+
version: '6.0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: webmock
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
44
72
|
requirements:
|
45
73
|
- - "~>"
|
46
74
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
75
|
+
version: '3.12'
|
48
76
|
type: :development
|
49
77
|
prerelease: false
|
50
78
|
version_requirements: !ruby/object:Gem::Requirement
|
51
79
|
requirements:
|
52
80
|
- - "~>"
|
53
81
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
82
|
+
version: '3.12'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: rubocop
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
87
|
- - "~>"
|
60
88
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
89
|
+
version: '1.11'
|
62
90
|
type: :development
|
63
91
|
prerelease: false
|
64
92
|
version_requirements: !ruby/object:Gem::Requirement
|
65
93
|
requirements:
|
66
94
|
- - "~>"
|
67
95
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
96
|
+
version: '1.11'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
98
|
+
name: rest-client
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
72
100
|
requirements:
|
73
101
|
- - "~>"
|
74
102
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
103
|
+
version: 2.1.0
|
76
104
|
type: :runtime
|
77
105
|
prerelease: false
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
79
107
|
requirements:
|
80
108
|
- - "~>"
|
81
109
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
110
|
+
version: 2.1.0
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
112
|
+
name: addressable
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
115
|
- - "~>"
|
88
116
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
117
|
+
version: '2.7'
|
90
118
|
type: :runtime
|
91
119
|
prerelease: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
93
121
|
requirements:
|
94
122
|
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
124
|
+
version: '2.7'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: nokogiri
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
129
|
- - "~>"
|
102
130
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1
|
131
|
+
version: '1'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: activesupport
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '5.2'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '5.2'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rss
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.2'
|
104
160
|
type: :runtime
|
105
161
|
prerelease: false
|
106
162
|
version_requirements: !ruby/object:Gem::Requirement
|
107
163
|
requirements:
|
108
164
|
- - "~>"
|
109
165
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
166
|
+
version: '0.2'
|
111
167
|
description: Search for company or person, by name, symbol or Central Index Key (CIK),
|
112
|
-
and retrieve
|
168
|
+
and retrieve filings.
|
113
169
|
email:
|
114
170
|
- tyrauber@mac.com
|
115
171
|
executables: []
|
116
172
|
extensions: []
|
117
173
|
extra_rdoc_files: []
|
118
174
|
files:
|
175
|
+
- ".github/workflows/ruby.yml"
|
119
176
|
- ".gitignore"
|
120
177
|
- Gemfile
|
121
|
-
- Gemfile.lock
|
122
178
|
- README.md
|
123
179
|
- Rakefile
|
124
180
|
- lib/sec_query.rb
|
125
181
|
- lib/sec_query/entity.rb
|
126
182
|
- lib/sec_query/filing.rb
|
127
|
-
- lib/sec_query/
|
183
|
+
- lib/sec_query/filing_detail.rb
|
128
184
|
- lib/sec_query/sec_uri.rb
|
129
|
-
- lib/sec_query/transaction.rb
|
130
185
|
- lib/sec_query/version.rb
|
131
186
|
- sec_query.gemspec
|
132
187
|
- spec/sec_query/entity_spec.rb
|
133
188
|
- spec/sec_query/filing_spec.rb
|
134
189
|
- spec/sec_query/sec_uri_spec.rb
|
135
|
-
- spec/sec_query/transaction_spec.rb
|
136
190
|
- spec/spec_helper.rb
|
137
|
-
- spec/support/filings/filing.txt
|
138
|
-
- spec/support/idx/test.idx
|
139
191
|
- spec/support/vcr.rb
|
140
192
|
homepage: https://github.com/tyrauber/sec_query
|
141
193
|
licenses:
|
142
194
|
- MIT
|
143
195
|
metadata: {}
|
144
|
-
post_install_message:
|
196
|
+
post_install_message:
|
145
197
|
rdoc_options: []
|
146
198
|
require_paths:
|
147
199
|
- lib
|
@@ -156,9 +208,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
208
|
- !ruby/object:Gem::Version
|
157
209
|
version: '0'
|
158
210
|
requirements: []
|
159
|
-
|
160
|
-
|
161
|
-
signing_key:
|
211
|
+
rubygems_version: 3.0.6
|
212
|
+
signing_key:
|
162
213
|
specification_version: 4
|
163
214
|
summary: A ruby gem for querying the United States Securities and Exchange Commission
|
164
215
|
Edgar System.
|
@@ -166,9 +217,5 @@ test_files:
|
|
166
217
|
- spec/sec_query/entity_spec.rb
|
167
218
|
- spec/sec_query/filing_spec.rb
|
168
219
|
- spec/sec_query/sec_uri_spec.rb
|
169
|
-
- spec/sec_query/transaction_spec.rb
|
170
220
|
- spec/spec_helper.rb
|
171
|
-
- spec/support/filings/filing.txt
|
172
|
-
- spec/support/idx/test.idx
|
173
221
|
- spec/support/vcr.rb
|
174
|
-
has_rdoc:
|