thirteen_f 0.5.6 → 0.5.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96f74aa0c544abf0e1666db173544c2e871866d4ab4aada403a6689951ff3903
4
- data.tar.gz: 31abe010da2b3b8f9eaed1f11065d1ae49ddef98e42b6bb0caba2e52a95381a1
3
+ metadata.gz: c9773a685a61e1713a417d4aef59fb58b211cfe7fea47800924c9db97d58a286
4
+ data.tar.gz: 1d1541d8f279d47fd98980755a975aaa3c48e621faa964d47970bc25b6b3ef4f
5
5
  SHA512:
6
- metadata.gz: c1179197abfc5b62d99b4e99789572ccb63dac660a14d3a3ea4d4e0cb83cf82e0b322e507f858fd71ccdcfb27ab6641ef9ce601aa1fb65cfc2559aa3505933fe
7
- data.tar.gz: 29bb63f55bafc4a2c6ac119b0fa1cfc0db9b867b5569429e22009272c1ed86764bc0a66cbad4f58508cb213e8c50ce60031dc01672f3454a2099126ca9ee5205
6
+ metadata.gz: 80336d550bcb73bb1ef81675944b677e090ea1627c8cc0457ef49ea18b3d6c9dcaa2bc3749a5c6800694da2a1142a3668e8b69787b0134852e700f348c00e9d6
7
+ data.tar.gz: 3a5fe0414f07e6eb4848be4af5d109a5b34e79b479db433c68709c6081e1ce6f41186b9cecc883d2c394f717c008c5c46a5ccc74b4a35fd99927bdd40bc1de8b
data/Gemfile.lock CHANGED
@@ -1,22 +1,21 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- thirteen_f (0.5.2)
5
- http (>= 5.0)
6
- nokogiri (>= 1.13)
7
- pdf-reader (>= 2.10)
4
+ thirteen_f (0.5.8)
5
+ http (>= 5.1)
6
+ nokogiri (>= 1.15)
7
+ pdf-reader (>= 2.11)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
12
  Ascii85 (1.1.0)
13
- addressable (2.8.1)
13
+ addressable (2.8.6)
14
14
  public_suffix (>= 2.0.2, < 6.0)
15
15
  afm (0.2.2)
16
16
  coderay (1.1.3)
17
- domain_name (0.5.20190701)
18
- unf (>= 0.0.5, < 1.0.0)
19
- ffi (1.15.5)
17
+ domain_name (0.6.20231109)
18
+ ffi (1.16.3)
20
19
  ffi-compiler (1.0.1)
21
20
  ffi (>= 1.0.0)
22
21
  rake
@@ -33,10 +32,10 @@ GEM
33
32
  ffi-compiler (~> 1.0)
34
33
  rake (~> 13.0)
35
34
  method_source (1.0.0)
36
- mini_portile2 (2.8.1)
37
- minitest (5.17.0)
38
- nokogiri (1.13.10)
39
- mini_portile2 (~> 2.8.0)
35
+ mini_portile2 (2.8.5)
36
+ minitest (5.20.0)
37
+ nokogiri (1.15.5)
38
+ mini_portile2 (~> 2.8.2)
40
39
  racc (~> 1.4)
41
40
  pdf-reader (2.11.0)
42
41
  Ascii85 (~> 1.0)
@@ -44,17 +43,14 @@ GEM
44
43
  hashery (~> 2.0)
45
44
  ruby-rc4
46
45
  ttfunk
47
- pry (0.14.1)
46
+ pry (0.14.2)
48
47
  coderay (~> 1.1)
49
48
  method_source (~> 1.0)
50
- public_suffix (5.0.1)
51
- racc (1.6.2)
52
- rake (13.0.6)
49
+ public_suffix (5.0.4)
50
+ racc (1.7.3)
51
+ rake (13.1.0)
53
52
  ruby-rc4 (0.1.5)
54
53
  ttfunk (1.7.0)
55
- unf (0.1.4)
56
- unf_ext
57
- unf_ext (0.0.8.2)
58
54
 
59
55
  PLATFORMS
60
56
  ruby
@@ -37,7 +37,11 @@ class ThirteenF
37
37
 
38
38
  def get_list_entries
39
39
  return false unless file_location
