DEV: Switch from Travis to Actions (#29)
This commit is contained in:
parent
b588e0f876
commit
ecaaffd63f
|
@ -0,0 +1,48 @@
|
|||
name: Mini Mime Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
name: "Ruby ${{ matrix.ruby }} / Failure allowed: ${{ matrix.experimental }}"
|
||||
continue-on-error: ${{ matrix.experimental }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
ruby: ["2.4", "2.5", "2.6", "2.7"]
|
||||
experimental: [false]
|
||||
include:
|
||||
- ruby: "ruby-head"
|
||||
experimental: true
|
||||
- ruby: "jruby-head"
|
||||
experimental: true
|
||||
- ruby: "jruby-9.1.17.0"
|
||||
experimental: true
|
||||
- ruby: "jruby-9.2.13.0"
|
||||
experimental: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
- name: Bundler cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-${{ matrix.ruby }}-gems-
|
||||
- name: Setup gems
|
||||
run: |
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4
|
||||
- name: Rubocop
|
||||
run: bundle exec rubocop
|
||||
if: "!contains(matrix.ruby, 'jruby')"
|
||||
- name: Tests
|
||||
run: bundle exec rake test
|
|
@ -0,0 +1,5 @@
|
|||
inherit_gem:
|
||||
rubocop-discourse: default.yml
|
||||
inherit_mode:
|
||||
merge:
|
||||
- Exclude
|
20
.travis.yml
20
.travis.yml
|
@ -1,20 +0,0 @@
|
|||
language: ruby
|
||||
|
||||
rvm:
|
||||
- 2.3
|
||||
- 2.4
|
||||
- 2.5
|
||||
- 2.6
|
||||
- ruby-head
|
||||
- jruby
|
||||
- jruby-9.0.5.0
|
||||
- jruby-9.1.6.0
|
||||
- jruby-head
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- rvm: ruby-head
|
||||
- rvm: jruby-9.0.5.0
|
||||
- rvm: jruby-9.1.6.0
|
||||
- rvm: jruby-head
|
||||
fast_finish: true
|
1
Gemfile
1
Gemfile
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
source 'https://rubygems.org'
|
||||
|
||||
# Specify your gem's dependencies in mini_mime.gemspec
|
||||
|
|
17
Rakefile
17
Rakefile
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
require "bundler/gem_tasks"
|
||||
require "rake/testtask"
|
||||
|
||||
|
@ -7,7 +8,7 @@ Rake::TestTask.new(:test) do |t|
|
|||
t.test_files = FileList['test/**/*_test.rb']
|
||||
end
|
||||
|
||||
task :default => :test
|
||||
task default: :test
|
||||
|
||||
def pad(array)
|
||||
max = []
|
||||
|
@ -36,11 +37,11 @@ task :rebuild_db do
|
|||
index = {}
|
||||
|
||||
MIME::Types.each do |type|
|
||||
type.extensions.each {|ext| (index[ext.downcase] ||= []) << type}
|
||||
type.extensions.each { |ext| (index[ext.downcase] ||= []) << type }
|
||||
end
|
||||
|
||||
index.each do |k,list|
|
||||
list.sort!{|a,b| a.priority_compare(b)}
|
||||
index.each do |k, list|
|
||||
list.sort! { |a, b| a.priority_compare(b) }
|
||||
end
|
||||
|
||||
buffer = []
|
||||
|
@ -54,9 +55,9 @@ task :rebuild_db do
|
|||
|
||||
pad(buffer)
|
||||
|
||||
buffer.sort!{|a,b| a[0] <=> b[0]}
|
||||
buffer.sort! { |a, b| a[0] <=> b[0] }
|
||||
|
||||
File.open("lib/db/ext_mime.db", File::CREAT|File::TRUNC|File::RDWR) do |f|
|
||||
File.open("lib/db/ext_mime.db", File::CREAT | File::TRUNC | File::RDWR) do |f|
|
||||
buffer.each do |row|
|
||||
f.write "#{row[0]} #{row[1]} #{row[2]}\n"
|
||||
end
|
||||
|
@ -64,7 +65,7 @@ task :rebuild_db do
|
|||
|
||||
puts "#{buffer.count} rows written to lib/db/ext_mime.db"
|
||||
|
||||
buffer.sort!{|a,b| [a[1], a[0]] <=> [b[1], b[0]]}
|
||||
buffer.sort! { |a, b| [a[1], a[0]] <=> [b[1], b[0]] }
|
||||
|
||||
# strip cause we are going to re-pad
|
||||
buffer.each do |row|
|
||||
|
@ -80,7 +81,7 @@ task :rebuild_db do
|
|||
|
||||
pad(buffer)
|
||||
|
||||
File.open("lib/db/content_type_mime.db", File::CREAT|File::TRUNC|File::RDWR) do |f|
|
||||
File.open("lib/db/content_type_mime.db", File::CREAT | File::TRUNC | File::RDWR) do |f|
|
||||
last = nil
|
||||
count = 0
|
||||
buffer.each do |row|
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
require 'memory_profiler'
|
||||
require 'benchmark/ips'
|
||||
|
||||
$: << File.expand_path('../../lib', __FILE__)
|
||||
|
||||
|
||||
puts
|
||||
puts "Memory stats for requiring mime/types/columnar"
|
||||
result = MemoryProfiler.report do
|
||||
|
@ -22,7 +22,6 @@ end
|
|||
puts "Total allocated: #{result.total_allocated_memsize} bytes (#{result.total_allocated} objects)"
|
||||
puts "Total retained: #{result.total_retained_memsize} bytes (#{result.total_retained} objects)"
|
||||
|
||||
|
||||
Benchmark.ips do |bm|
|
||||
bm.report 'cached content_type lookup MiniMime' do
|
||||
MiniMime.lookup_by_filename("a.txt").content_type
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "bundler/setup"
|
||||
require "mini_mime"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
require "mini_mime/version"
|
||||
require "thread"
|
||||
|
||||
|
@ -129,7 +130,7 @@ module MiniMime
|
|||
result = nil
|
||||
|
||||
while from <= to do
|
||||
midpoint = from + (to-from).div(2)
|
||||
midpoint = from + (to - from).div(2)
|
||||
current = resolve(midpoint)
|
||||
data = current[@sort_order]
|
||||
if data > val
|
||||
|
@ -145,7 +146,7 @@ module MiniMime
|
|||
end
|
||||
|
||||
def resolve(row)
|
||||
@file.seek(row*@row_length)
|
||||
@file.seek(row * @row_length)
|
||||
Info.new(@file.readline)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
module MiniMime
|
||||
VERSION = "1.0.2"
|
||||
end
|
||||
|
|
|
@ -25,4 +25,6 @@ Gem::Specification.new do |spec|
|
|||
spec.add_development_dependency "bundler", ">= 1.13"
|
||||
spec.add_development_dependency "rake", "~> 10.0"
|
||||
spec.add_development_dependency "minitest", "~> 5.0"
|
||||
spec.add_development_dependency "rubocop"
|
||||
spec.add_development_dependency "rubocop-discourse"
|
||||
end
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
require 'test_helper'
|
||||
|
||||
class MiniMime::ConfigurationTest < Minitest::Test
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
require 'test_helper'
|
||||
|
||||
begin
|
||||
|
@ -49,7 +50,7 @@ class MiniMimeTest < Minitest::Test
|
|||
def test_full_parity_with_mime_types
|
||||
exts = Set.new
|
||||
MIME::Types.each do |type|
|
||||
type.extensions.each{|ext| exts << ext}
|
||||
type.extensions.each { |ext| exts << ext }
|
||||
end
|
||||
|
||||
exts.each do |ext|
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
||||
require 'mini_mime'
|
||||
|
||||
|
|
Loading…
Reference in New Issue