tty-pie 0.3.0 → 0.4.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
2
  SHA256:
3
- metadata.gz: de6504c8f8b127327c9e16616ed1c807dc273f1dbd893574639e576bac01924e
4
- data.tar.gz: 0ecf27fcd39ad0836015ab3f4d10d122fd43ef89885c45a9a91d94b3a297c133
3
+ metadata.gz: e3514ee6f5b698d2e61ba5e69fb79b2dcf854166b7dec6b295d4c407e793b46b
4
+ data.tar.gz: c6e1d14ca8c5f843ecf381db1485077744c30aaeac32e91e1a1f7b28daf0c8ee
5
5
  SHA512:
6
- metadata.gz: ee5fc9ee8c2e5c6ec944ac35a43f204a7a87f1ac36f69daded6e909c07e372893c8b1050ba4d64c887a0d9b99156bc463d25a7fcea424655a1cb5f18eb2a8b1d
7
- data.tar.gz: 24053d36773fa6de805ef8e2715eeb306238c293e066d3e43a0b6b58dad484f21962a05bb44deb46cb1ebb4343eafe8ab812b68ce530e32fc8f042901cc56434
6
+ metadata.gz: f3e94b9f2cbfde5e456c2bfd5a3d32c19ae33d8446d449b1c1fa7d2378a4ca91ecb4bc220f1161570f24b9810ddf9a8f489621ccbd9719a2d4c90790a2acbf95
7
+ data.tar.gz: 3be4437f36f739a7bc6a071ee0b6346f3b4713525eb7369963a2328b67c27dc4eaef574069850f9b146d534851a06aaa341259556f2579baf36519c615621bf1
@@ -1,5 +1,11 @@
1
1
  # Change log
2
2
 
3
+ ## [v0.4.0] - 2020-07-04
4
+
5
+ ### Changed
6
+ * Change gemspec to remove test and example artefacts
7
+ * Change to update pastel dependency
8
+
3
9
  ## [v0.3.0] - 2019-08-02
4
10
 
5
11
  ### Changed
@@ -29,6 +35,7 @@
29
35
 
30
36
  * Initial implementation and release
31
37
 
38
+ [v0.4.0]: https://github.com/piotrmurach/tty-pie/compare/v0.3.0...v0.4.0
32
39
  [v0.3.0]: https://github.com/piotrmurach/tty-pie/compare/v0.2.0...v0.3.0
33
40
  [v0.2.0]: https://github.com/piotrmurach/tty-pie/compare/v0.1.0...v0.2.0
34
41
  [v0.1.0]: https://github.com/piotrmurach/tty-pie/compare/v0.1.0
data/README.md CHANGED
@@ -30,7 +30,7 @@
30
30
  Add this line to your application's Gemfile:
31
31
 
32
32
  ```ruby
33
- gem 'tty-pie'
33
+ gem "tty-pie"
34
34
  ```
35
35
 
36
36
  And then execute:
@@ -60,10 +60,10 @@ To render a pie chart you need to provide an array of data items:
60
60
 
61
61
  ```ruby
62
62
  data = [
63
- { name: 'BTC', value: 5977, color: :bright_yellow, fill: '*' },
64
- { name: 'BCH', value: 3045, color: :bright_green, fill: 'x' },
65
- { name: 'LTC', value: 2030, color: :bright_magenta, fill: '@' },
66
- { name: 'ETH', value: 2350, color: :bright_cyan, fill: '+' }
63
+ { name: "BTC", value: 5977, color: :bright_yellow, fill: "*" },
64
+ { name: "BCH", value: 3045, color: :bright_green, fill: "x" },
65
+ { name: "LTC", value: 2030, color: :bright_magenta, fill: "@" },
66
+ { name: "ETH", value: 2350, color: :bright_cyan, fill: "+" }
67
67
  ]
68
68
  ```
69
69
 
@@ -109,10 +109,10 @@ For example, the following will result in four slices in a pie chart:
109
109
 
110
110
  ```ruby
111
111
  data = [
112
- { name: 'BTC', value: 5977 },
113
- { name: 'BCH', value: 3045 },
114
- { name: 'LTC', value: 2030 },
115
- { name: 'ETH', value: 2350 }
112
+ { name: "BTC", value: 5977 },
113
+ { name: "BCH", value: 3045 },
114
+ { name: "LTC", value: 2030 },
115
+ { name: "ETH", value: 2350 }
116
116
  ]
117
117
  ```
118
118
 
@@ -120,10 +120,10 @@ However, the above data slices will be displayed without any color. Use `:color`
120
120
 
121
121
  ```ruby
122
122
  data = [
123
- { name: 'BTC', value: 5977, color: :bright_yellow },
124
- { name: 'BCH', value: 3045, color: :bright_green },
125
- { name: 'LTC', value: 2030, color: :bright_magenta },
126
- { name: 'ETH', value: 2350, color: :bright_cyan }
123
+ { name: "BTC", value: 5977, color: :bright_yellow },
124
+ { name: "BCH", value: 3045, color: :bright_green },
125
+ { name: "LTC", value: 2030, color: :bright_magenta },
126
+ { name: "ETH", value: 2350, color: :bright_cyan }
127
127
  ]
128
128
  ```
129
129
 
@@ -131,10 +131,10 @@ To further make your chart readable consider making pie chart slices visible by
131
131
 