40
- io = URI.open file_location
40
+ io = URI.open(
41
+ file_location,
42
+ 'User-Agent' => "ThirteenF/v#{::ThirteenF::VERSION} (Open Source Ruby Gem) savannah.fischer@hey.com",
43
+ 'Host' => 'www.sec.gov'
44
+ )
41
45
  reader = PDF::Reader.new io
42
46
  valid_entries = []
43
47
  reader.pages[2..-1].each do |page|
@@ -28,9 +28,9 @@ class ThirteenF
28
28
  @name_of_issuer = info_table.search('nameOfIssuer').text
29
29
  @title_of_class = info_table.search('titleOfClass').text
30
30
  @cusip = info_table.search('cusip').text
31
- @value_in_thousands = to_integer(info_table.search('value').text)
31
+ @value_in_thousands = set_value_to_thousands info_table.search('value').text
32
32
  @shares_or_principal_amount_type = info_table.search('sshPrnamtType').text
33
- @shares_or_principal_amount = to_integer(info_table.search('sshPrnamt').text)
33
+ @shares_or_principal_amount = to_float(info_table.search('sshPrnamt').text)
34
34
 
35
35
  not_found = info_table.search('putCall').count == 0
36
36
  @put_or_call = info_table.search('putCall').text unless not_found
@@ -38,15 +38,32 @@ class ThirteenF
38
38
  @investment_discretion = info_table.search('investmentDiscretion').text
39
39
  @other_managers = info_table.search('otherManager').text
40
40
  @voting_authority = {
41
- sole: to_integer(info_table.search('Sole').text),
42
- shared: to_integer(info_table.search('Shared').text),
43
- none: to_integer(info_table.search('None').text)
41
+ sole: to_float(info_table.search('Sole').text),
42
+ shared: to_float(info_table.search('Shared').text),
43
+ none: to_float(info_table.search('None').text)
44
44
  }
45
45
  end
46
46
 
47
47
  private
48
- def to_integer(text)
49
- text.delete(',').to_i
48
+ # https://www.sec.gov/divisions/investment/13ffaq#62
49
+ # Q: When must filers use the updated Form 13F that includes the
50
+ # amendments that were adopted on June 23, 2022?
51
+ # A: The compliance date for the form amendments to Form 13F is January 3,
52
+ # 2023. All Form 13F reports that are filed on or after January 3, 2023,
53
+ # whether public or confidential (including all Form 13F reports for the
54
+ # quarter ending December 31, 2022, and for any other preceding or
55
+ # succeeding calendar quarter), must use the updated Form 13F.
56
+ def set_value_to_thousands(text)
57
+ before_change = filing.time_accepted < Date.parse('2023-01-03')
58
+ if before_change
59
+ to_float(text)
60
+ else
61
+ to_float(text) / 1000
62
+ end
63
+ end
64
+
65
+ def to_float(text)
66
+ text.delete(',').to_f
50
67
  end
51
68
  end
52
69
  end
@@ -33,6 +33,8 @@ class ThirteenF
33
33
  response = HTTP.use(:auto_inflate).headers(www_headers).get(url)
34
34
  handle_response response, response_type: response_type
35
35
  end
36
+ rescue
37
+ raise "Request failed at this url: #{url} \n With this response #{response.to_s}"
36
38
  end
37
39
 
38
40
  def self.post(url, json)
@@ -1,3 +1,3 @@
1
1
  class ThirteenF
2
- VERSION = "0.5.6"
2
+ VERSION = "0.5.8"
3
3
  end
data/thirteen_f.gemspec CHANGED
@@ -34,6 +34,6 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency "pry"
35
35
 
36
36
  spec.add_runtime_dependency "http", ">= 5.1"
37
- spec.add_runtime_dependency "nokogiri", ">= 1.13"
37
+ spec.add_runtime_dependency "nokogiri", ">= 1.15"
38
38
  spec.add_runtime_dependency "pdf-reader", ">= 2.11"
39
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thirteen_f
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Savannah Fischer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-08 00:00:00.000000000 Z
11
+ date: 2023-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '1.13'
61
+ version: '1.15'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '1.13'
68
+ version: '1.15'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pdf-reader
71
71
  requirement: !ruby/object:Gem::Requirement