sec_edgar 0.0.1
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 +7 -0
- data/lib/assets/1996/QTR1/master.idx +49935 -0
- data/lib/assets/1996/QTR2/master.idx +47669 -0
- data/lib/assets/1996/QTR3/master.idx +50651 -0
- data/lib/assets/1996/QTR4/master.idx +54399 -0
- data/lib/sec_edgar/address.rb +3 -0
- data/lib/sec_edgar/basic_stats.rb +26 -0
- data/lib/sec_edgar/derivative_transaction.rb +21 -0
- data/lib/sec_edgar/entity.rb +74 -0
- data/lib/sec_edgar/filing.rb +171 -0
- data/lib/sec_edgar/filing_parser.rb +216 -0
- data/lib/sec_edgar/filing_persister.rb +53 -0
- data/lib/sec_edgar/filing_updater.rb +52 -0
- data/lib/sec_edgar/footnote.rb +3 -0
- data/lib/sec_edgar/ftp_client.rb +35 -0
- data/lib/sec_edgar/nil_ownership_document.rb +39 -0
- data/lib/sec_edgar/officer_title.rb +39 -0
- data/lib/sec_edgar/ownership4Document.xsd.xml +141 -0
- data/lib/sec_edgar/ownershipDocumentCommon.xsd.xml +890 -0
- data/lib/sec_edgar/ownership_document.rb +121 -0
- data/lib/sec_edgar/poll.rb +132 -0
- data/lib/sec_edgar/sec_uri.rb +102 -0
- data/lib/sec_edgar/transaction.rb +20 -0
- data/lib/sec_edgar/utils.rb +28 -0
- data/lib/sec_edgar.rb +26 -0
- metadata +123 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
module SecEdgar
|
2
|
+
class OfficerTitle
|
3
|
+
attr_reader :raw_title
|
4
|
+
|
5
|
+
def initialize(raw)
|
6
|
+
@raw_title = raw
|
7
|
+
end
|
8
|
+
|
9
|
+
def parsed
|
10
|
+
@parsed ||= raw_title.gsub(/[^a-z]/i, '').upcase
|
11
|
+
end
|
12
|
+
|
13
|
+
def important?
|
14
|
+
ceo? || president? || cfo? || finance?
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_s
|
18
|
+
@raw_title.upcase
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def president?
|
24
|
+
parsed.include?("PRES")
|
25
|
+
end
|
26
|
+
|
27
|
+
def ceo?
|
28
|
+
parsed.include?("CEO") || parsed.include?("EXECUTIVEOFFICER")
|
29
|
+
end
|
30
|
+
|
31
|
+
def cfo?
|
32
|
+
parsed.include?("CFO") || parsed.include?("FINANCIALOFFICER")
|
33
|
+
end
|
34
|
+
|
35
|
+
def finance?
|
36
|
+
parsed.include?("FINANCE")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
|
3
|
+
<!-- Filename: ownership4Document.xsd.xml -->
|
4
|
+
<!-- Purpose: Defines the elements specific to a 4 Ownership primary document. -->
|
5
|
+
<!-- Version: X0306 -->
|
6
|
+
|
7
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
8
|
+
elementFormDefault="qualified">
|
9
|
+
|
10
|
+
<xs:include schemaLocation="lib/sec4/ownershipDocumentCommon.xsd.xml"/>
|
11
|
+
|
12
|
+
<!-- this schema applies exclusively to a "4" document -->
|
13
|
+
<xs:simpleType name="DOCUMENT_TYPE">
|
14
|
+
<xs:restriction base="xs:string">
|
15
|
+
<xs:pattern value="4"/>
|
16
|
+
</xs:restriction>
|
17
|
+
</xs:simpleType>
|
18
|
+
|
19
|
+
<xs:simpleType name="TRANS_FORM4_TYPE_PICKLIST">
|
20
|
+
<xs:annotation>
|
21
|
+
<xs:documentation>
|
22
|
+
A "4" document can have security transactions of types 4 and 5.
|
23
|
+
</xs:documentation>
|
24
|
+
</xs:annotation>
|
25
|
+
<xs:restriction base="xs:string">
|
26
|
+
<xs:pattern value="4|5"/>
|
27
|
+
</xs:restriction>
|
28
|
+
</xs:simpleType>
|
29
|
+
|
30
|
+
<xs:complexType name="TRANSACTION_CODING_FOR_4">
|
31
|
+
<xs:annotation>
|
32
|
+
<xs:documentation>
|
33
|
+
The transactionFormType can be 4 or 5.
|
34
|
+
The transactionCode is mandatory.
|
35
|
+
The equitySwapInvolved flag is mandatory.
|
36
|
+
A "4" transaction is assumed on-time.
|
37
|
+
A "5" transaction is assumed early.
|
38
|
+
</xs:documentation>
|
39
|
+
</xs:annotation>
|
40
|
+
<xs:sequence>
|
41
|
+
<xs:element name="transactionFormType" type="TRANS_FORM4_TYPE_PICKLIST" minOccurs="1"/>
|
42
|
+
<xs:element name="transactionCode" type="TRANS_CODE_PICKLIST" minOccurs="1"/>
|
43
|
+
<xs:element name="equitySwapInvolved" type="xs:boolean" minOccurs="1"/>
|
44
|
+
<xs:element name="footnoteId" type="FOOTNOTE_ID" minOccurs="0" maxOccurs="99"/>
|
45
|
+
</xs:sequence>
|
46
|
+
</xs:complexType>
|
47
|
+
|
48
|
+
<xs:complexType name="NONDERIVATIVE_TRANSACTION">
|
49
|
+
<xs:sequence>
|
50
|
+
<xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
|
51
|
+
<xs:element name="transactionDate" type="DATE_WITH_FOOTNOTE" minOccurs="1"/>
|
52
|
+
<xs:element name="deemedExecutionDate" type="DATE_AND_OR_FOOTNOTE" minOccurs="0"/>
|
53
|
+
<xs:element name="transactionCoding" type="TRANSACTION_CODING_FOR_4" minOccurs="0"/>
|
54
|
+
<xs:element name="transactionTimeliness" type="TRANSACTION_TIMELINESS" minOccurs="0"/>
|
55
|
+
<xs:element name="transactionAmounts" type="NONDERIV_TRANSACT_AMOUNTS" minOccurs="1"/>
|
56
|
+
<xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
|
57
|
+
<xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
|
58
|
+
</xs:sequence>
|
59
|
+
</xs:complexType>
|
60
|
+
|
61
|
+
<xs:complexType name="DERIVATIVE_TRANSACTION">
|
62
|
+
<xs:sequence>
|
63
|
+
<xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
|
64
|
+
<xs:element name="conversionOrExercisePrice" type="OPT_NUMBER_WITH_FOOTNOTE" minOccurs="1"/>
|
65
|
+
<xs:element name="transactionDate" type="DATE_WITH_FOOTNOTE" minOccurs="1"/>
|
66
|
+
<xs:element name="deemedExecutionDate" type="DATE_AND_OR_FOOTNOTE" minOccurs="0"/>
|
67
|
+
<xs:element name="transactionCoding" type="TRANSACTION_CODING_FOR_4" minOccurs="0"/>
|
68
|
+
<xs:element name="transactionTimeliness" type="TRANSACTION_TIMELINESS" minOccurs="0"/>
|
69
|
+
<xs:element name="transactionAmounts" type="DERIV_TRANSACT_NO_FOOT" minOccurs="1"/>
|
70
|
+
<xs:element name="exerciseDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
|
71
|
+
<xs:element name="expirationDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
|
72
|
+
<xs:element name="underlyingSecurity" type="UNDERLYING_SECURITY" minOccurs="1"/>
|
73
|
+
<xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
|
74
|
+
<xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
|
75
|
+
</xs:sequence>
|
76
|
+
</xs:complexType>
|
77
|
+
|
78
|
+
<xs:complexType name="NONDERIVATIVE_HOLDING">
|
79
|
+
<xs:sequence>
|
80
|
+
<xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
|
81
|
+
<xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
|
82
|
+
<xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
|
83
|
+
</xs:sequence>
|
84
|
+
</xs:complexType>
|
85
|
+
|
86
|
+
<xs:complexType name="DERIVATIVE_HOLDING">
|
87
|
+
<xs:sequence>
|
88
|
+
<xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
|
89
|
+
<xs:element name="conversionOrExercisePrice" type="OPT_NUMBER_WITH_FOOTNOTE" minOccurs="1"/>
|
90
|
+
<xs:element name="exerciseDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
|
91
|
+
<xs:element name="expirationDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
|
92
|
+
<xs:element name="underlyingSecurity" type="UNDERLYING_SECURITY" minOccurs="1"/>
|
93
|
+
<xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
|
94
|
+
<xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
|
95
|
+
</xs:sequence>
|
96
|
+
</xs:complexType>
|
97
|
+
|
98
|
+
<xs:complexType name="NONDERIVATIVE_TABLE">
|
99
|
+
<xs:annotation>
|
100
|
+
<xs:documentation>
|
101
|
+
Can have up to 30 entries in the Non-Derivative Table. This is Table 1 on the printed form.
|
102
|
+
Can have any combination of Transactions and Holdings in any order.
|
103
|
+
</xs:documentation>
|
104
|
+
</xs:annotation>
|
105
|
+
<xs:choice minOccurs="0" maxOccurs="30">
|
106
|
+
<xs:element name="nonDerivativeTransaction" type="NONDERIVATIVE_TRANSACTION"/>
|
107
|
+
<xs:element name="nonDerivativeHolding" type="NONDERIVATIVE_HOLDING"/>
|
108
|
+
</xs:choice>
|
109
|
+
</xs:complexType>
|
110
|
+
|
111
|
+
<xs:complexType name="DERIVATIVE_TABLE">
|
112
|
+
<xs:annotation>
|
113
|
+
<xs:documentation>
|
114
|
+
Can have up to 30 entries in the Derivative Table. This is Table 2 on the printed form.
|
115
|
+
Can have any combination of Transactions and Holdings in any order.
|
116
|
+
</xs:documentation>
|
117
|
+
</xs:annotation>
|
118
|
+
<xs:choice minOccurs="0" maxOccurs="30">
|
119
|
+
<xs:element name="derivativeTransaction" type="DERIVATIVE_TRANSACTION"/>
|
120
|
+
<xs:element name="derivativeHolding" type="DERIVATIVE_HOLDING"/>
|
121
|
+
</xs:choice>
|
122
|
+
</xs:complexType>
|
123
|
+
|
124
|
+
<xs:element name="ownershipDocument">
|
125
|
+
<xs:complexType>
|
126
|
+
<xs:sequence>
|
127
|
+
<xs:element name="schemaVersion" type="SCHEMA_VERSION" minOccurs="0" maxOccurs="1"/>
|
128
|
+
<xs:element name="documentType" type="DOCUMENT_TYPE" minOccurs="1" maxOccurs="1"/>
|
129
|
+
<xs:element name="periodOfReport" type="xs:date" minOccurs="1" maxOccurs="1"/>
|
130
|
+
<xs:element name="notSubjectToSection16" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
|
131
|
+
<xs:element name="issuer" type="ISSUER" minOccurs="1" maxOccurs="1"/>
|
132
|
+
<xs:element name="reportingOwner" type="REPORTING_OWNER" minOccurs="1" maxOccurs="10"/>
|
133
|
+
<xs:element name="nonDerivativeTable" type="NONDERIVATIVE_TABLE" minOccurs="0" maxOccurs="1"/>
|
134
|
+
<xs:element name="derivativeTable" type="DERIVATIVE_TABLE" minOccurs="0" maxOccurs="1"/>
|
135
|
+
<xs:element name="footnotes" type="FOOTNOTE_GROUP" minOccurs="0" maxOccurs="1"/>
|
136
|
+
<xs:element name="remarks" type="STRING_2000" minOccurs="0" maxOccurs="1"/>
|
137
|
+
<xs:element name="ownerSignature" type="SIGNATURE" minOccurs="1" maxOccurs="10"/>
|
138
|
+
</xs:sequence>
|
139
|
+
</xs:complexType>
|
140
|
+
</xs:element>
|
141
|
+
</xs:schema>
|