132
132
  ```ruby
133
133
  data = [
134
- { name: 'BTC', value: 5977, color: :bright_yellow, fill: '*' },
135
- { name: 'BCH', value: 3045, color: :bright_green, fill: 'x' },
136
- { name: 'LTC', value: 2030, color: :bright_magenta, fill: '@' },
137
- { name: 'ETH', value: 2350, color: :bright_cyan, fill: '+' }
134
+ { name: "BTC", value: 5977, color: :bright_yellow, fill: "*" },
135
+ { name: "BCH", value: 3045, color: :bright_green, fill: "x" },
136
+ { name: "LTC", value: 2030, color: :bright_magenta, fill: "@" },
137
+ { name: "ETH", value: 2350, color: :bright_cyan, fill: "+" }
138
138
  ]
139
139
  ```
140
140
 
@@ -150,10 +150,10 @@ Alternatively, you can delay adding data later with `add` or `<<` methods:
150
150
 
151
151
  ```ruby
152
152
  pie_chart = TTY::Pie.new
153
- pie_chart << { name: 'BTC', value: 5977, color: :bright_yellow, fill: '*' }
154
- pie_chart << { name: 'BCH', value: 3045, color: :bright_green, fill: 'x' }
155
- pie_chart << { name: 'LTC', value: 2030, color: :bright_magenta, fill: '@' }
156
- pie_chart << { name: 'ETH', value: 2350, color: :bright_cyan, fill: '+' }
153
+ pie_chart << { name: "BTC", value: 5977, color: :bright_yellow, fill: "*" }
154
+ pie_chart << { name: "BCH", value: 3045, color: :bright_green, fill: "x" }
155
+ pie_chart << { name: "LTC", value: 2030, color: :bright_magenta, fill: "@" }
156
+ pie_chart << { name: "ETH", value: 2350, color: :bright_cyan, fill: "+" }
157
157
  ```
158
158
 
159
159
  ### 2.2 add
@@ -162,8 +162,8 @@ You can also set data for the pie chart using the `add` or `<<` method calls. On
162
162
 
163
163
  ```ruby
164
164
  pie_chart = TTY::Pie.new
165
- pie_chart << { name: 'BTC', value: 5977, color: :bright_yellow, fill: '*' }
166
- pie_chart << { name: 'BCH', value: 3045, color: :bright_green, fill: 'x' }
165
+ pie_chart << { name: "BTC", value: 5977, color: :bright_yellow, fill: "*" }
166
+ pie_chart << { name: "BCH", value: 3045, color: :bright_green, fill: "x" }
167
167
  ...
168
168
  ```
169
169
 
@@ -173,14 +173,14 @@ To replace current data completely with the new use `update`:
173
173
 
174
174
  ```ruby
175
175
  data = [
176
- { name: 'BTC', value: 5977, color: :bright_yellow, fill: '*' },
177
- { name: 'BCH', value: 3045, color: :bright_green, fill: 'x' }
176
+ { name: "BTC", value: 5977, color: :bright_yellow, fill: "*" },
177
+ { name: "BCH", value: 3045, color: :bright_green, fill: "x" }
178
178
  ]
179
179
  pie_chart = TTY::Pie.new(data: data)
180
180
 
181
181
  new_data = [
182
- { name: 'BTC', value: 3400, color: :bright_yellow, fill: '*' },
183
- { name: 'BCH', value: 1200, color: :bright_green, fill: 'x' },
182
+ { name: "BTC", value: 3400, color: :bright_yellow, fill: "*" },
183
+ { name: "BCH", value: 1200, color: :bright_green, fill: "x" },
184
184
  ]
185
185
 
186
186
  pie_chart.update(new_data)
@@ -226,9 +226,9 @@ Provided the following data:
226
226
 
227
227
  ```ruby
228
228
  data = [
229
- { name: 'BTC', value: 5977, fill: '*' },
230
- { name: 'BCH', value: 3045, fill: '+' },
231
- { name: 'LTC', value: 2030, fill: 'x' }
229
+ { name: "BTC", value: 5977, fill: "*" },
230
+ { name: "BCH", value: 3045, fill: "+" },
231
+ { name: "LTC", value: 2030, fill: "x" }
232
232
  ]
233
233
  ```
234
234
 
@@ -280,9 +280,9 @@ Given data items:
280
280
 
281
281
  ```ruby
282
282
  data = [
283
- { name: 'BTC', value: 5977.12345, fill: '*' },
284
- { name: 'BCH', value: 3045.2, fill: '+' },
285
- { name: 'LTC', value: 2030.444, fill: 'x' }
283
+ { name: "BTC", value: 5977.12345, fill: "*" },
284
+ { name: "BCH", value: 3045.2, fill: "+" },
285
+ { name: "LTC", value: 2030.444, fill: "x" }
286
286
  ]
287
287
  ```
288
288
 
@@ -347,7 +347,7 @@ The currency can be further customised using `:precision` and `:delimiter` keys:
347
347
  legend: {
348
348
  format: "%<label>s %<name>s $%<currency>s (%<percent>.0f%%)",
349
349
  precision: 3,
350
- delimiter: '*'
350
+ delimiter: "*"
351
351
  }
352
352
  ```
353
353
 
@@ -1 +1 @@
1
- require_relative 'tty/pie'
1
+ require_relative "tty/pie"
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pastel'
4
- require 'tty-cursor'
3
+ require "pastel"
4
+ require "tty-cursor"
5
5
 
6
- require_relative 'pie/data_item'
7
- require_relative 'pie/version'
6
+ require_relative "pie/data_item"
7
+ require_relative "pie/version"
8
8
 
9
9
  module TTY
10
10
  class Pie
11
11
  FULL_CIRCLE_DEGREES = 360
12
12
 
13
- POINT_SYMBOL = ''
13
+ POINT_SYMBOL = ""
14
14
 
15
15
  LEGEND_LINE_SPACE = 1
16
16
 
@@ -35,7 +35,7 @@ module TTY
35
35
  # Create pie chart
36
36
  #
37
37
  # @example
