ballista 0.0.1 → 0.1.0
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 +5 -5
- data/.circle-ruby +4 -0
- data/.prospectus +8 -8
- data/.rubocop.yml +2 -2
- data/.travis.yml +10 -0
- data/Gemfile +0 -1
- data/README.md +32 -2
- data/Rakefile +1 -2
- data/ballista.gemspec +11 -10
- data/bin/ballista +26 -3
- data/lib/ballista.rb +1 -0
- data/lib/ballista/frequencies.rb +18 -0
- data/lib/ballista/frequencies/base.rb +21 -0
- data/lib/ballista/frequencies/biweekly.rb +11 -0
- data/lib/ballista/frequencies/monthly.rb +27 -0
- data/lib/ballista/frequencies/weekly.rb +23 -0
- data/lib/ballista/projection.rb +4 -6
- data/lib/ballista/version.rb +1 -1
- metadata +34 -43
- data/circle.yml +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 908c4d0abe9c14c6d26198e78b7e4bf02cf701079bb2adad1a903d7787cd7ddf
|
4
|
+
data.tar.gz: c1e953583fe7f32b7102bfe4f3924d74a9394fb51f08c8e8855141890a1ad391
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8378709556a8a7661640a639584679aaa2d241760738ffa2340e9fd67bc78a349c446cc8eac1bed3b191df4d7315d3f650fde1f7dc97b9b6f31bdd803d2a4603
|
7
|
+
data.tar.gz: c4b2cb1ca8e1597fa8e241229501cd81aad6c926acf80ff47408b26b6e3b7ec9f858d176b837b77a75ea407978c3fb2ea3c5433f039256e5950cbeac0a86c3ef
|
data/.circle-ruby
ADDED
data/.prospectus
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
+
my_slug = 'akerl/ballista'
|
2
|
+
|
3
|
+
Prospectus.extra_dep('file', 'prospectus_travis')
|
4
|
+
Prospectus.extra_dep('file', 'prospectus_gems')
|
5
|
+
|
1
6
|
item do
|
2
|
-
|
3
|
-
static
|
4
|
-
set 'green'
|
5
|
-
end
|
7
|
+
noop
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
slug 'akerl/ballista'
|
10
|
-
end
|
9
|
+
extend ProspectusGems::Gemspec.new
|
10
|
+
extend ProspectusTravis::Build.new(my_slug)
|
11
11
|
end
|
data/.rubocop.yml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
inherit_gem:
|
2
|
+
goodcop: .rubocop.yml
|
data/.travis.yml
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
dist: xenial
|
2
|
+
install:
|
3
|
+
- for i in $(cat .circle-ruby) ; do rvm install $i || exit 1 ; done
|
4
|
+
- for i in $(cat .circle-ruby) ; do rvm-exec $i bundle install || exit 1 ; done
|
5
|
+
script:
|
6
|
+
- for i in $(cat .circle-ruby) ; do rvm-exec $i bundle exec rake || exit 1 ; done
|
7
|
+
notifications:
|
8
|
+
email: false
|
9
|
+
slack:
|
10
|
+
secure: BrYLyxYCfTN/nK4VrKkXh9HxqIu2Vtz1L4TbW8AtHPsCxOMj650yuwmZncgq06DYQWW8v1Sch/KcXTTmOJvN4ebW3oVRfLCPzBzheHij5EPLkAo8uR8703iHZfJtGLGsx7Dc7x2Ohgtv+aHtK89RHp0ZR9hIUwC6Z3PJP6W0u9N/p3Cq4sum+QnANIhW/wjJt9koTGRp80NN6e70siB64OrpzOGCIm1cLBa9m2Oqc0pM/NcBI6IFYFAlbJmOHnvm1/QS8KVW361soUbVGBEr0FtlNNcy4k0bY5TUiciSe2kAM/F72uumumkvztNEKZpYibP/7UxoTGzyX2GEysJJxkDnmquUh01Uzfc0VbAA7bnkL/YmXHLMu/u3Vqq2DbjymFPyYSFtjznw05SXQNVcqJ7IGkb1//5XiEc5YH8g5qjU7ma7eZdZe7Rd81gZ8ePIzrjXhq+7lX3pLY/GpLMcJs2XQlHTatSZ5BjBZcpEjfBTVb7uD5G/6afKXm5l+6M8uB16zMjnxtFfi/11mLLjScaE9h4SiCtiAG0E58pHlbBbrmBkqlxc7PmXTS5wGIg6qRzsU9SrJeKSPv8UnN7bcndA9JdoCKTRDELremtbPDpehAkaX5mi/5Uw+/FQ4Qx19S+WToMMRaGcvzzyDf13twKIgrZMTBvJHw1Qyhiu7Gk=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,8 +2,7 @@ ballista
|
|
2
2
|
=========
|
3
3
|
|
4
4
|
[](https://rubygems.org/gems/ballista)
|
5
|
-
[](https://circleci.com/gh/akerl/ballista)
|
5
|
+
[](https://travis-ci.com/akerl/ballista)
|
7
6
|
[](https://codecov.io/github/akerl/ballista)
|
8
7
|
[](https://www.codacy.com/app/akerl/ballista)
|
9
8
|
[](https://tldrlegal.com/license/mit-license)
|
@@ -12,6 +11,37 @@ Helper for projecting based on [Ledger](http://www.ledger-cli.org/) format.
|
|
12
11
|
|
13
12
|
## Usage
|
14
13
|
|
14
|
+
To make a new Projection object, use `Ballista.new(entries: my_config)`. my_config should be a hash of projection entries, like this:
|
15
|
+
|
16
|
+
```
|
17
|
+
- name: Pay Check
|
18
|
+
when:
|
19
|
+
- 15
|
20
|
+
- 30
|
21
|
+
actions:
|
22
|
+
Expenses:Taxes:federal_income: $729.26
|
23
|
+
Expenses:Taxes:va_income: $215.14
|
24
|
+
Expenses:Taxes:social_security: $299.46
|
25
|
+
Expenses:Taxes:medicare: $70.04
|
26
|
+
Assets:Checking:simple: $2739.10
|
27
|
+
Assets:401K:Trad:work: $772.00
|
28
|
+
Income:Salary:work: $-4825.00
|
29
|
+
- name: Automatic transfer to Savings
|
30
|
+
when: 2
|
31
|
+
actions:
|
32
|
+
Assets:Savings:ally: $1000.00
|
33
|
+
Assets:Checking:simple: null
|
34
|
+
- name: Rent
|
35
|
+
when: 2
|
36
|
+
actions:
|
37
|
+
Expenses:Bills:rent: $2800.00
|
38
|
+
Assets:Checking:simple: null
|
39
|
+
```
|
40
|
+
|
41
|
+
To do a projection, call `.project(start_dt, end_dt)` on your created object. The dates should be Ruby Date objects.
|
42
|
+
|
43
|
+
The returned object will be a Ledger journal, courtesy of [libledger](https://github.com/akerl/libledger). As such, you can inspect the .entries as well as use .to_s or puts to print it in ledger text file format.
|
44
|
+
|
15
45
|
## Installation
|
16
46
|
|
17
47
|
gem install ballista
|
data/Rakefile
CHANGED
@@ -7,8 +7,7 @@ RSpec::Core::RakeTask.new(:spec)
|
|
7
7
|
|
8
8
|
desc 'Run Rubocop on the gem'
|
9
9
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
10
|
-
task.patterns = ['lib/**/*.rb', 'spec/**/*.rb', 'bin/*']
|
11
10
|
task.fail_on_error = true
|
12
11
|
end
|
13
12
|
|
14
|
-
task default: [
|
13
|
+
task default: %i[spec rubocop build install]
|
data/ballista.gemspec
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
-
|
1
|
+
require 'English'
|
2
|
+
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
2
3
|
require 'ballista/version'
|
3
4
|
|
4
5
|
Gem::Specification.new do |s|
|
5
6
|
s.name = 'ballista'
|
6
7
|
s.version = Ballista::VERSION
|
7
8
|
s.date = Time.now.strftime('%Y-%m-%d')
|
9
|
+
s.required_ruby_version = '>= 2.5.0'
|
8
10
|
|
9
11
|
s.summary = 'Projection tool for Ledger format'
|
10
|
-
s.description =
|
12
|
+
s.description = 'Projection tool for Ledger format'
|
11
13
|
s.authors = ['Les Aker']
|
12
14
|
s.email = 'me@lesaker.org'
|
13
15
|
s.homepage = 'https://github.com/akerl/ballista'
|
@@ -17,13 +19,12 @@ Gem::Specification.new do |s|
|
|
17
19
|
s.test_files = `git ls-files spec/*`.split
|
18
20
|
s.executables = ['ballista']
|
19
21
|
|
20
|
-
s.add_dependency '
|
21
|
-
s.add_dependency '
|
22
|
-
s.add_dependency '
|
22
|
+
s.add_dependency 'cymbal', '~> 2.0.0'
|
23
|
+
s.add_dependency 'libledger', '~> 0.0.8'
|
24
|
+
s.add_dependency 'mercenary', '~> 0.4.0'
|
23
25
|
|
24
|
-
s.add_development_dependency '
|
25
|
-
s.add_development_dependency '
|
26
|
-
s.add_development_dependency '
|
27
|
-
s.add_development_dependency 'rspec', '~> 3.
|
28
|
-
s.add_development_dependency 'fuubar', '~> 2.0.0'
|
26
|
+
s.add_development_dependency 'codecov', '~> 0.5.1'
|
27
|
+
s.add_development_dependency 'goodcop', '~> 0.9.3'
|
28
|
+
s.add_development_dependency 'rake', '~> 13.0.3'
|
29
|
+
s.add_development_dependency 'rspec', '~> 3.10.0'
|
29
30
|
end
|
data/bin/ballista
CHANGED
@@ -4,9 +4,28 @@ require 'ballista'
|
|
4
4
|
require 'yaml'
|
5
5
|
require 'mercenary'
|
6
6
|
require 'cymbal'
|
7
|
+
require 'date'
|
7
8
|
|
8
9
|
def parse_config(file)
|
9
|
-
Cymbal.symbolize(YAML.
|
10
|
+
Cymbal.symbolize(YAML.safe_load(File.read(file)))
|
11
|
+
end
|
12
|
+
|
13
|
+
def count_months(months)
|
14
|
+
return unless months
|
15
|
+
start_dt = Date.today + 1
|
16
|
+
end_dt = start_dt >> months.to_i
|
17
|
+
[start_dt, end_dt]
|
18
|
+
end
|
19
|
+
|
20
|
+
def parse_start_end(start_dt, end_dt)
|
21
|
+
return unless start_dt || end_dt
|
22
|
+
raise('Must specify start and end together') unless start_dt && end_dt
|
23
|
+
[Date.parse(start_dt), Date.parse(end_dt)]
|
24
|
+
end
|
25
|
+
|
26
|
+
def parse_range(months, start_dt, end_dt)
|
27
|
+
raise('Cannot specify months *and* start/end') if months && (start_dt || end_dt)
|
28
|
+
count_months(months) || parse_start_end(start_dt, end_dt) || count_months(12)
|
10
29
|
end
|
11
30
|
|
12
31
|
Mercenary.program(:ballista) do |p|
|
@@ -16,13 +35,17 @@ Mercenary.program(:ballista) do |p|
|
|
16
35
|
|
17
36
|
p.option :output, '-o FILE', '--output FILE', 'Output file for ledger'
|
18
37
|
p.option :months, '-m INT', '--months INT', 'How far ahead to project'
|
38
|
+
p.option :start, '-s DATE', '--start DATE', 'When to start the projection'
|
39
|
+
p.option :end, '-e DATE', '--end DATE', 'When to end the projection'
|
19
40
|
|
20
41
|
p.action do |_, options|
|
21
42
|
config_file = ARGV.shift
|
22
43
|
puts p unless config_file
|
23
44
|
config = parse_config(config_file)
|
24
|
-
|
25
|
-
|
45
|
+
|
46
|
+
start_dt, end_dt = parse_range(*options.values_at(:months, :start, :end))
|
47
|
+
|
48
|
+
projection = Ballista.new(entries: config).project(start_dt, end_dt)
|
26
49
|
if options[:output]
|
27
50
|
File.open(options[:output], 'w') { |fh| fh << projection.to_s }
|
28
51
|
else
|
data/lib/ballista.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'ballista/frequencies/base'
|
2
|
+
require 'ballista/frequencies/monthly'
|
3
|
+
require 'ballista/frequencies/weekly'
|
4
|
+
require 'ballista/frequencies/biweekly'
|
5
|
+
|
6
|
+
module Ballista
|
7
|
+
##
|
8
|
+
# Base module for Frequency of actions
|
9
|
+
module Frequencies
|
10
|
+
class << self
|
11
|
+
FREQUENCIES = {
|
12
|
+
monthly: Monthly,
|
13
|
+
weekly: Weekly,
|
14
|
+
biweekly: Biweekly
|
15
|
+
}.freeze
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
3
|
+
module Ballista
|
4
|
+
module Frequencies
|
5
|
+
##
|
6
|
+
# Base class for frequency subclasses
|
7
|
+
class Base
|
8
|
+
def initialize(action, start, stop)
|
9
|
+
@name = action[:name]
|
10
|
+
@start = action[:starts] ? Date.parse(action[:starts]) : start
|
11
|
+
@stop = action[:stops] ? Date.parse(action[:stops]) : stop
|
12
|
+
@amount = action[:amount].to_i
|
13
|
+
@when = action[:when]
|
14
|
+
end
|
15
|
+
|
16
|
+
def entry(date)
|
17
|
+
[date, @name, @amount]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Ballista
|
2
|
+
module Frequencies
|
3
|
+
##
|
4
|
+
# Monthly actions
|
5
|
+
class Monthly < Base
|
6
|
+
def initialize(*_)
|
7
|
+
super
|
8
|
+
@when = [@when] unless @when.is_a? Array
|
9
|
+
end
|
10
|
+
|
11
|
+
def log
|
12
|
+
@when.flat_map do |date|
|
13
|
+
pointer = Date.new(Date.today.year, 1, date)
|
14
|
+
get_dates([], pointer, 0)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_dates(log, pointer, counter)
|
19
|
+
date = pointer >> counter
|
20
|
+
return log if date > @stop
|
21
|
+
return get_dates(log, pointer, counter + 1) if date < @start
|
22
|
+
log << entry(date)
|
23
|
+
get_dates(log, pointer, counter + 1)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Ballista
|
2
|
+
module Frequencies
|
3
|
+
##
|
4
|
+
# Weekly actions
|
5
|
+
class Weekly < Base
|
6
|
+
def log
|
7
|
+
pointer = Date.parse(@when)
|
8
|
+
get_dates([], pointer)
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_dates(log, pointer)
|
12
|
+
return log if pointer > @stop
|
13
|
+
return get_dates(log, pointer + step) if pointer < @start
|
14
|
+
log << entry(pointer)
|
15
|
+
get_dates(log, pointer + step)
|
16
|
+
end
|
17
|
+
|
18
|
+
def step
|
19
|
+
7
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/ballista/projection.rb
CHANGED
@@ -9,10 +9,8 @@ module Ballista
|
|
9
9
|
@entries = params[:entries]
|
10
10
|
end
|
11
11
|
|
12
|
-
def project(
|
13
|
-
|
14
|
-
finish = start >> months
|
15
|
-
entries = start.upto(finish).map { |date| parse_day(date) }
|
12
|
+
def project(start_dt, end_dt)
|
13
|
+
entries = start_dt.upto(end_dt).map { |date| parse_day(date) }
|
16
14
|
Ledger.new(entries: entries.flatten)
|
17
15
|
end
|
18
16
|
|
@@ -29,7 +27,7 @@ module Ballista
|
|
29
27
|
def out_of_bounds?(entry, date)
|
30
28
|
if entry[:starts] && Date.parse(entry[:starts]) > date
|
31
29
|
true
|
32
|
-
elsif entry[:ends] && Date.parse(entry[:ends]) < date
|
30
|
+
elsif entry[:ends] && Date.parse(entry[:ends]) < date # rubocop:disable Lint/DuplicateBranch
|
33
31
|
true
|
34
32
|
else
|
35
33
|
false
|
@@ -41,7 +39,7 @@ module Ballista
|
|
41
39
|
calendar[fake_day].map do |entry|
|
42
40
|
next if out_of_bounds?(entry, date)
|
43
41
|
build_entry(entry, date)
|
44
|
-
end
|
42
|
+
end.compact
|
45
43
|
end
|
46
44
|
end
|
47
45
|
|
data/lib/ballista/version.rb
CHANGED
metadata
CHANGED
@@ -1,127 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ballista
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Les Aker
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: cymbal
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0
|
19
|
+
version: 2.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0
|
26
|
+
version: 2.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: libledger
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.0.8
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.0.8
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: mercenary
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.4.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.4.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: codecov
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.5.1
|
62
62
|
type: :development
|
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: 0.
|
68
|
+
version: 0.5.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: goodcop
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.9.3
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.9.3
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 13.0.3
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
96
|
+
version: 13.0.3
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 3.
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 3.4.0
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: fuubar
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 2.0.0
|
103
|
+
version: 3.10.0
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
108
|
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
110
|
+
version: 3.10.0
|
125
111
|
description: Projection tool for Ledger format
|
126
112
|
email: me@lesaker.org
|
127
113
|
executables:
|
@@ -129,18 +115,24 @@ executables:
|
|
129
115
|
extensions: []
|
130
116
|
extra_rdoc_files: []
|
131
117
|
files:
|
118
|
+
- ".circle-ruby"
|
132
119
|
- ".gitignore"
|
133
120
|
- ".prospectus"
|
134
121
|
- ".rspec"
|
135
122
|
- ".rubocop.yml"
|
123
|
+
- ".travis.yml"
|
136
124
|
- Gemfile
|
137
125
|
- LICENSE
|
138
126
|
- README.md
|
139
127
|
- Rakefile
|
140
128
|
- ballista.gemspec
|
141
129
|
- bin/ballista
|
142
|
-
- circle.yml
|
143
130
|
- lib/ballista.rb
|
131
|
+
- lib/ballista/frequencies.rb
|
132
|
+
- lib/ballista/frequencies/base.rb
|
133
|
+
- lib/ballista/frequencies/biweekly.rb
|
134
|
+
- lib/ballista/frequencies/monthly.rb
|
135
|
+
- lib/ballista/frequencies/weekly.rb
|
144
136
|
- lib/ballista/projection.rb
|
145
137
|
- lib/ballista/version.rb
|
146
138
|
- spec/ballista_spec.rb
|
@@ -149,7 +141,7 @@ homepage: https://github.com/akerl/ballista
|
|
149
141
|
licenses:
|
150
142
|
- MIT
|
151
143
|
metadata: {}
|
152
|
-
post_install_message:
|
144
|
+
post_install_message:
|
153
145
|
rdoc_options: []
|
154
146
|
require_paths:
|
155
147
|
- lib
|
@@ -157,16 +149,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
149
|
requirements:
|
158
150
|
- - ">="
|
159
151
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
152
|
+
version: 2.5.0
|
161
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
154
|
requirements:
|
163
155
|
- - ">="
|
164
156
|
- !ruby/object:Gem::Version
|
165
157
|
version: '0'
|
166
158
|
requirements: []
|
167
|
-
|
168
|
-
|
169
|
-
signing_key:
|
159
|
+
rubygems_version: 3.1.2
|
160
|
+
signing_key:
|
170
161
|
specification_version: 4
|
171
162
|
summary: Projection tool for Ledger format
|
172
163
|
test_files:
|
data/circle.yml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
dependencies:
|
2
|
-
override:
|
3
|
-
- 'rvm-exec 1.9.3-p551 bundle install'
|
4
|
-
- 'rvm-exec 2.0.0-p645 bundle install'
|
5
|
-
- 'rvm-exec 2.1.6 bundle install'
|
6
|
-
- 'rvm-exec 2.2.2 bundle install'
|
7
|
-
test:
|
8
|
-
override:
|
9
|
-
- 'rvm-exec 1.9.3-p551 bundle exec rake'
|
10
|
-
- 'rvm-exec 2.0.0-p645 bundle exec rake'
|
11
|
-
- 'rvm-exec 2.1.6 bundle exec rake'
|
12
|
-
- 'rvm-exec 2.2.2 bundle exec rake'
|