thirteen_f 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2eebea964d2903739ae01ced769bfc61a0df3df5115d027760ff41fa348573a1
4
- data.tar.gz: 2b0a2f7f48a25d1eed4238acdb6371333c4b85435f06880dcfdaf87087454ecd
3
+ metadata.gz: c3ed7ebb2e2cfea6d18e3d1d2e299bc4f5f78d55e38125e5b89d95c83d3097db
4
+ data.tar.gz: e41f166c32e1c30a6214bd40845a92f7647a9113565ac7293d4b43dd468e1526
5
5
  SHA512:
6
- metadata.gz: 55ad096c2c2100ef187a154f1def213a643317ec42cfa7146f69b1fccd7d336a2c1445cb1e1a01f2dfc6c7d14875a430af627dad16f8c83c972c991c72756035
7
- data.tar.gz: 9745d3a78b459759d50933bd2ee5c167bf4b28a0fc7991aae8e8d38ec187b9a6d600a864b7f10d186a147354fde62a1306ee59ed7be92e7d3548d4c30598f28d
6
+ metadata.gz: 006aadbbaa7b2aa7df79bedefe4966dc9f5bcc9619a0def79901c6f056bbc74ebcf0a5d76ba58cd9c0d9356ab57a49a8178d2da493e6deb3862379b236ff96cf
7
+ data.tar.gz: 137a09503b646f92170a836febcab9607fdc2aba2c2f82c656e2b772bc1975970479bd3cd46d07707f462b19c823546a681ad7f9fc5da4749f27478f8b040c04
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'http'
4
3
  require 'date'
5
4
  require 'open-uri'
6
5
  require 'pdf-reader'
@@ -12,9 +11,7 @@ class ThirteenF
12
11
 
13
12
  def self.all_file_locations
14
13
  index_url = "#{BASE_URL}/divisions/investment/13flists.htm"
15
- response = HTTP.get index_url
16
- return false unless response.status == 200
17
- page = Nokogiri::HTML response.to_s
14
+ page = SecRequest.get index_url, response_type: :html
18
15
  a_tags = page.search('a').select do |a_tag|
19
16
  href = a_tag.attributes['href']&.value.to_s
20
17
  href.include?('13flist') && href.include?('.pdf')
@@ -24,9 +21,7 @@ class ThirteenF
24
21
 
25
22
  def self.most_recent_list
26
23
  index_url = "#{BASE_URL}/divisions/investment/13flists.htm"
27
- response = HTTP.get index_url
28
- return false unless response.status == 200
29
- page = Nokogiri::HTML response.to_s
24
+ page = SecRequest.get index_url, response_type: :html
30
25
  a_tag = page.search('a').find { |a| a.text.include?('Current List') }
31
26
  file_location = "#{BASE_URL + a_tag.attributes['href'].value}"
32
27
  new file_location
@@ -45,27 +45,6 @@ class ThirteenF
45
45
  filings.select(&:period_of_report).max_by(&:period_of_report)
46
46
  end
47
47
 
48
- def sec_filings_page_url
49
- "#{BASE_URL}/cgi-bin/browse-edgar?CIK=#{cik}"
50
- end
51
-
52
- def thirteen_f_filings_url(count: 10)
53
- "#{sec_filings_page_url}&type=13f&count=#{count}"
54
- end
55
-
56
- def self.sec_url_from_cik(cik)
57
- "#{BASE_URL}/cgi-bin/browse-edgar?CIK=#{cik}"
58
- end
59
-
60
- def thirteen_f_urls(count: 10)
61
- response = HTTP.get thirteen_f_filings_url(count: count)
62
- page = Nokogiri::HTML response.to_s
63
- page.search('#documentsbutton').map do |btn|
64
- next nil unless btn.parent.previous.previous.text.include?('13F-HR')
65
- "#{BASE_URL + btn.attributes['href'].value}"
66
- end.compact
67
- end
68
-
69
48
  private
70
49
  def cik_from_id(id)
71
50
  id.prepend('0') until id.length >= 10
@@ -2,15 +2,18 @@
2
2
 
3
3
  class ThirteenF
4
4
  class SearchHit
5
- attr_reader :cik, :name, :entity
5
+ attr_reader :cik, :name, :entity, :sec_page_url
6
6
 
7
7
  def self.from_search_hits(hits)
8
8
  hits.map { |hit| new hit }
9
9
  end
10
10
 
11
+ BASE_URL = 'https://www.sec.gov'
12
+
11
13
  def initialize(sec_hit)
12
14
  @cik = cik_from_id sec_hit[:_id]
13
15
  @name = sec_hit[:_source][:entity]
16
+ @sec_page_url = "#{BASE_URL}/edgar/browse/?CIK=#{cik}&owner=exclude"
14
17
  true
15
18
  end
16
19
 
@@ -1,3 +1,3 @@
1
1
  class ThirteenF
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thirteen_f
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Savannah Fischer