38
- # data = [ { name: 'BTC', value: 5977, fill: '*' } ]
38
+ # data = [ { name: "BTC", value: 5977, fill: "*" } ]
39
39
  # pie_chart = TTY::Pie.new(data: data, radius: 2)
40
40
  #
41
41
  # @param [Array[Hash]] data
@@ -120,7 +120,7 @@ module TTY
120
120
  # @api public
121
121
  def render
122
122
  items = data_items
123
- return '' if items.empty?
123
+ return "" if items.empty?
124
124
  angles = data_angles(items)
125
125
  output = []
126
126
 
@@ -135,7 +135,7 @@ module TTY
135
135
  width = (Math.sqrt(radius * radius - y * y) * aspect_ratio).round
136
136
  width = width.zero? ? (radius / aspect_ratio).round : width
137
137
 
138
- output << ' ' * (center_x - width) if top.nil?
138
+ output << " " * (center_x - width) if top.nil?
139
139
  (-width..width).each do |x|
140
140
  angle = radian_to_degree(Math.atan2(x, y))
141
141
  item = items[select_data_item(angle, angles)]
@@ -155,7 +155,7 @@ module TTY
155
155
  end
156
156
  if labels_range.include?(y)
157
157
  if top.nil?
158
- output << ' ' * ((center_x - (left.to_i + width)) + label_horiz_space)
158
+ output << " " * ((center_x - (left.to_i + width)) + label_horiz_space)
159
159
  end
160
160
  output << labels[label_offset + y / label_vert_space]
161
161
  end
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pastel'
3
+ require "pastel"
4
4
 
5
5
  module TTY
6
6
  class Pie
7
7
  # Encapsulates a single data item
8
8
  class DataItem
9
- LABEL_FORMAT = '%<label>s %<name>s %<percent>.2f%%'
9
+ LABEL_FORMAT = "%<label>s %<name>s %<percent>.2f%%"
10
10
 
11
11
  attr_accessor :name
12
12
 
@@ -49,7 +49,7 @@ module TTY
49
49
  def to_label(legend)
50
50
  pattern = legend && legend[:format] || LABEL_FORMAT
51
51
  precision = legend && legend[:precision] || 2
52
- delimiter = legend && legend[:delimiter] || ','
52
+ delimiter = legend && legend[:delimiter] || ","
53
53
 
54
54
  label = color ? @pastel.decorate(fill, color) : fill
