deeplink 1.0.1 → 2.0.0

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: d5c2bc7642dd2703b02b69c25dc305dc702f502d
4
- data.tar.gz: a615434ca52b13d083f9c145497f874d8d3420df
2
+ SHA256:
3
+ metadata.gz: f08c25f1f41d07f18e26e2b357f8f171458036cb7d567f0c4bf1aa85ee16b14b
4
+ data.tar.gz: 80d3e34f8cd939d5abbf4e2d6069d94c8e11a1b3e998e2732bec3ab1ce11d2a1
5
5
  SHA512:
6
- metadata.gz: 63d7bd8a17b537ffb4550a4adb9661bacbd32aa71523d10152edb4c3acacbac71df5f2e24c2eeebb995c4967f5475409af64e95c30063fa3b98e73d7de3ae91e
7
- data.tar.gz: 9bfbda44372af65fe70a816992d6188bba9fa15418b809670e5c22e4cb83341aea7bac21ca753c1a616beabf92f412575da19a45704582e9000f35237ac7536f
6
+ metadata.gz: 1d9eaa03986c02c3c2be37c4de3a7ddb28c005ce6f6259d278f19017096fdbf85c5e07bdecd3c0fc6ff6f453da7f71456c259b9a28323948b8311d4e1dcab423
7
+ data.tar.gz: 42a9936bd76ce3d1b92212bce9e776fb867de98d7bd30540d55172c4d8704d4973afb3f39eceef4c0c13780653250d5f13568464a43a4965f61e76d94a067631
data/README.md CHANGED
@@ -1,10 +1,11 @@
1
- [![Gem Version](https://badge.fury.io/rb/deeplink.svg)](https://badge.fury.io/rb/deeplink) [![Build Status](https://travis-ci.org/rikas/deeplink.svg?branch=master)](https://travis-ci.org/rikas/deeplink) [![Dependency Status](https://gemnasium.com/rikas/deeplink.svg)](https://gemnasium.com/rikas/deeplink)
1
+ [![Gem Version](https://badge.fury.io/rb/deeplink.svg)](https://badge.fury.io/rb/deeplink)
2
+ [![CI](https://github.com/rikas/deeplink/actions/workflows/ci.yml/badge.svg)](https://github.com/rikas/deeplink/actions/workflows/ci.yml)
2
3
 
3
4
  # Deeplink
4
5
 
5
6
  Handle deep links in an easy way.
6
7
 
7
- This gem needs ruby version >= 2.
8
+ This gem needs ruby version >= 3.2
8
9
 
9
10
  ## Installation
10
11
 
@@ -83,7 +84,7 @@ deeplink.to_s # => "foursquare://checkins/20982"
83
84
 
84
85
  ## Development
85
86
 
86
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
87
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake` to run the tests and RuboCop. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
87
88
 
88
89
  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).
89
90
 
data/lib/deeplink/link.rb CHANGED
@@ -1,7 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'uri'
4
- require 'cgi'
4
+
5
+ # Ruby 4.0 removed the CGI library; CGI.escape and CGI.unescape now live in cgi/escape.
6
+ if RUBY_VERSION >= '4'
7
+ require 'cgi/escape'
8
+ else
9
+ require 'cgi/util'
10
+ end
5
11
 
6
12
  module Deeplink
7
13
  class Link
@@ -50,11 +56,9 @@ module Deeplink
50
56
  def remove_query(*keys)
51
57
  return unless query
52
58
 
53
- if keys.size > 1
54
- keys.map { |key| query.delete(key.to_sym) }
55
- else
56
- query.delete(keys.first.to_sym)
57
- end
59
+ values = keys.map { |key| query.delete(key.to_sym) }
60
+
61
+ keys.size > 1 ? values : values.first
58
62
  end
59
63
 
60
64
  # Returns true if the link has a query string or false otherwise
@@ -116,14 +120,9 @@ module Deeplink
116
120
  def parse_query(query_str)
117
121
  return unless query_str
118
122
 
119
- param_name_value_pairs = query_str.scan(/([^&=]+)=([^&{}#]*)/)
120
-
121
- # We can't use just .to_h in param_name_value_pairs because if ruby < 2.1
122
- array_to_h(param_name_value_pairs)
123
- end
124
-
125
- def array_to_h(array)
126
- array.respond_to?(:to_h) ? array.to_h : Hash[*array.flatten]
123
+ # Values are unescaped here because #sanitize escapes them again; otherwise already encoded
124
+ # values (e.g. "%20") would end up double encoded.
125
+ query_str.scan(/([^&=]+)=([^&{}#]*)/).to_h { |key, value| [key, CGI.unescape(value)] }
127
126
  end
128
127
  end
129
128
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deeplink
4
- VERSION = '1.0.1'
4
+ VERSION = '2.0.0'
5
5
  end
data/lib/deeplink.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'uri'
4
3
  require 'deeplink/link'
5
4
  require 'deeplink/version'
6
5
 
metadata CHANGED
@@ -1,105 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deeplink
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Otero
8
- autorequire:
9
- bindir: exe
8
+ bindir: bin
10
9
  cert_chain: []
11
- date: 2018-02-13 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.10'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.10'
27
- - !ruby/object:Gem::Dependency
28
- name: pry-byebug
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 3.4.2
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 3.4.2
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 3.4.0
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 3.4.0
65
- type: :development
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: 3.4.0
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 3.4.0
75
- - !ruby/object:Gem::Dependency
76
- name: rubocop
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '0.50'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '0.50'
89
- - !ruby/object:Gem::Dependency
90
- name: rubocop-rspec
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '1.20'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '1.20'
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
103
12
  description: It mitigates the lack of support for mobile deep links on the URI module.
104
13
  email:
105
14
  - oterosantos@gmail.com
@@ -107,26 +16,18 @@ executables: []
107
16
  extensions: []
108
17
  extra_rdoc_files: []
109
18
  files:
110
- - ".gitignore"
111
- - ".rspec"
112
- - ".rubocop.yml"
113
- - ".ruby-version"
114
- - ".travis.yml"
115
- - Gemfile
116
19
  - LICENSE.txt
117
20
  - README.md
118
- - Rakefile
119
- - bin/console
120
- - bin/setup
121
- - deeplink.gemspec
122
21
  - lib/deeplink.rb
123
22
  - lib/deeplink/link.rb
124
23
  - lib/deeplink/version.rb
125
24
  homepage: https://github.com/rikas/deeplink
126
25
  licenses:
127
26
  - MIT
128
- metadata: {}
129
- post_install_message:
27
+ metadata:
28
+ source_code_uri: https://github.com/rikas/deeplink
29
+ bug_tracker_uri: https://github.com/rikas/deeplink/issues
30
+ rubygems_mfa_required: 'true'
130
31
  rdoc_options: []
131
32
  require_paths:
132
33
  - lib
@@ -134,16 +35,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
134
35
  requirements:
135
36
  - - ">="
136
37
  - !ruby/object:Gem::Version
137
- version: '0'
38
+ version: '3.2'
138
39
  required_rubygems_version: !ruby/object:Gem::Requirement
139
40
  requirements:
140
41
  - - ">="
141
42
  - !ruby/object:Gem::Version
142
43
  version: '0'
143
44
  requirements: []
144
- rubyforge_project:
145
- rubygems_version: 2.5.1
146
- signing_key:
45
+ rubygems_version: 4.0.10
147
46
  specification_version: 4
148
47
  summary: Gem to manage deep links parsing.
149
48
  test_files: []
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
- *.gem
2
- /.bundle/
3
- /.yardoc
4
- /Gemfile.lock
5
- /_yardoc/
6
- /coverage/
7
- /doc/
8
- /pkg/
9
- /spec/reports/
10
- /tmp/
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --order rand
3
- --color
data/.rubocop.yml DELETED
@@ -1,28 +0,0 @@
1
- require: rubocop-rspec
2
-
3
- # Configuration parameters: AllowURI, URISchemes.
4
- Metrics/LineLength:
5
- Max: 100
6
-
7
- Style/Documentation:
8
- Enabled: false
9
-
10
- # Assignment Branch Condition size.
11
- Metrics/AbcSize:
12
- Max: 25
13
-
14
- # Don't force me to write unreadable tests, please.
15
- RSpec/PredicateMatcher:
16
- Enabled: false
17
-
18
- # I like to write multiple expectations.
19
- RSpec/MultipleExpectations:
20
- Enabled: false
21
-
22
- # Don't care about example length.
23
- RSpec/ExampleLength:
24
- Enabled: false
25
-
26
- Metrics/BlockLength:
27
- Exclude:
28
- - 'spec/**'
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.3.0
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.0.0-p648
4
- - 2.1.0
5
- - 2.2.2
6
- - 2.3.0
7
- before_install: gem install bundler -v 1.10.6
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- # Specify your gem's dependencies in deeplink.gemspec
6
- gemspec
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- task default: :spec
data/bin/console DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- #!/usr/bin/env ruby
4
-
5
- require 'bundler/setup'
6
- require 'deeplink'
7
-
8
- require 'pry'
9
- Pry.start
data/bin/setup DELETED
@@ -1,7 +0,0 @@
1
- #!/bin/bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
-
5
- bundle install
6
-
7
- # Do any other automated setup that you need to do here
data/deeplink.gemspec DELETED
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
-
6
- require 'deeplink/version'
7
-
8
- Gem::Specification.new do |spec|
9
- spec.name = 'deeplink'
10
- spec.version = Deeplink::VERSION
11
- spec.authors = ['Ricardo Otero']
12
- spec.email = ['oterosantos@gmail.com']
13
-
14
- spec.summary = 'Gem to manage deep links parsing.'
15
- spec.description = 'It mitigates the lack of support for mobile deep links on the URI module.'
16
- spec.homepage = 'https://github.com/rikas/deeplink'
17
- spec.license = 'MIT'
18
-
19
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
20
- spec.bindir = 'exe'
21
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ['lib']
23
-
24
- spec.add_development_dependency 'bundler', '~> 1.10'
25
- spec.add_development_dependency 'pry-byebug', '~> 3.4.2'
26
- spec.add_development_dependency 'rake', '~> 10.0'
27
- spec.add_development_dependency 'rspec', '~> 3.4.0', '>= 3.4.0'
28
- spec.add_development_dependency 'rubocop', '~> 0.50'
29
- spec.add_development_dependency 'rubocop-rspec', '~> 1.20'
30
- end