tweet_sanitizer 0.1.0.beta1 → 0.2.1

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
- SHA1:
3
- metadata.gz: 95ee13f344a020fee8f62754894bff6ce604aa41
4
- data.tar.gz: 0dd22db74f75368271ed62f967141dd009290e40
2
+ SHA256:
3
+ metadata.gz: 4c5714c30ff280753252d5c0a6bfe3365b329199edb2d670190d069e9ff7820b
4
+ data.tar.gz: 0157a784bc6b12391389d14a34a27f41b61805cefbbc272b2e3d1a1066e0fbe3
5
5
  SHA512:
6
- metadata.gz: b9d8a7efbec32e451c484d4f2b9c0bc85d391d890c299a81cb7ac366a2773e6a3636b064ae21404e001331ae9eec156549cea0c459c63002f1f422edda3605f0
7
- data.tar.gz: e075a6c9f8f5e6b29b5ae67e8294edb7f8a69a5f744d552969237a80c59487ef2092b1c87c9ebe85955d15776bfffd5e785fe3bac07a42a6acbd9637ddbb4bd1
6
+ metadata.gz: 18982482212aa7c854803a6770bb14b9d8990e9581fe7f3d27bc6896fd9645c6c408512d1b4e859d3c2c654095f7ce2ea7acb7e85686e542f49cdbdfb751f4d6
7
+ data.tar.gz: 6f82ab38dfdc1bcd8046d2cd1f4c8b28f239d5e5d4dd7f6d4a4af8c943d06a5a41e02d0ec2ab4129347dd610bb5cd203a60f9b9ef1c72bf851c022ea8757df48
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ repo_token: kZmA3FzhK4Oou7s7aQPRcAW0e8RbRlzhD
@@ -0,0 +1,111 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ types:
9
+ - opened
10
+ - synchronize
11
+ - reopened
12
+ schedule:
13
+ - cron: "0 10 * * 5" # JST 19:00 (Fri)
14
+
15
+ env:
16
+ CI: "true"
17
+
18
+ jobs:
19
+ test:
20
+ runs-on: ubuntu-latest
21
+
22
+ container: ${{ matrix.ruby }}
23
+
24
+ strategy:
25
+ fail-fast: false
26
+
27
+ matrix:
28
+ ruby:
29
+ - ruby:2.2
30
+ - ruby:2.3
31
+ - ruby:2.4
32
+ - ruby:2.5
33
+ - ruby:2.6
34
+ - ruby:2.7
35
+ - ruby:3.0
36
+ - rubylang/ruby:master-nightly-bionic
37
+ include:
38
+ - ruby: rubylang/ruby:master-nightly-bionic
39
+ allow_failures: "true"
40
+
41
+ steps:
42
+ - uses: actions/checkout@v2
43
+
44
+
45
+ - name: Cache vendor/bundle
46
+ uses: actions/cache@v1
47
+ id: cache_gem
48
+ with:
49
+ path: vendor/bundle
50
+ key: v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ github.sha }}
51
+ restore-keys: |
52
+ v1-gem-${{ runner.os }}-${{ matrix.ruby }}-
53
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
54
+
55
+ - name: bundle update
56
+ run: |
57
+ set -xe
58
+ bundle config path vendor/bundle
59
+ bundle update --jobs $(nproc) --retry 3
60
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
61
+
62
+ - name: Setup Code Climate Test Reporter
63
+ uses: aktions/codeclimate-test-reporter@v1
64
+ with:
65
+ codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
66
+ command: before-build
67
+ if: matrix.ruby >= 'ruby:2.4'
68
+ continue-on-error: true
69
+
70
+ - name: Run test
71
+ run: |
72
+ set -xe
73
+ bundle exec rspec
74
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
75
+
76
+ - name: Teardown Code Climate Test Reporter
77
+ uses: aktions/codeclimate-test-reporter@v1
78
+ with:
79
+ codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
80
+ command: after-build
81
+ if: matrix.ruby >= 'ruby:2.4' && always()
82
+ continue-on-error: true
83
+
84
+ - name: Slack Notification (not success)
85
+ uses: lazy-actions/slatify@master
86
+ if: "! success()"
87
+ continue-on-error: true
88
+ with:
89
+ job_name: ${{ format('*build* ({0})', matrix.ruby) }}
90
+ type: ${{ job.status }}
91
+ icon_emoji: ":octocat:"
92
+ url: ${{ secrets.SLACK_WEBHOOK }}
93
+ token: ${{ secrets.GITHUB_TOKEN }}
94
+
95
+ notify:
96
+ needs:
97
+ - test
98
+
99
+ runs-on: ubuntu-latest
100
+
101
+ steps:
102
+ - name: Slack Notification (success)
103
+ uses: lazy-actions/slatify@master
104
+ if: always()
105
+ continue-on-error: true
106
+ with:
107
+ job_name: '*build*'
108
+ type: ${{ job.status }}
109
+ icon_emoji: ":octocat:"
110
+ url: ${{ secrets.SLACK_WEBHOOK }}
111
+ token: ${{ secrets.GITHUB_TOKEN }}
data/CHANGELOG.md ADDED
@@ -0,0 +1,23 @@
1
+ ## Unreleased
2
+ [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.2.1...master)
3
+
4
+ ## v0.2.1
5
+ [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.2.0...v0.2.1)
6
+
7
+ * Enable MFA requirement for gem releasing
8
+ * https://github.com/sue445/tweet_sanitizer/pull/32
9
+
10
+ ## v0.2.0
11
+ [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.1.1...v0.2.0)
12
+
13
+ * Add sanitize options
14
+ * https://github.com/sue445/tweet_sanitizer/pull/12
15
+
16
+ ## v0.1.1
17
+ [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.1.0...v0.1.1)
18
+
19
+ * Use original tweet instead of RT
20
+ * https://github.com/sue445/tweet_sanitizer/pull/10
21
+
22
+ ## v0.1.0
23
+ * first release
data/Gemfile CHANGED
@@ -4,3 +4,10 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in tweet_sanitizer.gemspec
6
6
  gemspec
