duffy 1.0.1 → 1.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '031931bb20a67704daaeb756697289c59b8b4b17d20542e547f44b9a810f8937'
4
- data.tar.gz: 8d1d8ce9b7815f888604ff54be223a4efb4cecac8c5d6a8f3da7b63bb5be943b
3
+ metadata.gz: 7b26949061663fcfd666bc4479d89671494dfc81d2e14a3bb3189970de202255
4
+ data.tar.gz: e8dc1912140fc07fb39c4f9d15070c26397d91b9cd63fdaa7fc164e889e4cf5c
5
5
  SHA512:
6
- metadata.gz: 7eaf20af8b3da4f7d0524fa485cf08faa159fe706a93e5d3d63e6ca58e1e38b4460eed508b4a09ebd083b3261378cb215de93bb46c0d636a7e285d0999fccd44
7
- data.tar.gz: a33c601156a194d07e7a5675ca5ab94363181a1ccc6f2175e66fe6240e670fe1eddb454809637f47fde604a8f4de0a3c7c2d199b968a4cb2ee651ba85f63fab2
6
+ metadata.gz: 2816bf8e70c972cc7ce9e3066f8d54d9c93cb8e00958e2bd7ada8ab060163958faaeff52ca973af982039994acdcef6a0148b907d2193976ed4cbcf0787bfa11
7
+ data.tar.gz: '065851c6e0a9e97533715eef0800390cd0811c2ecc3453871479be7fb9d85056fbdc4327c54cbf4555819e5aa81b5f82c1007cd94525c316c17bb905f980dae0'
@@ -0,0 +1,17 @@
1
+ name: RSpec
2
+ on: push
3
+ jobs:
4
+ test:
5
+ strategy:
6
+ fail-fast: false
7
+ matrix:
8
+ os: [ubuntu-latest, macos-latest]
9
+ ruby: [2.6, 2.7, '3.0', 3.1]
10
+ runs-on: ${{ matrix.os }}
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - uses: ruby/setup-ruby@v1
14
+ with:
15
+ ruby-version: ${{ matrix.ruby }}
16
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
17
+ - run: bundle exec rake
data/README.md CHANGED
@@ -1,9 +1,5 @@
1
1
  # Duffy
2
2
 
