thirteen_f 0.5.6 → 0.5.8

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: 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