finrb 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +7 -0
- data/.github/issue_template.md +15 -0
- data/.github/pull_request_template.md +17 -0
- data/.github/workflows/ci.yml +21 -0
- data/.github/workflows/codeql.yml +72 -0
- data/.github/workflows/rubocop.yml +24 -0
- data/.rubocop.yml +270 -5
- data/.semver +2 -2
- data/CHANGELOG.md +35 -26
- data/Gemfile +1 -1
- data/Gemfile.lock +5 -2
- data/README.md +5 -1
- data/Rakefile +10 -10
- data/docs/api.md +238 -256
- data/finrb.gemspec +24 -80
- data/lib/finrb/amortization.rb +7 -7
- data/lib/finrb/cashflows.rb +40 -41
- data/lib/finrb/config.rb +1 -1
- data/lib/finrb/decimal.rb +2 -2
- data/lib/finrb/rates.rb +5 -5
- data/lib/finrb/transaction.rb +1 -1
- data/lib/finrb/utils.rb +78 -77
- data/lib/finrb.rb +9 -9
- metadata +25 -63
- data/.travis.yml +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca0e0f1b32ce469fa5fb2078a6f55e4836c8bbff50918efd593da7934ed3e230
|
4
|
+
data.tar.gz: 58cae9f2f1d746067d98f2ecd17e9c503506f2416559773429e6473a3b5e3f9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a98a8c9a19317253db7e464590ce111fb7bdb6a88aca5c29b2e6f30d0378701ebc3d956061d2672e8450a40de883cdf342a04ca3993608bc2726347097064da
|
7
|
+
data.tar.gz: be19a4a46eb02e4f422f690709f13e5800cbeae3be82e7f7d323970333cdbd65eebbb17bf2acab77b23710bd626bafa070454ecdbb1f48d85b4c99a28cd55e18
|
@@ -0,0 +1,15 @@
|
|
1
|
+
### Steps to reproduce
|
2
|
+
|
3
|
+
```ruby
|
4
|
+
# Your reproduction script goes here
|
5
|
+
```
|
6
|
+
|
7
|
+
### Expected behavior
|
8
|
+
<!-- Tell us what should happen -->
|
9
|
+
|
10
|
+
### Actual behavior
|
11
|
+
<!-- Tell us what happens instead -->
|
12
|
+
|
13
|
+
### System configuration
|
14
|
+
|
15
|
+
**Ruby version**:
|
@@ -0,0 +1,17 @@
|
|
1
|
+
### Summary
|
2
|
+
|
3
|
+
<!-- Provide a general description of the code changes in your pull
|
4
|
+
request... were there any bugs you had fixed? If so, mention them. If
|
5
|
+
these bugs have open GitHub issues, be sure to tag them here as well,
|
6
|
+
to keep the conversation linked together. -->
|
7
|
+
|
8
|
+
### Other Information
|
9
|
+
|
10
|
+
<!-- If there's anything else that's important and relevant to your pull
|
11
|
+
request, mention that information here. This could include
|
12
|
+
benchmarks, or other information.
|
13
|
+
|
14
|
+
If you are updating any of the CHANGELOG files or are asked to update the
|
15
|
+
CHANGELOG files by reviewers, please add the CHANGELOG entry at the top of the file.
|
16
|
+
|
17
|
+
Thanks for contributing to finrb! -->
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
strategy:
|
8
|
+
fail-fast: false
|
9
|
+
matrix:
|
10
|
+
ruby_version: ["3.0", "3.1"]
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
- name: Set up Ruby
|
15
|
+
uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: ${{ matrix.ruby_version }}
|
18
|
+
- name: Install dependencies
|
19
|
+
run: bundle install --jobs 4 --retry 3
|
20
|
+
- name: Run tests
|
21
|
+
run: bundle exec rake
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
2
|
+
# to commit it to your repository.
|
3
|
+
#
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
5
|
+
# or to provide custom queries or build logic.
|
6
|
+
#
|
7
|
+
# ******** NOTE ********
|
8
|
+
# We have attempted to detect the languages in your repository. Please check
|
9
|
+
# the `language` matrix defined below to confirm you have the correct set of
|
10
|
+
# supported CodeQL languages.
|
11
|
+
#
|
12
|
+
name: "CodeQL"
|
13
|
+
|
14
|
+
on:
|
15
|
+
push:
|
16
|
+
branches: [ "master" ]
|
17
|
+
pull_request:
|
18
|
+
# The branches below must be a subset of the branches above
|
19
|
+
branches: [ "master" ]
|
20
|
+
schedule:
|
21
|
+
- cron: '34 2 * * 3'
|
22
|
+
|
23
|
+
jobs:
|
24
|
+
analyze:
|
25
|
+
name: Analyze
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
permissions:
|
28
|
+
actions: read
|
29
|
+
contents: read
|
30
|
+
security-events: write
|
31
|
+
|
32
|
+
strategy:
|
33
|
+
fail-fast: false
|
34
|
+
matrix:
|
35
|
+
language: [ 'ruby' ]
|
36
|
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
37
|
+
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
38
|
+
|
39
|
+
steps:
|
40
|
+
- name: Checkout repository
|
41
|
+
uses: actions/checkout@v3
|
42
|
+
|
43
|
+
# Initializes the CodeQL tools for scanning.
|
44
|
+
- name: Initialize CodeQL
|
45
|
+
uses: github/codeql-action/init@v2
|
46
|
+
with:
|
47
|
+
languages: ${{ matrix.language }}
|
48
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
49
|
+
# By default, queries listed here will override any specified in a config file.
|
50
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
51
|
+
|
52
|
+
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
53
|
+
# queries: security-extended,security-and-quality
|
54
|
+
|
55
|
+
|
56
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
57
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
58
|
+
- name: Autobuild
|
59
|
+
uses: github/codeql-action/autobuild@v2
|
60
|
+
|
61
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
62
|
+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
63
|
+
|
64
|
+
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
65
|
+
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
66
|
+
|
67
|
+
# - run: |
|
68
|
+
# echo "Run, Build Application using script"
|
69
|
+
# ./location_of_script_within_repo/buildscript.sh
|
70
|
+
|
71
|
+
- name: Perform CodeQL Analysis
|
72
|
+
uses: github/codeql-action/analyze@v2
|
@@ -0,0 +1,24 @@
|
|
1
|
+
name: RuboCop
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
permissions:
|
6
|
+
contents: read
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
strategy:
|
12
|
+
fail-fast: false
|
13
|
+
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v3
|
16
|
+
|
17
|
+
- name: Set up Ruby 3.1
|
18
|
+
uses: ruby/setup-ruby@v1
|
19
|
+
with:
|
20
|
+
ruby-version: 3.1
|
21
|
+
bundler-cache: true
|
22
|
+
|
23
|
+
- name: Run RuboCop
|
24
|
+
run: bundle exec rubocop
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require:
|
2
2
|
- rubocop-performance
|
3
3
|
- rubocop-rake
|
4
|
+
- rubocop-packaging
|
4
5
|
- rubocop-minitest
|
5
6
|
|
6
7
|
Lint/NumberConversion:
|
@@ -8,12 +9,276 @@ Lint/NumberConversion:
|
|
8
9
|
|
9
10
|
AllCops:
|
10
11
|
TargetRubyVersion: 3.0
|
11
|
-
|
12
|
-
|
12
|
+
DisabledByDefault: true
|
13
|
+
SuggestExtensions: false
|
13
14
|
UseCache: true
|
14
15
|
Exclude:
|
15
|
-
- '
|
16
|
-
- 'tmp/**/*'
|
17
|
-
- '
|
16
|
+
- '**/.git/**/*'
|
17
|
+
- '**/tmp/**/*'
|
18
|
+
- '**/vendor/**/*'
|
18
19
|
CacheRootDirectory: tmp
|
19
20
|
MaxFilesInCache: 36000
|
21
|
+
|
22
|
+
|
23
|
+
# Prefer &&/|| over and/or.
|
24
|
+
Style/AndOr:
|
25
|
+
Enabled: true
|
26
|
+
|
27
|
+
# Align `when` with `case`.
|
28
|
+
Layout/CaseIndentation:
|
29
|
+
Enabled: true
|
30
|
+
|
31
|
+
Layout/ClosingHeredocIndentation:
|
32
|
+
Enabled: true
|
33
|
+
|
34
|
+
Layout/ClosingParenthesisIndentation:
|
35
|
+
Enabled: true
|
36
|
+
|
37
|
+
# Align comments with method definitions.
|
38
|
+
Layout/CommentIndentation:
|
39
|
+
Enabled: true
|
40
|
+
|
41
|
+
Layout/ElseAlignment:
|
42
|
+
Enabled: true
|
43
|
+
|
44
|
+
# Align `end` with the matching keyword or starting expression except for
|
45
|
+
# assignments, where it should be aligned with the LHS.
|
46
|
+
Layout/EndAlignment:
|
47
|
+
Enabled: true
|
48
|
+
EnforcedStyleAlignWith: variable
|
49
|
+
AutoCorrect: true
|
50
|
+
|
51
|
+
Layout/EndOfLine:
|
52
|
+
Enabled: true
|
53
|
+
|
54
|
+
Layout/EmptyLineAfterMagicComment:
|
55
|
+
Enabled: true
|
56
|
+
|
57
|
+
Layout/EmptyLinesAroundAccessModifier:
|
58
|
+
Enabled: true
|
59
|
+
EnforcedStyle: only_before
|
60
|
+
|
61
|
+
Layout/EmptyLinesAroundBlockBody:
|
62
|
+
Enabled: true
|
63
|
+
|
64
|
+
# In a regular class definition, no empty lines around the body.
|
65
|
+
Layout/EmptyLinesAroundClassBody:
|
66
|
+
Enabled: true
|
67
|
+
|
68
|
+
# In a regular method definition, no empty lines around the body.
|
69
|
+
Layout/EmptyLinesAroundMethodBody:
|
70
|
+
Enabled: true
|
71
|
+
|
72
|
+
# In a regular module definition, no empty lines around the body.
|
73
|
+
Layout/EmptyLinesAroundModuleBody:
|
74
|
+
Enabled: true
|
75
|
+
|
76
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
77
|
+
Style/HashSyntax:
|
78
|
+
Enabled: true
|
79
|
+
|
80
|
+
# Method definitions after `private` or `protected` isolated calls need one
|
81
|
+
# extra level of indentation.
|
82
|
+
Layout/IndentationConsistency:
|
83
|
+
Enabled: true
|
84
|
+
EnforcedStyle: indented_internal_methods
|
85
|
+
|
86
|
+
# Two spaces, no tabs (for indentation).
|
87
|
+
Layout/IndentationWidth:
|
88
|
+
Enabled: true
|
89
|
+
|
90
|
+
Layout/LeadingCommentSpace:
|
91
|
+
Enabled: true
|
92
|
+
|
93
|
+
Layout/SpaceAfterColon:
|
94
|
+
Enabled: true
|
95
|
+
|
96
|
+
Layout/SpaceAfterComma:
|
97
|
+
Enabled: true
|
98
|
+
|
99
|
+
Layout/SpaceAfterSemicolon:
|
100
|
+
Enabled: true
|
101
|
+
|
102
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
103
|
+
Enabled: true
|
104
|
+
|
105
|
+
Layout/SpaceAroundKeyword:
|
106
|
+
Enabled: true
|
107
|
+
|
108
|
+
Layout/SpaceAroundOperators:
|
109
|
+
Enabled: true
|
110
|
+
|
111
|
+
Layout/SpaceBeforeComma:
|
112
|
+
Enabled: true
|
113
|
+
|
114
|
+
Layout/SpaceBeforeComment:
|
115
|
+
Enabled: true
|
116
|
+
|
117
|
+
Layout/SpaceBeforeFirstArg:
|
118
|
+
Enabled: true
|
119
|
+
|
120
|
+
Style/DefWithParentheses:
|
121
|
+
Enabled: true
|
122
|
+
|
123
|
+
# Defining a method with parameters needs parentheses.
|
124
|
+
Style/MethodDefParentheses:
|
125
|
+
Enabled: true
|
126
|
+
|
127
|
+
Style/ExplicitBlockArgument:
|
128
|
+
Enabled: true
|
129
|
+
|
130
|
+
Style/FrozenStringLiteralComment:
|
131
|
+
Enabled: true
|
132
|
+
EnforcedStyle: always
|
133
|
+
|
134
|
+
Style/MapToHash:
|
135
|
+
Enabled: true
|
136
|
+
|
137
|
+
Style/RedundantFreeze:
|
138
|
+
Enabled: true
|
139
|
+
|
140
|
+
# Use `foo {}` not `foo{}`.
|
141
|
+
Layout/SpaceBeforeBlockBraces:
|
142
|
+
Enabled: true
|
143
|
+
|
144
|
+
# Use `foo { bar }` not `foo {bar}`.
|
145
|
+
Layout/SpaceInsideBlockBraces:
|
146
|
+
Enabled: true
|
147
|
+
EnforcedStyleForEmptyBraces: space
|
148
|
+
|
149
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
150
|
+
Layout/SpaceInsideHashLiteralBraces:
|
151
|
+
Enabled: true
|
152
|
+
|
153
|
+
Layout/SpaceInsideParens:
|
154
|
+
Enabled: true
|
155
|
+
|
156
|
+
# Check quotes usage according to lint rule below.
|
157
|
+
Style/StringLiterals:
|
158
|
+
Enabled: true
|
159
|
+
EnforcedStyle: double_quotes
|
160
|
+
|
161
|
+
# Detect hard tabs, no hard tabs.
|
162
|
+
Layout/IndentationStyle:
|
163
|
+
Enabled: true
|
164
|
+
|
165
|
+
# Empty lines should not have any spaces.
|
166
|
+
Layout/TrailingEmptyLines:
|
167
|
+
Enabled: true
|
168
|
+
|
169
|
+
# No trailing whitespace.
|
170
|
+
Layout/TrailingWhitespace:
|
171
|
+
Enabled: true
|
172
|
+
|
173
|
+
# Use quotes for string literals when they are enough.
|
174
|
+
Style/RedundantPercentQ:
|
175
|
+
Enabled: true
|
176
|
+
|
177
|
+
Lint/AmbiguousOperator:
|
178
|
+
Enabled: true
|
179
|
+
|
180
|
+
Lint/AmbiguousRegexpLiteral:
|
181
|
+
Enabled: true
|
182
|
+
|
183
|
+
Lint/DuplicateRequire:
|
184
|
+
Enabled: true
|
185
|
+
|
186
|
+
Lint/DuplicateMethods:
|
187
|
+
Enabled: true
|
188
|
+
|
189
|
+
Lint/ErbNewArguments:
|
190
|
+
Enabled: true
|
191
|
+
|
192
|
+
Lint/EnsureReturn:
|
193
|
+
Enabled: true
|
194
|
+
|
195
|
+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
196
|
+
Lint/RequireParentheses:
|
197
|
+
Enabled: true
|
198
|
+
|
199
|
+
Lint/RedundantStringCoercion:
|
200
|
+
Enabled: true
|
201
|
+
|
202
|
+
Lint/UriEscapeUnescape:
|
203
|
+
Enabled: true
|
204
|
+
|
205
|
+
Lint/UselessAssignment:
|
206
|
+
Enabled: true
|
207
|
+
|
208
|
+
Lint/DeprecatedClassMethods:
|
209
|
+
Enabled: true
|
210
|
+
|
211
|
+
Style/ParenthesesAroundCondition:
|
212
|
+
Enabled: true
|
213
|
+
|
214
|
+
Style/HashTransformKeys:
|
215
|
+
Enabled: true
|
216
|
+
|
217
|
+
Style/HashTransformValues:
|
218
|
+
Enabled: true
|
219
|
+
|
220
|
+
Style/RedundantBegin:
|
221
|
+
Enabled: true
|
222
|
+
|
223
|
+
Style/RedundantReturn:
|
224
|
+
Enabled: true
|
225
|
+
AllowMultipleReturnValues: true
|
226
|
+
|
227
|
+
Style/RedundantRegexpEscape:
|
228
|
+
Enabled: true
|
229
|
+
|
230
|
+
Style/Semicolon:
|
231
|
+
Enabled: true
|
232
|
+
AllowAsExpressionSeparator: true
|
233
|
+
|
234
|
+
# Prefer Foo.method over Foo::method
|
235
|
+
Style/ColonMethodCall:
|
236
|
+
Enabled: true
|
237
|
+
|
238
|
+
Style/TrivialAccessors:
|
239
|
+
Enabled: true
|
240
|
+
|
241
|
+
Performance/BindCall:
|
242
|
+
Enabled: true
|
243
|
+
|
244
|
+
Performance/FlatMap:
|
245
|
+
Enabled: true
|
246
|
+
|
247
|
+
Performance/MapCompact:
|
248
|
+
Enabled: true
|
249
|
+
|
250
|
+
Performance/SelectMap:
|
251
|
+
Enabled: true
|
252
|
+
|
253
|
+
Performance/RedundantMerge:
|
254
|
+
Enabled: true
|
255
|
+
|
256
|
+
Performance/StartWith:
|
257
|
+
Enabled: true
|
258
|
+
|
259
|
+
Performance/EndWith:
|
260
|
+
Enabled: true
|
261
|
+
|
262
|
+
Performance/RegexpMatch:
|
263
|
+
Enabled: true
|
264
|
+
|
265
|
+
Performance/ReverseEach:
|
266
|
+
Enabled: true
|
267
|
+
|
268
|
+
Performance/StringReplacement:
|
269
|
+
Enabled: true
|
270
|
+
|
271
|
+
Performance/UnfreezeString:
|
272
|
+
Enabled: true
|
273
|
+
|
274
|
+
Performance/DeletePrefix:
|
275
|
+
Enabled: true
|
276
|
+
|
277
|
+
Performance/DeleteSuffix:
|
278
|
+
Enabled: true
|
279
|
+
|
280
|
+
Performance/OpenStruct:
|
281
|
+
Enabled: true
|
282
|
+
|
283
|
+
Minitest/UnreachableAssertion:
|
284
|
+
Enabled: true
|
data/.semver
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,74 +1,83 @@
|
|
1
1
|
# finrb changelog
|
2
2
|
|
3
|
+
## 0.1.0
|
4
|
+
|
5
|
+
- sets ruby dependency to >= 3
|
6
|
+
- update/fix dependencies
|
7
|
+
- adds docker files for develop/test
|
8
|
+
- fix license files
|
9
|
+
- port [FinCal](https://github.com/felixfan/FinCal) library to ruby.
|
10
|
+
- readme update, api reference file outside main readme.
|
11
|
+
|
3
12
|
# Finance gem changelog
|
4
13
|
|
5
14
|
## Version 2.0.2
|
6
15
|
|
7
16
|
19 March 2019
|
8
17
|
|
9
|
-
|
10
|
-
|
11
|
-
|
18
|
+
- Fix BigDecimal deprecation warning
|
19
|
+
- Support Ruby 2.6.2
|
20
|
+
- Update dependencies
|
12
21
|
|
13
22
|
## Version 2.0.1
|
14
23
|
|
15
24
|
17 October 2017
|
16
25
|
|
17
|
-
|
18
|
-
|
19
|
-
|
26
|
+
- Added Support for configuration file to set up default eps and guess for IRR & XIRR
|
27
|
+
- Added guess rate for IRR & XIRR
|
28
|
+
- NVP now does not change the given cashflow array
|
20
29
|
|
21
30
|
## Version 2.0.0
|
22
31
|
|
23
32
|
23 Jul 2013
|
24
33
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
34
|
+
- Removed Integer#months, Integer#years, and replaced Numeric#to_d by Numeric#to_s in the interest of Rails compatibility.
|
35
|
+
- Converted unit tests from the shoulda framework to minitest.
|
36
|
+
- Removed octal numbers in test_cashflow.rb
|
37
|
+
- Thanks to @thadd, @bramswenson, and @xpe for their contributions to this release!
|
29
38
|
|
30
39
|
## Version 1.1.2
|
31
40
|
|
32
41
|
16 Jun 2012
|
33
42
|
|
34
|
-
|
35
|
-
|
43
|
+
- Bugfix: Array#irr and Array#xirr check for a valid sequence of cash flows.
|
44
|
+
- Bugfix: Integer#months and Integer#years no longer collide with Rails methods.
|
36
45
|
|
37
46
|
## Version 1.1.0
|
38
47
|
|
39
48
|
11 Sep 2011
|
40
49
|
|
41
|
-
|
42
|
-
|
43
|
-
|
50
|
+
- Added XNPV and XIRR functions, with basic testing.
|
51
|
+
- Bugfix: Array#sum no longer collides with the Array#sum defined in Rails.
|
52
|
+
- Bugfix: Numeric#amortize now correctly calls Finrb::Amortization#new.
|
44
53
|
|
45
54
|
## Version 1.0.0
|
46
55
|
|
47
56
|
20 Jul 2011
|
48
57
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
58
|
+
- Moved to Ruby 1.9.
|
59
|
+
- All classes are now contained within the +Finrb+ namespace.
|
60
|
+
- LOTS of additional documentation and examples.
|
61
|
+
- Introduced _shoulda_ for unit tests, to make things a little more readable.
|
62
|
+
- Bugfix: The +amortize+ Numeric method now accepts a variable number of rates.
|
63
|
+
- Some code refactoring and clean-up for a small performance increase.
|
55
64
|
|
56
65
|
## Version 0.2.0
|
57
66
|
|
58
67
|
28 Jun 2011
|
59
68
|
|
60
|
-
|
61
|
-
|
69
|
+
- Added support for adjustable rate mortgages.
|
70
|
+
- Added support for additional payments.
|
62
71
|
|
63
72
|
## Version 0.1.1
|
64
73
|
|
65
74
|
21 Jun 2011
|
66
75
|
|
67
|
-
|
76
|
+
- Code examples in README now display correctly in the online documentation.
|
68
77
|
|
69
78
|
## Version 0.1.0
|
70
79
|
|
71
80
|
21 Jun 2011
|
72
81
|
|
73
|
-
|
74
|
-
|
82
|
+
- Support for fixed-rate mortgage amortization.
|
83
|
+
- NPV, IRR array methods for cash flow analysis.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
finrb (0.0
|
4
|
+
finrb (0.1.0)
|
5
5
|
activesupport
|
6
6
|
business_time
|
7
7
|
flt
|
8
8
|
|
9
9
|
GEM
|
10
|
-
remote:
|
10
|
+
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
12
|
activesupport (7.0.3.1)
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
@@ -66,6 +66,8 @@ GEM
|
|
66
66
|
parser (>= 3.1.1.0)
|
67
67
|
rubocop-minitest (0.21.0)
|
68
68
|
rubocop (>= 0.90, < 2.0)
|
69
|
+
rubocop-packaging (0.5.1)
|
70
|
+
rubocop (>= 0.89, < 2.0)
|
69
71
|
rubocop-performance (1.14.3)
|
70
72
|
rubocop (>= 1.7.0, < 2.0)
|
71
73
|
rubocop-ast (>= 0.4.0)
|
@@ -107,6 +109,7 @@ DEPENDENCIES
|
|
107
109
|
rake
|
108
110
|
rubocop
|
109
111
|
rubocop-minitest
|
112
|
+
rubocop-packaging
|
110
113
|
rubocop-performance
|
111
114
|
rubocop-rake
|
112
115
|
semver
|
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# finrb
|
2
2
|
|
3
|
+
[![CI](https://github.com/ncs1/finrb/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/ncs1/finrb/actions/workflows/ci.yml)
|
4
|
+
[![CodeQL](https://github.com/ncs1/finrb/actions/workflows/codeql.yml/badge.svg)](https://github.com/ncs1/finrb/actions/workflows/codeql.yml)
|
5
|
+
[![RuboCop](https://github.com/ncs1/finrb/actions/workflows/rubocop.yml/badge.svg)](https://github.com/ncs1/finrb/actions/workflows/rubocop.yml)
|
6
|
+
|
3
7
|
Ruby gem for financial calculations/modeling.
|
4
8
|
|
5
9
|
finrb forked from the ruby [finance](https://github.com/Edward-Intelligence/finance) gem.
|
@@ -91,7 +95,7 @@ See [api.md](docs/api.md)
|
|
91
95
|
## Resources
|
92
96
|
|
93
97
|
* [RubyGems Page](https://rubygems.org/gems/finrb)
|
94
|
-
* [Source Code](
|
98
|
+
* [Source Code](https://github.com/ncs1/finrb)
|
95
99
|
* [Bug Tracker](https://github.com/ncs1/finrb/issues)
|
96
100
|
|
97
101
|
## License
|
data/Rakefile
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "rake"
|
4
|
+
require "rake/testtask"
|
5
5
|
|
6
6
|
task default: [:test_units]
|
7
7
|
|
8
|
-
Rake::TestTask.new(
|
9
|
-
t.pattern =
|
8
|
+
Rake::TestTask.new("test_units") do |t|
|
9
|
+
t.pattern = "test/*.rb"
|
10
10
|
t.verbose = true
|
11
11
|
t.warning = true
|
12
12
|
end
|
13
13
|
|
14
14
|
namespace :docker do
|
15
|
-
desc
|
15
|
+
desc "Build docker instance"
|
16
16
|
task :build do
|
17
17
|
Dir.chdir(__dir__.to_s) do
|
18
|
-
system
|
18
|
+
system "docker build --target development -t finrb:1.0 -f Dockerfile ."
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
desc
|
22
|
+
desc "Run test docker build"
|
23
23
|
task :test do
|
24
24
|
Dir.chdir(__dir__.to_s) do
|
25
|
-
system
|
25
|
+
system "docker build --target testing -t finrb:1.0 -f Dockerfile ."
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
desc
|
29
|
+
desc "Run dev docker instance"
|
30
30
|
task :run do
|
31
|
-
system
|
31
|
+
system "docker run --init -it --rm finrb:1.0"
|
32
32
|
end
|
33
33
|
end
|