55
55
  currency = number_to_currency(value, precision: precision,
@@ -68,8 +68,8 @@ module TTY
68
68
  # @return [String]
69
69
  #
70
70
  # @api private
71
- def number_to_currency(value, precision: 2, delimiter: ',')
72
- whole, part = value.to_s.split('.')
71
+ def number_to_currency(value, precision: 2, delimiter: ",")
72
+ whole, part = value.to_s.split(".")
73
73
  unless part.nil?
74
74
  part = format("%.#{precision}f", part.to_f / 10**part.size)[1..-1]
75
75
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module TTY
4
4
  class Pie
5
- VERSION = "0.3.0"
5
+ VERSION = "0.4.0"
6
6
  end # Pie
7
7
  end # TTY
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tty-pie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Murach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-02 00:00:00.000000000 Z
11
+ date: 2020-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pastel
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.7.3
19
+ version: '0.8'
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.7.3
26
+ version: '0.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tty-cursor
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.7'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '1.5'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '1.5'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rake
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -82,41 +68,27 @@ dependencies:
82
68
  version: '3.0'
83
69
  description: Draw pie charts in your terminal window.
84
70
  email:
85
- - me@piotrmurach.com
71
+ - piotr@piotrmurach.com
86
72
  executables: []
87
73
  extensions: []
88
- extra_rdoc_files: []
74
+ extra_rdoc_files:
75
+ - README.md
76
+ - CHANGELOG.md
77
+ - LICENSE.txt
89
78
  files:
90
79
  - CHANGELOG.md
91
80
  - LICENSE.txt
92
81
  - README.md
93
- - Rakefile
94
- - bin/console
95
- - bin/setup
96
- - examples/basic.rb
97
- - examples/fill.rb
98
- - examples/format.rb
99
82
  - lib/tty-pie.rb
100
83
  - lib/tty/pie.rb
101
84
  - lib/tty/pie/data_item.rb
102
85
  - lib/tty/pie/version.rb
103
- - spec/spec_helper.rb
104
- - spec/unit/add_spec.rb
105
- - spec/unit/color_spec.rb
106
- - spec/unit/fill_spec.rb
107
- - spec/unit/legend_spec.rb
108
- - spec/unit/render_spec.rb
109
- - spec/unit/reset_spec.rb
110
- - spec/unit/update_spec.rb
111
- - tasks/console.rake
112
- - tasks/coverage.rake
113
- - tasks/spec.rake
114
- - tty-pie.gemspec
115
86
  homepage: https://piotrmurach.github.io/tty
116
87
  licenses:
117
88
  - MIT
118
89
  metadata:
119
90
  allowed_push_host: https://rubygems.org
91
+ bug_tracker_uri: https://github.com/piotrmurach/tty-pie/issues
120
92
  changelog_uri: https://github.com/piotrmurach/tty-pie/blob/master/CHANGELOG.md
121
93
  documentation_uri: https://www.rubydoc.info/gems/tty-pie
122
94
  homepage_uri: https://piotrmurach.github.io/tty
@@ -136,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
108
  - !ruby/object:Gem::Version
137
109
  version: '0'
138
110
  requirements: []
139
- rubygems_version: 3.0.3
111
+ rubygems_version: 3.1.2
140
112
  signing_key:
141
113
  specification_version: 4
142
114
  summary: Draw pie charts in your terminal window.
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- require "bundler/gem_tasks"
2
-
3
- FileList['tasks/**/*.rake'].each(&method(:import))
4
-
5
- desc 'Run all specs'
6
- task ci: %w[ spec ]
7
-
8
- task default: :spec
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "tty/pie"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,12 +0,0 @@
1
- require_relative '../lib/tty-pie'
2
-
3
- data = [
4
- { name: 'BTC', value: 5977, color: :bright_yellow },
5
- { name: 'BCH', value: 3045, color: :bright_green },
6
- { name: 'LTC', value: 2030, color: :bright_magenta },
7
- { name: 'ETH', value: 2350, color: :bright_cyan }
8
- ]
9
-
10
- pie = TTY::Pie.new(data: data, radius: 10)
11
-
12
- puts pie
@@ -1,12 +0,0 @@
1
- require_relative '../lib/tty-pie'
2
-
3
- data = [
4
- { name: 'BTC', value: 5977, color: :bright_yellow, fill: '*' },
5
- { name: 'BCH', value: 3045, color: :bright_green, fill: 'x' },
6
- { name: 'LTC', value: 2030, color: :bright_magenta, fill: '@' },
7
- { name: 'ETH', value: 2350, color: :bright_cyan, fill: '+' }
8
- ]
9
-
10
- pie = TTY::Pie.new(data: data, radius: 10)
11
-
12
- puts pie
@@ -1,16 +0,0 @@
1
- require_relative '../lib/tty-pie'
2
-
3
- data = [
4
- { name: 'BTC', value: 5977, color: :yellow },
5
- { name: 'BCH', value: 3045, color: :green },
6
- { name: 'LTC', value: 2030, color: :magenta },
7
- ]
8
-
9
- pie = TTY::Pie.new(
10
- data: data,
11
- legend: {
12
- format: "%<label>s %<name>s $%<currency>s (%<percent>.0f%%)"
13
- }
14
- )
15
-
16
- puts pie
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- if ENV['COVERAGE'] || ENV['TRAVIS']
4
- require 'simplecov'
5
- require 'coveralls'
6
-
7
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
8
- SimpleCov::Formatter::HTMLFormatter,
9
- Coveralls::SimpleCov::Formatter
10
- ]
11
-
12
- SimpleCov.start do
13
- command_name 'spec'
14
- add_filter 'spec'
15
- end
16
- end
17
-
18
- require "bundler/setup"
19
- require "tty/pie"
20
-
21
- RSpec.configure do |config|
22
- # Enable flags like --only-failures and --next-failure
23
- # config.example_status_persistence_file_path = ".rspec_status"
24
-
25
- # Disable RSpec exposing methods globally on `Module` and `main`
26
- config.disable_monkey_patching!
27
-
28
- config.expect_with :rspec do |c|
29
- c.syntax = :expect
30
- end
31
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Pie, '#add' do
4
- it "adds additional item" do
5
- data = [ { name: 'BTC', value: 5977, fill: '*' } ]
6
-
7
- pie = TTY::Pie.new(data: data, radius: 2)
8
- pie << { name: 'BCH', value: 3045, fill: '+' }
9
- pie << { name: 'LTC', value: 2030, fill: 'x' }
10
-
11
- output = pie.render
12
-
13
- expect(output).to eq([
14
- " x** * BTC 54.08%\n",
15
- " +xx****\n",
16
- "++++***** + BCH 27.55%\n",
17
- " +++****\n",
18
- " +** x LTC 18.37%\n"
19
- ].join)
20
- end
21
-
22
- it "adds item without modifying original data source" do
23
- data = [ { name: 'BTC', value: 5977, fill: '*' } ]
24
- pie = TTY::Pie.new(data: data, radius: 2)
25
- pie << { name: 'BCH', value: 3045, fill: '+' }
26
-
27
- expect(data).to match([a_hash_including(name: 'BTC')])
28
- end
29
- end
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Pie, ':color option' do
4
- it "renders a pie chart without colors" do
5
- data = [
6
- { name: 'BTC', value: 5977, fill: '*' },
7
- { name: 'BCH', value: 3045, fill: '+' },
8
- { name: 'LTC', value: 2030, fill: 'x' }
9
- ]
10
- pie = TTY::Pie.new(data: data, radius: 2)
11
-
12
- output = pie.render
13
-
14
- expect(output).to eq([
15
- " x** * BTC 54.08%\n",
16
- " +xx****\n",
17
- "++++***** + BCH 27.55%\n",
18
- " +++****\n",
19
- " +** x LTC 18.37%\n"
20
- ].join)
21
- end
22
-
23
- it "renders a pie chart with colors as a parameter" do
24
- data = [
25
- { name: 'BTC', value: 5977, fill: '*' },
26
- { name: 'BCH', value: 3045, fill: '+' },
27
- { name: 'LTC', value: 2030, fill: 'x' }
28
- ]
29
- pie = TTY::Pie.new(data: data, radius: 2, colors: %i[yellow green magenta])
30
-
31
- output = pie.render
32
- expected_output = [
33
- " \e[35mx\e[0m\e[33m*\e[0m\e[33m*\e[0m \e[33m*\e[0m BTC 54.08%\n",
34
- " \e[32m+\e[0m\e[35mx\e[0m\e[35mx\e[0m\e[33m*\e[0m\e[33m*\e[0m\e[33m*\e[0m\e[33m*\e[0m\n",
35
- "\e[32m+\e[0m\e[32m+\e[0m\e[32m+\e[0m\e[32m+\e[0m\e[33m*\e[0m\e[33m*\e[0m\e[33m*\e[0m\e[33m*\e[0m\e[33m*\e[0m \e[32m+\e[0m BCH 27.55%\n",
36
- " \e[32m+\e[0m\e[32m+\e[0m\e[32m+\e[0m\e[33m*\e[0m\e[33m*\e[0m\e[33m*\e[0m\e[33m*\e[0m\n",
37
- " \e[32m+\e[0m\e[33m*\e[0m\e[33m*\e[0m \e[35mx\e[0m LTC 18.37%\n"
38
- ].join
39
- expect(output).to eq(expected_output)
40
- end
41
-
42
- it "renders a pie chart with colors" do
43
- data = [
44
- { name: 'BTC', value: 5977, color: :bright_yellow },
45
- { name: 'BCH', value: 3045, color: :bright_green },
46
- { name: 'LTC', value: 2030, color: :bright_magenta }
47
- ]
48
- pie = TTY::Pie.new(data: data, radius: 2)
49
-
50
- output = pie.render
51
-
52
- expect(output).to eq([
53
- " \e[95m•\e[0m\e[93m•\e[0m\e[93m•\e[0m",
54
- " \e[93m•\e[0m BTC 54.08%\n",
55
- " \e[92m•\e[0m\e[95m•\e[0m\e[95m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\n",
56
- "\e[92m•\e[0m\e[92m•\e[0m\e[92m•\e[0m\e[92m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\e[93m•\e[0m",
57
- " \e[92m•\e[0m BCH 27.55%\n",
58
- " \e[92m•\e[0m\e[92m•\e[0m\e[92m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\e[93m•\e[0m\n",
59
- " \e[92m•\e[0m\e[93m•\e[0m\e[93m•\e[0m",
60
- " \e[95m•\e[0m LTC 18.37%\n"
61
- ].join)
62
- end
63
-
64
- it "renders a pie chart with legend and cursor positioning" do
65
- data = [
66
- { name: 'BTC', value: 5977, color: :bright_yellow },
67
- { name: 'BCH', value: 3045, color: :bright_green },
68
- { name: 'LTC', value: 2030, color: :bright_magenta }
69
- ]
70
- pie = TTY::Pie.new(data: data, radius: 2, left: 50, top: 10)
71
-
72
- output = pie.render
73
-
74
- expect(output).to eq([
75
- "\e[11;54H\e[95m•\e[0m\e[11;55H\e[93m•\e[0m\e[11;56H\e[93m•\e[0m",
76
- "\e[11;63H\e[93m•\e[0m BTC 54.08%\n",
77
- "\e[12;52H\e[92m•\e[0m\e[12;53H\e[95m•\e[0m\e[12;54H\e[95m•\e[0m\e[12;55H\e[93m•\e[0m\e[12;56H\e[93m•\e[0m\e[12;57H\e[93m•\e[0m\e[12;58H\e[93m•\e[0m\e[12;63H\n",
78
- "\e[13;51H\e[92m•\e[0m\e[13;52H\e[92m•\e[0m\e[13;53H\e[92m•\e[0m\e[13;54H\e[92m•\e[0m\e[13;55H\e[93m•\e[0m\e[13;56H\e[93m•\e[0m\e[13;57H\e[93m•\e[0m\e[13;58H\e[93m•\e[0m\e[13;59H\e[93m•\e[0m",
79
- "\e[13;63H\e[92m•\e[0m BCH 27.55%\n",
80
- "\e[14;52H\e[92m•\e[0m\e[14;53H\e[92m•\e[0m\e[14;54H\e[92m•\e[0m\e[14;55H\e[93m•\e[0m\e[14;56H\e[93m•\e[0m\e[14;57H\e[93m•\e[0m\e[14;58H\e[93m•\e[0m\e[14;63H\n",
81
- "\e[15;54H\e[92m•\e[0m\e[15;55H\e[93m•\e[0m\e[15;56H\e[93m•\e[0m",
82
- "\e[15;63H\e[95m•\e[0m LTC 18.37%\n"
83
- ].join)
84
- end
85
-
86
- it "renders a pie chart without legend and with cursor positioning" do
87
- data = [
88
- { name: 'BTC', value: 5977, color: :bright_yellow },
89
- { name: 'BCH', value: 3045, color: :bright_green },
90
- { name: 'LTC', value: 2030, color: :bright_magenta }
91
- ]
92
- pie = TTY::Pie.new(data: data, radius: 2, left: 50, top: 10, legend: false)
93
-
94
- output = pie.render
95
-
96
- expect(output).to eq([
97
- "\e[11;54H\e[95m•\e[0m\e[11;55H\e[93m•\e[0m\e[11;56H\e[93m•\e[0m\n",
98
- "\e[12;52H\e[92m•\e[0m\e[12;53H\e[95m•\e[0m\e[12;54H\e[95m•\e[0m\e[12;55H\e[93m•\e[0m\e[12;56H\e[93m•\e[0m\e[12;57H\e[93m•\e[0m\e[12;58H\e[93m•\e[0m\n",
99
- "\e[13;51H\e[92m•\e[0m\e[13;52H\e[92m•\e[0m\e[13;53H\e[92m•\e[0m\e[13;54H\e[92m•\e[0m\e[13;55H\e[93m•\e[0m\e[13;56H\e[93m•\e[0m\e[13;57H\e[93m•\e[0m\e[13;58H\e[93m•\e[0m\e[13;59H\e[93m•\e[0m\n",
100
- "\e[14;52H\e[92m•\e[0m\e[14;53H\e[92m•\e[0m\e[14;54H\e[92m•\e[0m\e[14;55H\e[93m•\e[0m\e[14;56H\e[93m•\e[0m\e[14;57H\e[93m•\e[0m\e[14;58H\e[93m•\e[0m\n",
101
- "\e[15;54H\e[92m•\e[0m\e[15;55H\e[93m•\e[0m\e[15;56H\e[93m•\e[0m\n",
102
- ].join)
103
- end
104
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Pie, ':fill option' do
4
- let(:data) {
5
- [
6
- { name: 'BTC', value: 5977, color: :bright_yellow, fill: '*' },
7
- { name: 'BCH', value: 3045, color: :bright_green, fill: '+' },
8
- { name: 'LTC', value: 2030, color: :bright_magenta, fill: 'x' }
9
- ]
10
- }
11
-
12
- it "renders a pie chart with custom fill per data item" do
13
- pie = TTY::Pie.new(data: data, radius: 2)
14
-
15
- output = pie.render
16
-
17
- expect(output).to eq([
18
- " \e[95mx\e[0m\e[93m*\e[0m\e[93m*\e[0m",
19
- " \e[93m*\e[0m BTC 54.08%\n",
20
- " \e[92m+\e[0m\e[95mx\e[0m\e[95mx\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\n\e[92m+\e[0m\e[92m+\e[0m\e[92m+\e[0m\e[92m+\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m",
21
- " \e[92m+\e[0m BCH 27.55%\n",
22
- " \e[92m+\e[0m\e[92m+\e[0m\e[92m+\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\n",
23
- " \e[92m+\e[0m\e[93m*\e[0m\e[93m*\e[0m",
24
- " \e[95mx\e[0m LTC 18.37%\n"
25
- ].join)
26
- end
27
-
28
- it "renders with custom fill chars per instance" do
29
- data_without_fill = data.map { |item| item.delete(:fill); item }
30
- pie = TTY::Pie.new(data: data_without_fill, radius: 2, fill: %w[* + x])
31
-
32
- output = pie.render
33
-
34
- expected_output = [
35
- " \e[95mx\e[0m\e[93m*\e[0m\e[93m*\e[0m",
36
- " \e[93m*\e[0m BTC 54.08%\n",
37
- " \e[92m+\e[0m\e[95mx\e[0m\e[95mx\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\n\e[92m+\e[0m\e[92m+\e[0m\e[92m+\e[0m\e[92m+\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m",
38
- " \e[92m+\e[0m BCH 27.55%\n",
39
- " \e[92m+\e[0m\e[92m+\e[0m\e[92m+\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\e[93m*\e[0m\n",
40
- " \e[92m+\e[0m\e[93m*\e[0m\e[93m*\e[0m",
41
- " \e[95mx\e[0m LTC 18.37%\n"
42
-
43
- ].join
44
-
45
- expect(output).to eq(expected_output)
46
- end
47
- end
@@ -1,167 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Pie, ':legend option' do
4
- it "renders legend at default location with 1 line separator" do
5
- data = [
6
- { name: 'BTC', value: 5977, fill: '*' },
7
- { name: 'BCH', value: 3045, fill: '+' },
8
- { name: 'LTC', value: 2030, fill: 'x' }
9
- ]
10
-
11
- pie = TTY::Pie.new(data: data, radius: 2)
12
-
13
- output = pie.render
14
-
15
- expect(output).to eq([
16
- " x** * BTC 54.08%\n",
17
- " +xx****\n",
18
- "++++***** + BCH 27.55%\n",
19
- " +++****\n",
20
- " +** x LTC 18.37%\n"
21
- ].join)
22
- end
23
-
24
- it "renders legend next to chart without any line separator" do
25
- data = [
26
- { name: 'BTC', value: 5977, fill: '*' },
27
- { name: 'BCH', value: 3045, fill: '+' },
28
- { name: 'LTC', value: 2030, fill: 'x' }
29
- ]
30
-
31
- pie = TTY::Pie.new(data: data, radius: 2, legend: {left: 0, line: 0})
32
-
33
- output = pie.render
34
-
35
- expect(output).to eq([
36
- " x**\n",
37
- " +xx**** * BTC 54.08%\n",
38
- "++++*****+ BCH 27.55%\n",
39
- " +++**** x LTC 18.37%\n",
40
- " +**\n"
41
- ].join)
42
- end
43
-
44
- it "renders legend at custom location with line separator" do
45
- data = [
46
- { name: 'BTC', value: 5977, fill: '*' },
47
- { name: 'BCH', value: 3045, fill: '+' },
48
- { name: 'LTC', value: 2030, fill: 'x' }
49
- ]
50
-
51
- pie = TTY::Pie.new(data: data, radius: 3, legend: {left: 10, line: 2})
52
-
53
- output = pie.render
54
-
55
- expect(output).to eq([
56
- " x** * BTC 54.08%\n",
57
- " xxxx*****\n",
58
- "++++xx*******\n",
59
- "++++++******* + BCH 27.55%\n",
60
- "++++++*******\n",
61
- " ++++*****\n",
62
- " +** x LTC 18.37%\n"
63
- ].join)
64
- end
65
-
66
- it "renders legend next to chart without any line separator" do
67
- data = [
68
- { name: 'BTC', value: 5977, fill: '*' },
69
- { name: 'BCH', value: 3045, fill: '+' },
70
- { name: 'LTC', value: 2030, fill: 'x' }
71
- ]
72
-
73
- pie = TTY::Pie.new(data: data, left: 2, top: 2, radius: 2, legend: {left: 2, line: 0})
74
-
75
- output = pie.render
76
-
77
- expected_output = [
78
- "\e[3;6Hx\e[3;7H*\e[3;8H*\e[3;13H\n",
79
- "\e[4;4H+\e[4;5Hx\e[4;6Hx\e[4;7H*\e[4;8H*\e[4;9H*\e[4;10H*\e[4;13H* BTC 54.08%\n",
80
- "\e[5;3H+\e[5;4H+\e[5;5H+\e[5;6H+\e[5;7H*\e[5;8H*\e[5;9H*\e[5;10H*\e[5;11H*\e[5;13H+ BCH 27.55%\n",
81
- "\e[6;4H+\e[6;5H+\e[6;6H+\e[6;7H*\e[6;8H*\e[6;9H*\e[6;10H*\e[6;13Hx LTC 18.37%\n",
82
- "\e[7;6H+\e[7;7H*\e[7;8H*\e[7;13H\n"
83
- ].join
84
-
85
- expect(output).to eq(expected_output)
86
- end
87
-
88
- it "renders legend with a custom format" do
89
- data = [
90
- { name: 'BTC', value: 5977, fill: '*' },
91
- { name: 'BCH', value: 3045, fill: '+' },
92
- { name: 'LTC', value: 2030, fill: 'x' }
93
- ]
94
-
95
- pie = TTY::Pie.new(
96
- data: data,
97
- radius: 2,
98
- legend: {
99
- format: "%<label>s %<name>s %<value>d (%<percent>.2f%%)"
100
- }
101
- )
102
-
103
- output = pie.render
104
-
105
- expect(output).to eq([
106
- " x** * BTC 5977 (54.08%)\n",
107
- " +xx****\n",
108
- "++++***** + BCH 3045 (27.55%)\n",
109
- " +++****\n",
110
- " +** x LTC 2030 (18.37%)\n"
111
- ].join)
112
- end
113
-
114
- it "renders legend with a custom format & value as currency" do
115
- data = [
116
- { name: 'BTC', value: 5977.12345, fill: '*' },
117
- { name: 'BCH', value: 3045.2, fill: '+' },
118
- { name: 'LTC', value: 2030.444, fill: 'x' }
119
- ]
120
-
121
- pie = TTY::Pie.new(
122
- data: data,
123
- radius: 2,
124
- legend: {
125
- format: "%<label>s %<name>s $%<currency>s (%<percent>.0f%%)"
126
- }
127
- )
128
-
129
- output = pie.render
130
-
131
- expect(output).to eq([
132
- " x** * BTC $5,977.12 (54%)\n",
133
- " +xx****\n",
134
- "++++***** + BCH $3,045.20 (28%)\n",
135
- " +++****\n",
136
- " +** x LTC $2,030.44 (18%)\n"
137
- ].join)
138
- end
139
-
140
- it "renders legend with a custom format and currency precision & delimiter" do
141
- data = [
142
- { name: 'BTC', value: 5977.12345, fill: '*' },
143
- { name: 'BCH', value: 3045.2, fill: '+' },
144
- { name: 'LTC', value: 2030.444, fill: 'x' }
145
- ]
146
-
147
- pie = TTY::Pie.new(
148
- data: data,
149
- radius: 2,
150
- legend: {
151
- format: "%<label>s %<name>s $%<currency>s (%<percent>.0f%%)",
152
- precision: 3,
153
- delimiter: '*'
154
- }
155
- )
156
-
157
- output = pie.render
158
-
159
- expect(output).to eq([
160
- " x** * BTC $5*977.123 (54%)\n",
161
- " +xx****\n",
162
- "++++***** + BCH $3*045.200 (28%)\n",
163
- " +++****\n",
164
- " +** x LTC $2*030.444 (18%)\n"
165
- ].join)
166
- end
167
- end
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Pie, '#render' do
4
- let(:data) {
5
- [
6
- { name: 'BTC', value: 5977 },
7
- { name: 'BCH', value: 3045 },
8
- { name: 'LTC', value: 2030 }
9
- ]
10
- }
11
-
12
- it "renders chart with no data" do
13
- pie = TTY::Pie.new(data: [], radius: 2)
14
-
15
- expect(pie.render).to eq('')
16
- end
17
-
18
- it "renders a pie chart with legend and without cursor positioning" do
19
- pie = TTY::Pie.new(data: data, radius: 2)
20
-
21
- output = pie.render
22
-
23
- expect(output).to eq([
24
- " ••• • BTC 54.08%\n",
25
- " •••••••\n",
26
- "••••••••• • BCH 27.55%\n",
27
- " •••••••\n",
28
- " ••• • LTC 18.37%\n"
29
- ].join)
30
- end
31
-
32
- it "renders a pie chart without legend and without cursor positioning" do
33
- pie = TTY::Pie.new(data: data, radius: 2, legend: false)
34
-
35
- output = pie.render
36
-
37
- expect(output).to eq([
38
- " •••\n",
39
- " •••••••\n",
40
- "•••••••••\n",
41
- " •••••••\n",
42
- " •••\n"
43
- ].join)
44
- end
45
-
46
- it "render a pie chart with legend and cursor positioning" do
47
- pie = TTY::Pie.new(data: data, radius: 2, left: 50, top: 10)
48
-
49
- output = pie.render
50
-
51
- expect(output).to eq([
52
- "\e[11;54H•\e[11;55H•\e[11;56H•\e[11;63H• BTC 54.08%\n",
53
- "\e[12;52H•\e[12;53H•\e[12;54H•\e[12;55H•\e[12;56H•\e[12;57H•\e[12;58H•\e[12;63H\n",
54
- "\e[13;51H•\e[13;52H•\e[13;53H•\e[13;54H•\e[13;55H•\e[13;56H•\e[13;57H•\e[13;58H•\e[13;59H•\e[13;63H• BCH 27.55%\n",
55
- "\e[14;52H•\e[14;53H•\e[14;54H•\e[14;55H•\e[14;56H•\e[14;57H•\e[14;58H•\e[14;63H\n",
56
- "\e[15;54H•\e[15;55H•\e[15;56H•",
57
- "\e[15;63H• LTC 18.37%\n"
58
- ].join)
59
- end
60
-
61
- it "render a pie chart without legend and with cursor positioning" do
62
- pie = TTY::Pie.new(data: data, radius: 2, left: 50, top: 10, legend: false)
63
-
64
- output = pie.render
65
-
66
- expect(output).to eq([
67
- "\e[11;54H\•\e[11;55H•\e[11;56H•\n",
68
- "\e[12;52H\•\e[12;53H•\e[12;54H•\e[12;55H•\e[12;56H•\e[12;57H•\e[12;58H•\n",
69
- "\e[13;51H\•\e[13;52H•\e[13;53H•\e[13;54H•\e[13;55H•\e[13;56H•\e[13;57H•\e[13;58H•\e[13;59H•\n",
70
- "\e[14;52H\•\e[14;53H•\e[14;54H•\e[14;55H•\e[14;56H•\e[14;57H•\e[14;58H•\n",
71
- "\e[15;54H\•\e[15;55H•\e[15;56H•\n",
72
- ].join)
73
- end
74
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Pie, '#reset' do
4
- it "resets current data" do
5
- data = [ { name: 'BTC', value: 5977, fill: '*' } ]
6
-
7
- pie = TTY::Pie.new(data: data, radius: 2)
8
-
9
- output = pie.render
10
-
11
- expect(output).to eq([
12
- " ***\n",
13
- " *******\n",
14
- "********* * BTC 100.00%\n",
15
- " *******\n",
16
- " ***\n"
17
- ].join)
18
-
19
- pie.reset
20
-
21
- expect(pie.render).to eq('')
22
- end
23
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Pie, '#update' do
4
- it "updates current data" do
5
- data = [ { name: 'BTC', value: 5977, fill: '*' } ]
6
-
7
- pie = TTY::Pie.new(data: data, radius: 2)
8
-
9
- output = pie.render
10
-
11
- expect(output).to eq([
12
- " ***\n",
13
- " *******\n",
14
- "********* * BTC 100.00%\n",
15
- " *******\n",
16
- " ***\n"
17
- ].join)
18
-
19
- pie.update([{name: 'LTC', value: 2030, fill: 'x'}])
20
-
21
- output = pie.render
22
-
23
- expect(output).to eq([
24
- " xxx\n",
25
- " xxxxxxx\n",
26
- "xxxxxxxxx x LTC 100.00%\n",
27
- " xxxxxxx\n",
28
- " xxx\n"
29
- ].join)
30
- end
31
- end
@@ -1,9 +0,0 @@
1
- desc 'Load gem inside irb console'
2
- task :console do
3
- require 'irb'
4
- require 'irb/completion'
5
- require File.join(__FILE__, '../../lib/tty-pie')
6
- ARGV.clear
7
- IRB.start
8
- end
9
- task c: %w[ console ]
@@ -1,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- desc 'Measure code coverage'
4
- task :coverage do
5
- begin
6
- original, ENV['COVERAGE'] = ENV['COVERAGE'], 'true'
7
- Rake::Task['spec'].invoke
8
- ensure
9
- ENV['COVERAGE'] = original
10
- end
11
- end
@@ -1,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- begin
4
- require 'rspec/core/rake_task'
5
-
6
- desc 'Run all specs'
7
- RSpec::Core::RakeTask.new(:spec) do |task|
8
- task.pattern = 'spec/{unit,integration}{,/*/**}/*_spec.rb'
9
- end
10
-
11
- namespace :spec do
12
- desc 'Run unit specs'
13
- RSpec::Core::RakeTask.new(:unit) do |task|
14
- task.pattern = 'spec/unit{,/*/**}/*_spec.rb'
15
- end
16
-
17
- desc 'Run integration specs'
18
- RSpec::Core::RakeTask.new(:integration) do |task|
19
- task.pattern = 'spec/integration{,/*/**}/*_spec.rb'
20
- end
21
- end
22
-
23
- rescue LoadError
24
- %w[spec spec:unit spec:integration].each do |name|
25
- task name do
26
- $stderr.puts "In order to run #{name}, do `gem install rspec`"
27
- end
28
- end
29
- end
@@ -1,34 +0,0 @@
1
- lib = File.expand_path("../lib", __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "tty/pie/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "tty-pie"
7
- spec.version = TTY::Pie::VERSION
8
- spec.authors = ["Piotr Murach"]
9
- spec.email = ["me@piotrmurach.com"]
10
- spec.summary = %q{Draw pie charts in your terminal window.}
11
- spec.description = %q{Draw pie charts in your terminal window.}
12
- spec.homepage = "https://piotrmurach.github.io/tty"
13
- spec.license = "MIT"
14
- if spec.respond_to?(:metadata)
15
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
16
- spec.metadata["changelog_uri"] = "https://github.com/piotrmurach/tty-pie/blob/master/CHANGELOG.md"
17
- spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/tty-pie"
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/piotrmurach/tty-pie"
20
- end
21
- spec.files = Dir['{lib,spec,examples}/**/*.rb']
22
- spec.files += Dir['{bin,tasks}/*', 'tty-pie.gemspec']
23
- spec.files += Dir['README.md', 'CHANGELOG.md', 'LICENSE.txt', 'Rakefile']
24
- spec.require_paths = ["lib"]
25
-
26
- spec.required_ruby_version = '>= 2.0.0'
27
-
28
- spec.add_dependency 'pastel', '~> 0.7.3'
29
- spec.add_dependency 'tty-cursor', '~> 0.7'
30
-
31
- spec.add_development_dependency 'bundler', '>= 1.5'
32
- spec.add_development_dependency 'rake'
33
- spec.add_development_dependency 'rspec', '~> 3.0'
34
- end