ballista 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 98d859e7cd342d957cb3a859d1c0dbad9d0e9b3e
4
- data.tar.gz: ce880f15be9b6b97d1dfb2f0366bd72b941cd45d
2
+ SHA256:
3
+ metadata.gz: 908c4d0abe9c14c6d26198e78b7e4bf02cf701079bb2adad1a903d7787cd7ddf
4
+ data.tar.gz: c1e953583fe7f32b7102bfe4f3924d74a9394fb51f08c8e8855141890a1ad391
5
5
  SHA512:
6
- metadata.gz: c19d72ea5c1387012e4630c8410e076acb5cc7327a0e4121434dec4f42a9d78c1d903f21e67567560edb8fd9a115b2b8012894528bc7df02f278f3f410d9359d
7
- data.tar.gz: 0f34f5fc4284b40dd31c664787c7baaf773bd27129b4e3c93af9c4287089c7a39ee0f561cef466cba3ef4321711153c945962cc987ed057a858c280c52568079
6
+ metadata.gz: 8378709556a8a7661640a639584679aaa2d241760738ffa2340e9fd67bc78a349c446cc8eac1bed3b191df4d7315d3f650fde1f7dc97b9b6f31bdd803d2a4603
7
+ data.tar.gz: c4b2cb1ca8e1597fa8e241229501cd81aad6c926acf80ff47408b26b6e3b7ec9f858d176b837b77a75ea407978c3fb2ea3c5433f039256e5950cbeac0a86c3ef
data/.circle-ruby ADDED
@@ -0,0 +1,4 @@
1
+ 2.6.1
2
+ 2.5.3
3
+ 2.4.5
4
+ 2.3.8
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
- expected do
3
- static
4
- set 'green'
5
- end
7
+ noop
6
8
 
7
- actual do
8
- gemnasium
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
- Encoding:
2
- Enabled: false
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
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
-
data/README.md CHANGED
@@ -2,8 +2,7 @@ ballista
2
2
  =========
3
3
 
4
4
  [![Gem Version](https://img.shields.io/gem/v/ballista.svg)](https://rubygems.org/gems/ballista)
5
- [![Dependency Status](https://img.shields.io/gemnasium/akerl/ballista.svg)](https://gemnasium.com/akerl/ballista)
6
- [![Build Status](https://img.shields.io/circleci/project/akerl/ballista.svg)](https://circleci.com/gh/akerl/ballista)
5
+ [![Build Status](https://img.shields.io/travis/com/akerl/ballista.svg)](https://travis-ci.com/akerl/ballista)
7
6
  [![Coverage Status](https://img.shields.io/codecov/c/github/akerl/ballista.svg)](https://codecov.io/github/akerl/ballista)
8
7
  [![Code Quality](https://img.shields.io/codacy/c9caebd934f04ca699d1f02fac6dcf22.svg)](https://www.codacy.com/app/akerl/ballista)
9
8
  [![MIT Licensed](https://img.shields.io/badge/license-MIT-green.svg)](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: [:spec, :rubocop, :build, :install]
13
+ task default: %i[spec rubocop build install]
data/ballista.gemspec CHANGED
@@ -1,13 +1,15 @@
1
- $:.unshift File.expand_path('../lib/', __FILE__)
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 = "Projection tool for Ledger format"
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 'libledger', '~> 0.0.1'
21
- s.add_dependency 'mercenary', '~> 0.3.4'
22
- s.add_dependency 'cymbal', '~> 1.0.0'
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 'rubocop', '~> 0.39.0'
25
- s.add_development_dependency 'rake', '~> 11.1.0'
26
- s.add_development_dependency 'codecov', '~> 0.1.1'
27
- s.add_development_dependency 'rspec', '~> 3.4.0'
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.load(File.read(file)))
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
- months = options[:months] || 12
25
- projection = Ballista.new(entries: config).project(months)
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
@@ -13,3 +13,4 @@ end
13
13
 
14
14
  require 'ballista/version'
15
15
  require 'ballista/projection'
16
+ require 'ballista/frequencies'
@@ -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,11 @@
1
+ module Ballista
2
+ module Frequencies
3
+ ##
4
+ # Biweekly actions
5
+ class Biweekly < Weekly
6
+ def step
7
+ 14
8
+ end
9
+ end
10
+ end
11
+ 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
@@ -9,10 +9,8 @@ module Ballista
9
9
  @entries = params[:entries]
10
10
  end
11
11
 
12
- def project(months)
13
- start = Date.today + 1
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
 
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # Set the version (needed for Mercenary -v)
3
3
  module Ballista
4
- VERSION = '0.0.1'.freeze
4
+ VERSION = '0.1.0'.freeze
5
5
  end
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.1
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: 2016-04-25 00:00:00.000000000 Z
11
+ date: 2021-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: libledger
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.1
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.1
26
+ version: 2.0.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: mercenary
28
+ name: libledger
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.4
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.3.4
40
+ version: 0.0.8
41
41
  - !ruby/object:Gem::Dependency
42
- name: cymbal
42
+ name: mercenary
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.0
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: 1.0.0
54
+ version: 0.4.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: rubocop
56
+ name: codecov
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.39.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.39.0
68
+ version: 0.5.1
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
70
+ name: goodcop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 11.1.0
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: 11.1.0
82
+ version: 0.9.3
83
83
  - !ruby/object:Gem::Dependency
84
- name: codecov
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.1.1
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.1.1
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.4.0
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: 2.0.0
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: '0'
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
- rubyforge_project:
168
- rubygems_version: 2.5.1
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'