mini_suffix 0.1.0 → 0.3.3

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
- SHA1:
3
- metadata.gz: 0be3c2c9d92f4a37a7691c18bb0cfcef55c1231f
4
- data.tar.gz: 65a80e40e464a618508698c3d906d54d31c8a06d
2
+ SHA256:
3
+ metadata.gz: fccde82176bf00cfeafda11ca5155185a0dd476a6a22531289883a20d20da96d
4
+ data.tar.gz: e8e30e2c0433f05fb37338809276c909c2dcf82c9dc5075c48b2a469870e7928
5
5
  SHA512:
6
- metadata.gz: c18c41f0b55013130fad3aae53d83d80ac14123435cb24ea444e8f5c9ebd6850384a734b395099d91dada8af5a8096e8cc4179617585eb04e4d5313fb46667bf
7
- data.tar.gz: f02b57073cbfa0f41bb0a84dd44a97cbe0b863518003d26d876012612ea9da7502c074fd49e559840d37b60a75094b708657e4c7f911496df8817b814b867130
6
+ metadata.gz: ff8f7597ce5345ce451ec496d48ff667dec1b13e86d0075af34a1f1baacf2d70c38b20648122f3adb49558a0468d5452e4647770939348cd285156fd3bf0fbf2
7
+ data.tar.gz: 203f22ca8c0da035d40291600a19d3552967e276d857edbb66dea702fc10bf4002c6c1e14c4d82c9fa04e84f8a1223df1ecd7c4e3dd552212d36049f924a0e13
@@ -0,0 +1,49 @@
1
+ name: Mini Suffix Tests
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - master
8
+ - main
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ name: Ruby ${{ matrix.ruby }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ ruby: ["2.7", "2.6", "2.5"]
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ - name: Bundler cache
24
+ uses: actions/cache@v2
25
+ with:
26
+ path: vendor/bundle
27
+ key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
28
+ restore-keys: |
29
+ ${{ runner.os }}-${{ matrix.ruby }}-gems-
30
+ - name: Setup gems
31
+ run: |
32
+ bundle config path vendor/bundle
33
+ bundle install --jobs 4
34
+ - name: Tests
35
+ run: bundle exec rspec
36
+ publish:
37
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
38
+ needs: build
39
+ runs-on: ubuntu-latest
40
+
41
+ steps:
42
+ - uses: actions/checkout@v2
43
+
44
+ - name: Release Gem
45
+ uses: discourse/publish-rubygems-action@v2
46
+ env:
47
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
48
+ GIT_EMAIL: team@discourse.org
49
+ GIT_NAME: discoursebot
data/.gitmodules ADDED
@@ -0,0 +1,3 @@
1
+ [submodule "libpsl"]
2
+ path = libpsl
3
+ url = https://github.com/rockdaboot/libpsl.git
data/CHANGELOG.md ADDED
@@ -0,0 +1,24 @@
1
+ # 0.3.3
2
+
3
+ * Add libpsl shared libary for Linux aarch64
4
+
5
+ *xfalcox*
6
+
7
+ # 0.3.2
8
+
9
+ * Bump libpsl to v0.21.1, and bump binaries
10
+ * Add binary for Apple silicon devices
11
+
12
+ *davidtaylorhq*
13
+
14
+ # 0.3.1
15
+
16
+ * Add libpsl shared libary for Linux ppc64le
17
+
18
+ *runlevel5*
19
+
20
+ # 0.3.0
21
+
22
+ * Add libpsl shared library for osx support.
23
+
24
+ *tgxworld*
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  ## Installation
4
4
 
5
5
  ### Debian
6
- `sudo apt-get install libpsl-dev`
7
6
 
8
7
  Add this line to your application's Gemfile:
9
8
 
@@ -31,7 +30,7 @@ MiniSuffix.domain("www.careers.gov.sg")
31
30
  # => "careers.gov.sg"
32
31
  ```
33
32
 
34
- ##Benchmark
33
+ ## Benchmark
35
34
 
36
35
  ```
37
36
  # benchmark/bench.rb
@@ -59,6 +58,15 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
59
58
 
60
59
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
61
60
 
61
+ ## Updating libpsl
62
+
63
+ Libpsl binaries are bundled with the gem. The current version is checked out as a submodule in `./libpsl/`. To update, checkout a later commit
64
+ in the submodule (ideally matching an upstream release tag). You will then need to rebuild the binaries for all architectures. This requires running `./build-libpsl.sh` in each environment. Depending on your setup, you may be able to accomplish that via virtual machines and/or Docker.
65
+
66
+ Check the comments in `./build-libpsl.sh` for more information.
67
+
68
+ The submodule bump and updated binaries should be checked in to the repository.
69
+
62
70
  ## Contributing
63
71
 
64
72
  Bug reports and pull requests are welcome on GitHub at https://github.com/discourse/mini_suffix.
data/build-libpsl.sh ADDED
@@ -0,0 +1,28 @@
1
+ #! /bin/bash
2
+
3
+ set -e
4
+ export DEBIAN_FRONTEND=noninteractive
5
+ cd $(dirname ${BASH_SOURCE[0]})/libpsl
6
+
7
+ # A rough script to build libpsl from source, and move the binary to the /vendor directory.
8
+ #
9
+ # On linux, you will need a number of dependencies:
10
+ # apt-get update
11
+ # apt-get install -y meson gcc clang libtool llvm-dev valgrind python3 python3-setuptools libicu-dev
12
+ #
13
+ # On macOS, run this script in the homebrew build environment using `brew sh -c ./build-libpsl.sh`
14
+ #
15
+ # If you're running this, make sure to update the binaries for all other architectures as well
16
+
17
+ rm -rf builddir
18
+ meson builddir --buildtype=release -Druntime=no -Dbuiltin=libicu
19
+ ninja -C builddir
20
+ ninja -C builddir test
21
+
22
+ if [[ "$OSTYPE" == "darwin"* ]]; then
23
+ cp builddir/src/libpsl.dylib ../vendor/libpsl.darwin-$(arch).dylib
24
+ else
25
+ cp builddir/src/libpsl.so ../vendor/libpsl.$(arch).so
26
+ fi
27
+
28
+ echo "Done $(arch)"
@@ -1,3 +1,3 @@
1
1
  module MiniSuffix
2
- VERSION = "0.1.0"
2
+ VERSION = "0.3.3"
3
3
  end
data/lib/mini_suffix.rb CHANGED
@@ -4,7 +4,14 @@ require 'ffi'
4
4
  module MiniSuffix
5
5
  extend FFI::Library
6
6
 
7
- ffi_lib File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.so')
7
+ ffi_lib [
8
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.aarch64.so'),
9
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.x86_64.so'),
10
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.ppc64le.so'),
11
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.darwin-i386.dylib'),
12
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.darwin-arm64.dylib'),
13
+ ]
14
+
8
15
  attach_function :psl_builtin, [], :pointer
9
16
  attach_function :psl_registrable_domain, [:pointer, :string], :string
10
17
  attach_function :psl_get_version, [], :string
data/mini_suffix.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_dependency 'ffi', '~> 1.9'
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.16"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "rspec", "~> 3.0"
26
+ spec.add_development_dependency "bundler"
27
+ spec.add_development_dependency "rake", "> 10.0"
28
+ spec.add_development_dependency "rspec", "> 3.0"
29
29
  end
Binary file
Binary file
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_suffix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guo Xiang Tan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-29 00:00:00.000000000 Z
11
+ date: 2021-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -28,42 +28,42 @@ 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.16'
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.16'
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
47
  version: '10.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
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.0'
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
68
  version: '3.0'
69
69
  description:
@@ -73,9 +73,11 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".github/workflows/ci.yml"
76
77
  - ".gitignore"
78
+ - ".gitmodules"
77
79
  - ".rspec"
78
- - ".travis.yml"
80
+ - CHANGELOG.md
79
81
  - Gemfile
80
82
  - LICENSE.txt
81
83
  - README.md
@@ -83,10 +85,15 @@ files:
83
85
  - benchmark/bench.rb
84
86
  - bin/console
85
87
  - bin/setup
88
+ - build-libpsl.sh
86
89
  - lib/mini_suffix.rb
87
90
  - lib/mini_suffix/version.rb
88
91
  - mini_suffix.gemspec
89
- - vendor/libpsl.so
92
+ - vendor/libpsl.aarch64.so
93
+ - vendor/libpsl.darwin-arm64.dylib
94
+ - vendor/libpsl.darwin-i386.dylib
95
+ - vendor/libpsl.ppc64le.so
96
+ - vendor/libpsl.x86_64.so
90
97
  homepage: https://github.com/discourse/mini_suffix
91
98
  licenses:
92
99
  - MIT
@@ -106,8 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
113
  - !ruby/object:Gem::Version
107
114
  version: '0'
108
115
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.6.13
116
+ rubygems_version: 3.1.6
111
117
  signing_key:
112
118
  specification_version: 4
113
119
  summary: FFI wrapper for libpsl
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.2
5
- before_install: gem install bundler -v 1.16.0
data/vendor/libpsl.so DELETED
Binary file