7
+
8
+ if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.5.0")
9
+ group :test do
10
+ # NOTE: unparser v0.3.0+ requires Ruby 2.5+
11
+ gem "unparser", "< 0.3.0"
12
+ end
13
+ end
data/README.md CHANGED
@@ -1,8 +1,30 @@
1
1
  # TweetSanitizer
2
+ [![Gem Version](https://badge.fury.io/rb/tweet_sanitizer.svg)](https://badge.fury.io/rb/tweet_sanitizer)
3
+ [![Build Status](https://github.com/sue445/tweet_sanitizer/workflows/test/badge.svg?branch=master)](https://github.com/sue445/tweet_sanitizer/actions?query=workflow%3Atest)
4
+ [![Code Climate](https://codeclimate.com/github/sue445/tweet_sanitizer.png)](https://codeclimate.com/github/sue445/tweet_sanitizer)
5
+ [![Coverage Status](https://coveralls.io/repos/github/sue445/tweet_sanitizer/badge.svg?branch=master)](https://coveralls.io/github/sue445/tweet_sanitizer?branch=master)
2
6
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/tweet_sanitizer`. To experiment with that code, run `bin/console` for an interactive prompt.
7
+ This is extension of [twitter](https://github.com/sferik/twitter). Sanitize `Twitter::Tweet#text`
4
8
 
5
- TODO: Delete this and the text above, and describe your gem
9
+ ## Example
10
+ ```ruby
11
+ tweet = @client.status("https://twitter.com/github/status/866677968608927744")
12
+ tweet.text
13
+ #=> "Introducing GitHub Marketplace, a new place to browse and buy integrations using your GitHub account.… https://t.co/dK0Tmcmm72"
14
+ ```
15
+
16
+ ```ruby
17
+ using TweetSanitizer::TwitterExtension
18
+
19
+ extended_tweet = @client.status("https://twitter.com/github/status/866677968608927744", tweet_mode: "extended")
20
+ extended_tweet.sanitized_text
21
+ #=> "Introducing GitHub Marketplace, a new place to browse and buy integrations using your GitHub account. https://github.com/blog/2359-introducing-github-marketplace-and-more-tools-to-customize-your-workflow"
22
+ ```
23
+
24
+ ## Features
25
+ * Expand urls in `Twitter::Tweet#text` (e.g. `t.co` url -> original url)
26
+ * Remove media urls in `Twitter::Tweet#text`
27
+ * Unescape special html characters in `Twitter::Tweet#text` (e.g. `(&gt; &lt;)` -> `(> <)`)
6
28
 
7
29
  ## Installation
8
30
 
@@ -21,8 +43,62 @@ Or install it yourself as:
21
43
  $ gem install tweet_sanitizer
22
44
 
23
45
  ## Usage
46
+ ### Case 1. Use `TweetSanitizer::TwitterExtension` and `Twitter::Tweet#sanitized_text` (Recommended)
47
+ ```ruby
48
+ using TweetSanitizer::TwitterExtension
49
+
50
+ extended_tweet = @client.status("https://twitter.com/github/status/866677968608927744", tweet_mode: "extended")
51
+ extended_tweet.sanitized_text
52
+ ```
53
+
54
+ ### Case 2. Use `TweetSanitizer.sanitize`
55
+ ```ruby
56
+ extended_tweet = @client.status("https://twitter.com/github/status/866677968608927744", tweet_mode: "extended")
57
+ TweetSanitizer.sanitize(extended_tweet)
58
+ ```
59
+
60
+ ### :warning: Note
61
+ When you get `Twitter::Tweet` instance, pass `tweet_mode: "extended"` option to methods. (e.g. `Twitter::REST::Client#status`, `Twitter::REST::Client#search`)
24
62
 
25
- TODO: Write usage instructions here
63
+ Because `full_text` attribute is returned when **only** `tweet_mode=extended` is passed to Twitter API
64
+
65
+ See following.
66
+
67
+ https://dev.twitter.com/overview/api/upcoming-changes-to-tweets
68
+
69
+ ### Options
70
+ Same to `Twitter::Tweet#sanitized_text` and `TweetSanitizer.sanitize`. (By default all are `true`)
71
+
72
+ * `use_retweeted_tweet` : Whether use original retweeted tweet if exists
73
+ * `expand_url` : Whether expand url in tweet (e.g. `t.co` url -> original url)
74
+ * `remove_media_url` : Whether remove media url in tweet
75
+ * `unescape` : Whether unescape in tweet (e.g. `(&gt; &lt;)` -> `(> <)`)
76
+
77
+ #### Example
78
+
79
+ ```ruby
80
+ tweet = @client.status("https://twitter.com/github/status/900456141557080065", tweet_mode: "extended")
81
+
82
+ # all are false
83
+ tweet.sanitized_text(use_retweeted_tweet: false, expand_url: false, remove_media_url: false, unescape: false)
84
+ #=> "RT @GitHubEducation: Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://t.co/bNiJnlps5e https://…"
85
+
86
+ # Only use_retweeted_tweet is true
87
+ tweet.sanitized_text(use_retweeted_tweet: true, expand_url: false, remove_media_url: false, unescape: false)
88
+ #=> "Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://t.co/bNiJnlps5e https://t.co/C02G05tUvu"
89
+
90
+ # Only expand_url is true
91
+ tweet.sanitized_text(use_retweeted_tweet: false, expand_url: true, remove_media_url: false, unescape: false)
92
+ #=> "RT @GitHubEducation: Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://github.com/blog/2418-github-classroom-now-supports-deadlines-and-class-rosters https://…"
93
+
94
+ # Only remove_media_url is true
95
+ tweet.sanitized_text(use_retweeted_tweet: false, expand_url: false, remove_media_url: true, unescape: false)
96
+ #=> "RT @GitHubEducation: Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://t.co/bNiJnlps5e https://…"
97
+
98
+ # all are true (default)
99
+ tweet.sanitized_text
100
+ #=> "Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://github.com/blog/2418-github-classroom-now-supports-deadlines-and-class-rosters"
101
+ ```
26
102
 
27
103
  ## Development
28
104
 
@@ -33,13 +109,13 @@ vi .env
33
109
  ```
34
110
 
35
111
  ```ruby
36
- [1] pry(main)> @client.status("https://twitter.com/sue445/status/896748477262082049")
112
+ [1] pry(main)> @client.status("https://twitter.com/sue445/status/896748477262082049", tweet_mode: "extended")
37
113
  => #<Twitter::Tweet id=896748477262082049>
38
114
  ```
39
115
 
40
116
  ## Contributing
41
117
 
42
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/tweet_sanitizer.
118
+ Bug reports and pull requests are welcome on GitHub at https://github.com/sue445/tweet_sanitizer.
43
119
 
44
120
  ## License
45
121
 
data/bin/console CHANGED
@@ -15,4 +15,6 @@ Dotenv.load
15
15
  config.access_token_secret = ENV["TWITTER_ACCESS_TOKEN_SECRET"]
16
16
  end
17
17
 
18
+ using TweetSanitizer::TwitterExtension
19
+
18
20
  Pry.start
@@ -0,0 +1,21 @@
1
+ module TweetSanitizer
2
+ module TwitterExtension
3
+ refine(Twitter::Tweet) do
4
+ # Sanitize tweet
5
+ # @param use_retweeted_tweet [Boolean] Whether use original retweeted tweet if exists
6
+ # @param expand_url [Boolean] Whether expand url in tweet (e.g. `t.co` url -> original url)
7
+ # @param remove_media_url [Boolean] Whether remove media url in tweet
8
+ # @param unescape [Boolean] Whether unescape in tweet (e.g. `(&gt; &lt;)` -> `(> <)`)
9
+ # @return [String]
10
+ def sanitized_text(use_retweeted_tweet: true, expand_url: true, remove_media_url: true, unescape: true)
11
+ TweetSanitizer.sanitize(
12
+ self,
13
+ use_retweeted_tweet: use_retweeted_tweet,
14
+ expand_url: expand_url,
15
+ remove_media_url: remove_media_url,
16
+ unescape: unescape,
17
+ )
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module TweetSanitizer
2
- VERSION = "0.1.0.beta1"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -1,37 +1,56 @@
1
- require "tweet_sanitizer/version"
2
1
  require "twitter"
2
+ require "tweet_sanitizer/version"
3
+ require "tweet_sanitizer/twitter_extension"
3
4
 
4
5
  module TweetSanitizer
6
+ # Sanitize tweet
5
7
  # @param tweet [Twitter:Tweet]
8
+ # @param use_retweeted_tweet [Boolean] Whether use original retweeted tweet if exists
9
+ # @param expand_url [Boolean] Whether expand url in tweet (e.g. `t.co` url -> original url)
10
+ # @param remove_media_url [Boolean] Whether remove media url in tweet
11
+ # @param unescape [Boolean] Whether unescape in tweet (e.g. `(&gt; &lt;)` -> `(> <)`)
6
12
  # @return [String]
7
- def self.sanitize(tweet)
8
- text = expand_urls_text(tweet)
9
- text = remove_media_urls_in_tweet(tweet, text)
10
- text = CGI.unescapeHTML(text)
13
+ def self.sanitize(tweet, use_retweeted_tweet: true, expand_url: true, remove_media_url: true, unescape: true)
14
+ # Original RT status is exists in retweeted_status
15
+ if use_retweeted_tweet && tweet.attrs[:retweeted_status]
16
+ tweet = Twitter::Tweet.new(tweet.attrs[:retweeted_status])
17
+ end
18
+
19
+ text = tweet_full_text(tweet)
20
+ text = expand_urls_text(tweet, text) if expand_url
21
+ text = remove_media_urls_in_tweet(tweet, text) if remove_media_url
22
+ text = CGI.unescapeHTML(text) if unescape
11
23
  text
12
24
  end
13
25
 
14
26
  # @param tweet [Twitter:Tweet]
27
+ # @param text [String]
15
28
  # @return [String]
16
- def self.expand_urls_text(tweet)
17
- text = tweet.text.dup
29
+ def self.expand_urls_text(tweet, text)
18
30
  return text unless tweet.uris?
19
31
 
20
- tweet.uris.reverse.each_with_object(text) do |uri, expanded|
32
+ tweet.uris.reverse.each_with_object(text.dup) do |uri, expanded|
21
33
  pos1 = uri.indices[0]
22
34
  pos2 = uri.indices[1]
23
35
  expanded[pos1, pos2-pos1] = uri.expanded_url
24
36
  end
25
37
  end
26
38
 
39
+ # @param tweet [Twitter:Tweet]
40
+ # @return [String] `full_text` attribute if exist
41
+ def self.tweet_full_text(tweet)
42
+ # NOTE: Twitter::Tweet#full_text doesn't returns full_text attribute
43
+ # https://github.com/sferik/twitter/blob/v6.1.0/lib/twitter/tweet.rb#L37-L44
44
+ tweet.attrs[:full_text] || tweet.text
45
+ end
46
+
27
47
  # @param tweet [Twitter:Tweet]
28
48
  # @param text [String]
29
49
  # @return [String]
30
50
  def self.remove_media_urls_in_tweet(tweet, text)
31
- text = text.dup
32
51
  return text unless tweet.media?
33
52
 
34
- tweet.media.each_with_object(text) do |media, t|
53
+ tweet.media.each_with_object(text.dup) do |media, t|
35
54
  t.gsub!(media.url, "")
36
55
  t.strip!
37
56
  end
@@ -14,6 +14,13 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/sue445/tweet_sanitizer"
15
15
  spec.license = "MIT"
16
16
 
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/CHANGELOG.md"
20
+ spec.metadata["rubygems_mfa_required"] = "true"
21
+
22
+ spec.required_ruby_version = ">= 2.1.0"
23
+
17
24
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
25
  f.match(%r{^(test|spec|features)/})
19
26
  end
@@ -23,10 +30,13 @@ Gem::Specification.new do |spec|
23
30
 
24
31
  spec.add_dependency "twitter"
25
32
 
26
- spec.add_development_dependency "bundler", "~> 1.15"
33
+ spec.add_development_dependency "bundler", ">= 1.15"
34
+ spec.add_development_dependency "coveralls"
27
35
  spec.add_development_dependency "dotenv"
28
36
  spec.add_development_dependency "pry-byebug"
29
- spec.add_development_dependency "rake", "~> 10.0"
37
+ spec.add_development_dependency "rake", ">= 10.0"
30
38
  spec.add_development_dependency "rspec", "~> 3.0"
31
39
  spec.add_development_dependency "rspec-parameterized"
40
+ spec.add_development_dependency "simplecov"
41
+ spec.add_development_dependency "unparser", ">= 0.4.5"
32
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tweet_sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.beta1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-13 00:00:00.000000000 Z
11
+ date: 2021-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: twitter
@@ -28,16 +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
33
  version: '1.15'
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
40
  version: '1.15'
41
+ - !ruby/object:Gem::Dependency
42
+ name: coveralls
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: dotenv
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,14 +84,14 @@ dependencies:
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: '10.0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '10.0'
83
97
  - !ruby/object:Gem::Dependency
@@ -108,6 +122,34 @@ dependencies:
108
122
  - - ">="
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: unparser
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 0.4.5
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 0.4.5
111
153
  description: sanitize tweet
112
154
  email:
113
155
  - sue445@sue445.net
@@ -115,10 +157,12 @@ executables: []
115
157
  extensions: []
116
158
  extra_rdoc_files: []
117
159
  files:
160
+ - ".coveralls.yml"
118
161
  - ".env.example"
162
+ - ".github/workflows/test.yml"
119
163
  - ".gitignore"
120
164
  - ".rspec"
121
- - ".travis.yml"
165
+ - CHANGELOG.md
122
166
  - Gemfile
123
167
  - LICENSE.txt
124
168
  - README.md
@@ -126,13 +170,18 @@ files:
126
170
  - bin/console
127
171
  - bin/setup
128
172
  - lib/tweet_sanitizer.rb
173
+ - lib/tweet_sanitizer/twitter_extension.rb
129
174
  - lib/tweet_sanitizer/version.rb
130
175
  - tweet_sanitizer.gemspec
131
176
  homepage: https://github.com/sue445/tweet_sanitizer
132
177
  licenses:
133
178
  - MIT
134
- metadata: {}
135
- post_install_message:
179
+ metadata:
180
+ homepage_uri: https://github.com/sue445/tweet_sanitizer
181
+ source_code_uri: https://github.com/sue445/tweet_sanitizer
182
+ changelog_uri: https://github.com/sue445/tweet_sanitizer/blob/master/CHANGELOG.md
183
+ rubygems_mfa_required: 'true'
184
+ post_install_message:
136
185
  rdoc_options: []
137
186
  require_paths:
138
187
  - lib
@@ -140,16 +189,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
189
  requirements:
141
190
  - - ">="
142
191
  - !ruby/object:Gem::Version
143
- version: '0'
192
+ version: 2.1.0
144
193
  required_rubygems_version: !ruby/object:Gem::Requirement
145
194
  requirements:
146
- - - ">"
195
+ - - ">="
147
196
  - !ruby/object:Gem::Version
148
- version: 1.3.1
197
+ version: '0'
149
198
  requirements: []
150
- rubyforge_project:
151
- rubygems_version: 2.6.11
152
- signing_key:
199
+ rubygems_version: 3.2.22
200
+ signing_key:
153
201
  specification_version: 4
154
202
  summary: sanitize tweet
155
203
  test_files: []
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.1
5
- before_install: gem install bundler -v 1.15.3