3
- [![Build Status](https://travis-ci.org/duffyjp/duffy.svg?branch=master)](https://travis-ci.org/duffyjp/duffy)
4
- [![Code Climate](https://codeclimate.com/github/duffyjp/duffy/badges/gpa.svg)](https://codeclimate.com/github/duffyjp/duffy)
5
- [![Test Coverage](https://codeclimate.com/github/duffyjp/duffy/badges/coverage.svg)](https://codeclimate.com/github/duffyjp/duffy/coverage)
6
-
7
3
  This is a collection of reusable things I don't want to keep duplicating in tons of projects.
8
4
 
9
5
  ## Installation
@@ -39,10 +35,10 @@ to_ssn | "123456789" | "123-45-6789"
39
35
 
40
36
 
41
37
  ## Array Patches:
42
- Method | Example | Output
43
- ------------------|------------------------|-------
44
- to_box | ['abc', 123].to_box | ![Example](doc/abc123.png)
45
-
38
+ Method | Example | Output
39
+ ------------------|---------------------------|-------
40
+ to_box | ['abc', 123].to_box | ![Example](doc/abc123.png)
41
+ to_markdown | [[1,2],[3,4]].to_markdown | ![Example](doc/markdown.png)
46
42
 
47
43
  ## Date Patches:
48
44
  * See config to set your organization's fiscal year start.
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "duffy"
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/doc/markdown.png ADDED
Binary file
data/duffy.gemspec CHANGED
@@ -19,8 +19,10 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency 'activesupport' # Required for ActiveSupport::Configurable
22
- spec.add_development_dependency "bundler", "~> 1.7"
23
- spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "bundler"
23
+ spec.add_development_dependency "rake"
24
24
  spec.add_development_dependency "rails", '>= 5.0'
25
25
  spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "simplecov"
27
+
26
28
  end
data/lib/duffy/array.rb CHANGED
@@ -10,8 +10,40 @@ class Array
10
10
  def to_box(safe: true)
11
11
  return nil if self.empty?
12
12
  b = safe ? "+-++ | +++" : "╔─╦╗ ║ ╚╩╝"
13
- out = (b[0] + self.map{ |x| b[1] * (x.to_s.length + 2) }.join(b[2]) + b[3])[0,80] + "\n"
13
+ out = (b[0] + self.map{ |x| b[1] * (x.to_s.gsub(/\e\[([;\d]+)?m/, '').length + 2) }.join(b[2]) + b[3])[0,80] + "\n"
14
14
  out << (b[5,2] + self.join(b[4,3]) + b[4,2])[0,80] + "\n"
15
- out << (b[7] + self.map{ |x| b[1] * (x.to_s.length + 2) }.join(b[8]) + b[9])[0,80]
15
+ out << (b[7] + self.map{ |x| b[1] * (x.to_s.gsub(/\e\[([;\d]+)?m/, '').length + 2) }.join(b[8]) + b[9])[0,80]
16
16
  end
17
+
18
+
19
+
20
+ # Create a markdown table from a 2D Array
21
+ #
22
+ # puts [["Car", "Boat", Date.today, 5],["Horse", "Car", nil, 0]].to_markdown
23
+ # String | String | Date | Integer
24
+ # -------|--------|------------|---------
25
+ # Car | Boat | 2022-01-12 | 5
26
+ # Horse | Car | | 0
27
+ #
28
+ def to_markdown
29
+ raise "expected 2D array" unless self.first.is_a?(Array)
30
+
31
+ # Find max widths of data/headers: eg => [10, 25, 18, 21, 6]
32
+ widths = self.transpose.map{ |col| ([col.first.class.to_s.length] + col.map{ |i| i.to_s.length }).max }
33
+
34
+ # Use the class of each cell in the first row for the table headers.
35
+ out = self.first.map.with_index{|c,i| c.class.to_s.ljust(widths[i])}.join(" | ") + "\n"
36
+ out << out.gsub(/[^|]/, "-") + "\n"
37
+
38
+ # Left justify each cell
39
+ self.each do |row|
40
+ out << row.map(&:to_s).map.with_index{|c,i| c.ljust(widths[i])}.join(" | ") + "\n"
41
+ end
42
+ out
43
+
44
+ rescue => e
45
+ warn "Unable to generate table: #{e}"
46
+ nil
47
+ end
48
+
17
49
  end
data/lib/duffy/string.rb CHANGED
@@ -113,11 +113,11 @@ class String
113
113
  string = (self.upcase == self)? self.downcase : self
114
114
 
115
115
  result = ""
116
- string.gsub(/[_-]/, ' ').split(/( [:.;?!][ ] | (?:[ ]|^)[""] )/x).each do |s|
116
+ string.gsub('_', ' ').split(/( [:.;?!][ ] | (?:[ ]|^)[""] )/x).each do |s|
117
117
  s.gsub!(/ \b( [[:alpha:]] [[:lower:].'']* )\b /x) do |w|
118
118
  # Skip words with inresult dots, e.g. "del.icio.us" or "example.com"
119
119
  (w =~ / [[:alpha:]] [.] [[:alpha:]] /x) ? w : w.capitalize
120
- end #gsub!
120
+ end
121
121
 
122
122
  # Lowercase our list of small words:
123
123
  s.gsub!(/\b(#{small_re})\b/io) { |w| w.downcase }
@@ -135,9 +135,19 @@ class String
135
135
  # Special Cases:
136
136
  upcase_re = (Array(Duffy.configuration.upcase_custom) + Array(Duffy.configuration.upcase_default)).uniq.join("|")
137
137
 
138
+ # Names with apostrophes; O'Brian, De'Wayne. 3+ Skips "I've" "Haven't" etc.
139
+ result.gsub!(/([A-Z][a-z]*)'([a-z]{3,})/) { "#{$1}'#{$2.capitalize}" }
140
+
138
141
  result.gsub!(/ V(s?)\. /, ' v\1. ') # "v." and "vs."
142
+
139
143
  result.gsub!(/([''])S\b/, '\1s') # 'S (otherwise you get "the SEC'S decision")
144
+
140
145
  result.gsub!(/\b(#{upcase_re})\b/i) { |w| w.upcase } unless upcase_re.blank?
141
- result
146
+
147
+ # Squash repeated whitespace characters
148
+ result.gsub!(/\s+/, ' ')
149
+
150
+ # Strip leading / tailing whitespace and return
151
+ result.strip
142
152
  end
143
153
  end
data/lib/duffy/system.rb CHANGED
@@ -92,6 +92,20 @@ module Duffy
92
92
  0
93
93
  end
94
94
 
95
+ # The battery percentage 0.0 .. 100.0
96
+ # nil if no battery or error reading value.
97
+ # Darwin: pmset -g batt
98
+ # Linux:
99
+ def battery_percent
100
+ case RUBY_PLATFORM
101
+ when /darwin/ then `pmset -g batt`.scan(/^.*\t(.*%);/)[0][0].to_f
102
+ when /linux/ then File.read("/sys/class/power_supply/BAT0/charge_now").to_i * 100 / File.read("/sys/class/power_supply/BAT0/charge_full").to_i
103
+ else nil
104
+ end
105
+ rescue
106
+ nil
107
+ end
108
+
95
109
  # Memory available for use in Megabytes
96
110
  # Darwin: vm_stat (Pages Free + Pages Inactive)
97
111
  # Linux: Read /proc/meminfo
@@ -119,6 +133,7 @@ module Duffy
119
133
  0
120
134
  end
121
135
 
136
+
122
137
  private
123
138
 
124
139
  # [CPU USE, CPU IDLE]
data/lib/duffy/version.rb CHANGED
@@ -1,8 +1,13 @@
1
1
  module Duffy
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.6'
3
3
  end
4
4
 
5
5
  # History
6
+ # 1.0.6 - Add to_markdown Array method.
7
+ # 1.0.5 - Update smart_titlecase to better accommodate names.
8
+ # 1.0.4 - Added battery_percent method.
9
+ # 1.0.3 - to_box methods now accept ANSI colored strings.
10
+ # 1.0.2 - Added SimpleCov and added some more String tests.
6
11
  # 1.0.1 - Added String.to_box and Array.to_box. Nice for text banners.
7
12
  # 1.0.0 - Using Shellwords to escape directory listing in System.freespace.
8
13
  # 0.3.6 - Added disk freespace method. Looks at working directory.
data/spec/array_spec.rb CHANGED
@@ -21,4 +21,33 @@ describe Array do
21
21
  end
22
22
 
23
23
  end
24
+
25
+ describe "to_markdown" do
26
+
27
+ it "creates a markdown compatible table" do
28
+ array = [[1,2,3],[4,5,6],[7,8,9]]
29
+ expect(array.to_markdown).to eq "Integer | Integer | Integer\n--------|---------|---------\n1 | 2 | 3 \n4 | 5 | 6 \n7 | 8 | 9 \n"
30
+ end
31
+
32
+ it "uses the first row for column header names" do
33
+ array = [[1, "a", Date.today]]
34
+ expect(array.to_markdown.lines.first).to eq "Integer | String | Date \n"
35
+ end
36
+
37
+ it "arrays with very short data format correctly" do
38
+ array = [[1,2,3],[4,5,6],[7,8,9]]
39
+ expect(array.to_markdown).to eq "Integer | Integer | Integer\n--------|---------|---------\n1 | 2 | 3 \n4 | 5 | 6 \n7 | 8 | 9 \n"
40
+ end
41
+
42
+ it "rejects non-2D arrays" do
43
+ array = ["Wisconsin", "cheese"]
44
+ expect{array.to_markdown}.to output("Unable to generate table: expected 2D array\n").to_stderr
45
+ end
46
+
47
+ it "rejects arrays with inconsistent dimensions" do
48
+ array = [[1],[2,3],[4,5,6]]
49
+ expect{array.to_markdown}.to output("Unable to generate table: element size differs (2 should be 1)\n").to_stderr
50
+ end
51
+ end
52
+
24
53
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
1
4
  require 'bundler/setup'
2
5
  require 'rails'
3
6
  Bundler.setup
data/spec/string_spec.rb CHANGED
@@ -2,6 +2,89 @@ require 'spec_helper'
2
2
 
3
3
  describe String do
4
4
 
5
+ describe "md5" do
6
+ it "generates an md5sum of the given string" do
7
+ expect("foobar".md5).to eq "3858f62230ac3c915f300c664312c63f"
8
+ end
9
+ end
10
+
11
+ describe "pretty_phone" do
12
+ it "formats an American phone number with Area Code" do
13
+ expect("1234567890".pretty_phone).to eq "(123) 456-7890"
14
+ end
15
+
16
+ it "formats an American phone number without Area Code" do
17
+ expect("4567890".pretty_phone).to eq "456-7890"
18
+ end
19
+
20
+ it "leaves longer strings alone" do
21
+ expect("11234567890".pretty_phone).to eq "11234567890"
22
+ end
23
+
24
+ it "leaves shorter strings alone" do
25
+ expect("1123".pretty_phone).to eq "1123"
26
+ end
27
+ end
28
+
29
+ describe "smart_titlecase" do
30
+ {
31
+ "123 Main St." => "123 Main St.", # Numbers are allowed
32
+ "A Tale Of Two Cities" => "A Tale of Two Cities", # Articles are only capitalized if first
33
+ "At mt. Kilimanjaro" => "At Mt. Kilimanjaro", # Small non-articles are capitalized
34
+ "De'wayne" => "De'Wayne", # Names with apostrophes (longer first half)
35
+ "Hyphenated-Lastname" => "Hyphenated-Lastname", # Hyphenated words retain hyphen and capitalize
36
+ "I'm Here Ma'am" => "I'm Here Ma'am", # Contractions are treated as a single word
37
+ "Miller (Smith)" => "Miller (Smith)", # Parentheses are allowed
38
+ "O'brian" => "O'Brian", # Names with apostrophes (single character first half)
39
+ "Sample" => "Sample", # Already Capitalized, all lower, all upper okay
40
+ "Under_scores" => "Under Scores", # Underscores are treated as spaces
41
+
42
+ "Double Space" => "Double Space", # Clear duplicated whitespace
43
+ " Leading Space" => "Leading Space", # Remove leading whitespace
44
+ "Trailing Space " => "Trailing Space", # Remove trailing whitespace
45
+ }.each do |before, after|
46
+
47
+ # As typed above
48
+ it "#{before.strip.ljust(22)} => #{after}" do
49
+ expect(before.smart_titlecase).to eq after
50
+ end
51
+
52
+ # As all-lowercase
53
+ it "#{before.strip.downcase.ljust(22)} => #{after}" do
54
+ expect(before.downcase.smart_titlecase).to eq after
55
+ end
56
+
57
+ # As all-uppercase
58
+ it "#{before.strip.upcase.ljust(22)} => #{after}" do
59
+ expect(before.upcase.smart_titlecase).to eq after
60
+ end
61
+ end
62
+
63
+ # CamelCase words will be preserved.
64
+ {
65
+ "DreamWorks" => "DreamWorks",
66
+ "McDonald's happy-meal" => "McDonald's Happy-Meal",
67
+ }.each do |before, after|
68
+
69
+ # As typed above
70
+ it "#{before.ljust(22)} => #{after}" do
71
+ expect(before.smart_titlecase).to eq after
72
+ end
73
+ end
74
+
75
+ end
76
+
77
+ describe "to_alpha" do
78
+ it "strips everything but a-z and A-Z" do
79
+ expect("123abc$%^DEF".to_alpha).to eq "abcDEF"
80
+ end
81
+ end
82
+ describe "to_alpha_numeric" do
83
+ it "strips everything but a-z, A-Z and 0-9" do
84
+ expect("123abc$%^DEF".to_alpha_numeric).to eq "123abcDEF"
85
+ end
86
+ end
87
+
5
88
  describe "to_box" do
6
89
  it "creates a safe box around a string" do
7
90
  expect("foobar".to_box).to eq "+--------+\n| foobar |\n+--------+"
data/spec/system_spec.rb CHANGED
@@ -3,10 +3,16 @@ describe Duffy::System do
3
3
 
4
4
  # These methods return per-host settings. Verify the return object type and value within reason.
5
5
  # This generates the documentation more than anything.
6
- describe "cpus" do
7
- it "returns the number of physical cpus" do
8
- expect(Duffy::System.cpus).to be_an(Integer)
9
- expect(Duffy::System.cpus).to be >= 1
6
+
7
+ describe "battery_percent" do
8
+ it "returns the percentage of battery remaining" do
9
+ expect([Float, nil]).to include Duffy::System.battery_percent.class
10
+ end
11
+ end
12
+
13
+ describe "cpu_percent" do
14
+ it "returns the current cpu load percentage" do
15
+ expect(Duffy::System.cpu_percent).to be_a(Float)
10
16
  end
11
17
  end
12
18
 
@@ -17,6 +23,13 @@ describe Duffy::System do
17
23
  end
18
24
  end
19
25
 
26
+ describe "cpus" do
27
+ it "returns the number of physical cpus" do
28
+ expect(Duffy::System.cpus).to be_an(Integer)
29
+ expect(Duffy::System.cpus).to be >= 1
30
+ end
31
+ end
32
+
20
33
  describe "freespace" do
21
34
  it "returns working directory freespace in megabytes" do
22
35
  expect(Duffy::System.freespace).to be_an(Integer)
@@ -24,23 +37,17 @@ describe Duffy::System do
24
37
  end
25
38
  end
26
39
 
27
-
28
- describe "threads" do
29
- it "returns the total number of threads" do
30
- expect(Duffy::System.threads).to be_an(Integer)
31
- expect(Duffy::System.threads).to be >= 1
32
- end
33
- end
34
-
35
- describe "virtual?" do
36
- it "returns true if in a hypervisor, false otherwise." do
37
- expect(Duffy::System.virtual?).to be_in [true, false]
40
+ describe 'mem_available' do
41
+ it "returns the amount of available memory in Megabytes" do
42
+ expect(Duffy::System.mem_available).to be_an(Integer)
43
+ expect(Duffy::System.mem_available).to be > 0
38
44
  end
39
45
  end
40
46
 
41
- describe "cpu_percent" do
42
- it "returns the current cpu load percentage" do
43
- expect(Duffy::System.cpu_percent).to be_a(Float)
47
+ describe 'mem_percent' do
48
+ it "returns the amount of used memory as a percentage of total" do
49
+ expect(Duffy::System.mem_percent).to be_a(Float)
50
+ expect(Duffy::System.mem_percent).to be > 0
44
51
  end
45
52
  end
46
53
 
@@ -51,13 +58,6 @@ describe Duffy::System do
51
58
  end
52
59
  end
53
60
 
54
- describe 'mem_available' do
55
- it "returns the amount of available memory in Megabytes" do
56
- expect(Duffy::System.mem_available).to be_an(Integer)
57
- expect(Duffy::System.mem_available).to be > 0
58
- end
59
- end
60
-
61
61
  describe 'mem_used' do
62
62
  it "returns the amount of used memory in Megabytes" do
63
63
  expect(Duffy::System.mem_used).to be_an(Integer)
@@ -65,12 +65,17 @@ describe Duffy::System do
65
65
  end
66
66
  end
67
67
 
68
- describe 'mem_percent' do
69
- it "returns the amount of used memory as a percentage of total" do
70
- expect(Duffy::System.mem_percent).to be_a(Float)
71
- expect(Duffy::System.mem_percent).to be > 0
68
+ describe "threads" do
69
+ it "returns the total number of threads" do
70
+ expect(Duffy::System.threads).to be_an(Integer)
71
+ expect(Duffy::System.threads).to be >= 1
72
72
  end
73
73
  end
74
74
 
75
+ describe "virtual?" do
76
+ it "returns true if in a hypervisor, false otherwise." do
77
+ expect(Duffy::System.virtual?).to be_in [true, false]
78
+ end
79
+ end
75
80
 
76
81
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duffy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Duffy
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-01 00:00:00.000000000 Z
11
+ date: 2022-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -28,30 +28,30 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.7'
33
+ version: '0'
34
34
  type: :development
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: '1.7'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '0'
48
48
  type: :development
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: '10.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,23 +80,40 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Random collection of useful things.
84
98
  email:
85
99
  - duffy.jp@gmail.com
86
- executables: []
100
+ executables:
101
+ - console
87
102
  extensions: []
88
103
  extra_rdoc_files: []
89
104
  files:
105
+ - ".github/workflows/rspec.yml"
90
106
  - ".gitignore"
91
107
  - ".rspec"
92
108
  - ".rubocop.yml"
93
- - ".travis.yml"
94
109
  - Gemfile
95
110
  - LICENSE.txt
96
111
  - README.md
97
112
  - Rakefile
113
+ - bin/console
98
114
  - doc/abc.png
99
115
  - doc/abc123.png
116
+ - doc/markdown.png
100
117
  - duffy.gemspec
101
118
  - lib/duffy.rb
102
119
  - lib/duffy/active_record.rb
@@ -123,7 +140,7 @@ homepage: https://github.com/duffyjp/duffy
123
140
  licenses:
124
141
  - MIT
125
142
  metadata: {}
126
- post_install_message:
143
+ post_install_message:
127
144
  rdoc_options: []
128
145
  require_paths:
129
146
  - lib
@@ -138,8 +155,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
155
  - !ruby/object:Gem::Version
139
156
  version: '0'
140
157
  requirements: []
141
- rubygems_version: 3.0.1
142
- signing_key:
158
+ rubygems_version: 3.2.32
159
+ signing_key:
143
160
  specification_version: 4
144
161
  summary: Library of things
145
162
  test_files:
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3.0
4
-
5
- before_install:
6
- - gem update bundler