still_active 0.1.0 → 0.1.1

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: a57769b549262b76ee15993dd903d607864d5a1cb4cefec348c4a0d2f2892b44
4
- data.tar.gz: 11212c25c8c4897b8883401e9a6d21f5c76f3275c79d76f48c36dc47c09c2037
3
+ metadata.gz: c6332676d54a35bce460f39cc99515b165207f92352efdc8026abef42fadd22d
4
+ data.tar.gz: 6d69c16159ff9c6871d3f034ddbf513d2e6c637e20a15c064e2bc5d924c7dbae
5
5
  SHA512:
6
- metadata.gz: cec9d044f6e894659ae8bb30883fc98e6829d31a87612b0fc8660e2e56165deaeae606e1927fa7e60c6fc51ccd068998444543f9d89f50b2f910f4cc4410dc93
7
- data.tar.gz: 5d082234f0e9491b8498b93dd3134546342297869218fe8e9b6d1ca913226aca5e00ad4b6299015f8f11747f59956153804de4b19730107b73a0b08d51e1dc8a
6
+ metadata.gz: 89a63a961f267ec2abbd2333a21074c0789543bd6d993ee0c9c258b596fcb92eedfa4219e4e565a2c786ab32ddb752af01bada0a1a1469ae78eb2a683803a7e3
7
+ data.tar.gz: 3ce7e34a29ea567b5df09ab06d102278d1c4243409d15ef7d5da50ffdb443da1a4529dabc99577b75f29c50b0f7fc83db3bb03b32555107d991057e77a65c06f
data/.rspec CHANGED
@@ -1,3 +1,7 @@
1
1
  --format documentation
2
2
  --color
3
+ --require dead_end
3
4
  --require spec_helper
5
+
6
+ --require debug
7
+ --require faker
data/Gemfile CHANGED
@@ -8,3 +8,5 @@ gemspec
8
8
  gem "rake", "~> 13.0"
9
9
 
10
10
  gem "rspec", "~> 3.0"
11
+
12
+ gem "dead_end"
data/Gemfile.lock CHANGED
@@ -1,14 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- still_active (0.1.0)
4
+ still_active (0.1.1)
5
+ activesupport
5
6
  async
7
+ async-http
6
8
  gems
7
9
  github_api
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
11
13
  specs:
14
+ activesupport (6.1.4.1)
15
+ concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ i18n (>= 1.6, < 2)
17
+ minitest (>= 5.1)
18
+ tzinfo (~> 2.0)
19
+ zeitwerk (~> 2.3)
12
20
  addressable (2.8.0)
13
21
  public_suffix (>= 2.0.2, < 5.0)
14
22
  ast (2.4.2)
@@ -16,14 +24,29 @@ GEM
16
24
  console (~> 1.10)
17
25
  nio4r (~> 2.3)
18
26
  timers (~> 4.1)
27
+ async-http (0.56.5)
28
+ async (>= 1.25)
29
+ async-io (>= 1.28)
30
+ async-pool (>= 0.2)
31
+ protocol-http (~> 0.22.0)
32
+ protocol-http1 (~> 0.14.0)
33
+ protocol-http2 (~> 0.14.0)
34
+ async-io (1.32.2)
35
+ async
36
+ async-pool (0.3.9)
37
+ async (>= 1.25)
38
+ concurrent-ruby (1.1.9)
19
39
  console (1.13.1)
20
40
  fiber-local
41
+ dead_end (3.0.1)
21
42
  debug (1.3.4)
22
43
  irb (>= 1.3.6)
23
44
  reline (>= 0.2.7)
24
45
  descendants_tracker (0.0.4)
25
46
  thread_safe (~> 0.3, >= 0.3.1)
26
47
  diff-lcs (1.4.4)
48
+ faker (2.19.0)
49
+ i18n (>= 1.6, < 2)
27
50
  faraday (1.8.0)
28
51
  faraday-em_http (~> 1.0)
29
52
  faraday-em_synchrony (~> 1.0)
@@ -52,10 +75,13 @@ GEM
52
75
  hashie (~> 3.5, >= 3.5.2)
53
76
  oauth2 (~> 1.0)
54
77
  hashie (3.6.0)
78
+ i18n (1.8.11)
79
+ concurrent-ruby (~> 1.0)
55
80
  io-console (0.5.9)
56
81
  irb (1.3.7)
57
82
  reline (>= 0.2.7)
58
83
  jwt (2.3.0)
84
+ minitest (5.14.4)
59
85
  multi_json (1.15.0)
60
86
  multi_xml (0.6.0)
61
87
  multipart-post (2.1.1)
@@ -69,6 +95,13 @@ GEM
69
95
  parallel (1.21.0)
70
96
  parser (3.0.2.0)
71
97
  ast (~> 2.4.1)
98
+ protocol-hpack (1.4.2)
99
+ protocol-http (0.22.5)
100
+ protocol-http1 (0.14.2)
101
+ protocol-http (~> 0.22)
102
+ protocol-http2 (0.14.2)
103
+ protocol-hpack (~> 1.4)
104
+ protocol-http (~> 0.18)
72
105
  public_suffix (4.0.6)
73
106
  rack (2.2.3)
74
107
  rainbow (3.0.0)
@@ -107,13 +140,18 @@ GEM
107
140
  ruby2_keywords (0.0.5)
108
141
  thread_safe (0.3.6)
109
142
  timers (4.3.3)
143
+ tzinfo (2.0.4)
144
+ concurrent-ruby (~> 1.0)
110
145
  unicode-display_width (2.1.0)
146
+ zeitwerk (2.5.1)
111
147
 
112
148
  PLATFORMS
113
149
  x86_64-darwin-21
114
150
 
115
151
  DEPENDENCIES
152
+ dead_end
116
153
  debug
154
+ faker
117
155
  rake (~> 13.0)
118
156
  rspec (~> 3.0)
119
157
  rubocop
@@ -121,4 +159,4 @@ DEPENDENCIES
121
159
  still_active!
122
160
 
123
161
  BUNDLED WITH
124
- 2.2.22
162
+ 2.2.30
data/README.md CHANGED
@@ -23,7 +23,6 @@ Usage: still_active [options]
23
23
  --json Prints output in JSON format
24
24
  --github-oauth-token=TOKEN GitHub OAuth token to make API calls
25
25
  --safe-range-end=YEARS maximum number of years since last activity to be considered safe
26
- --warning-range-start=YEARS minimum number of years since last activity to be considered worrying
27
26
  --warning-range-end=YEARS maximum number of years since last activity to be considered worrying
28
27
  --critical-warning-emoji=EMOJI
29
28
  --futurist-emoji=EMOJI
@@ -55,12 +54,14 @@ Outputs:
55
54
 
56
55
  | gem activity old? | up to date? | name | version used | release date | latest version | release date | latest pre-release version | release date | last commit date |
57
56
  | ----------------- | ----------- | -------------------------------------------------------------- | ----------------------------------------------------------------- | ------------ | ----------------------------------------------------------------- | ------------ | -------------------------------------------------------------------- | ------------ | ------------------------------------------------------ |
57
+ | | ✅ | [dead_end](https://github.com/zombocom/dead_end) | [3.0.1](https://rubygems.org/gems/dead_end/versions/3.0.1) | 2021/11 | [3.0.1](https://rubygems.org/gems/dead_end/versions/3.0.1) | 2021/11 | ❓ | ❓ | [2021/11](https://github.com/zombocom/dead_end) |
58
58
  | | ✅ | [debug](https://github.com/ruby/debug) | [1.3.4](https://rubygems.org/gems/debug/versions/1.3.4) | 2021/10 | [1.3.4](https://rubygems.org/gems/debug/versions/1.3.4) | 2021/10 | [1.0.0.rc2](https://rubygems.org/gems/debug/versions/1.0.0.rc2) | 2021/09 | [2021/11](https://github.com/ruby/debug) |
59
+ | | ✅ | [faker](https://github.com/faker-ruby/faker) | [2.19.0](https://rubygems.org/gems/faker/versions/2.19.0) | 2021/08 | [2.19.0](https://rubygems.org/gems/faker/versions/2.19.0) | 2021/08 | ❓ | ❓ | [2021/11](https://github.com/faker-ruby/faker) |
59
60
  | | ✅ | [rake](https://github.com/ruby/rake) | [13.0.6](https://rubygems.org/gems/rake/versions/13.0.6) | 2021/07 | [13.0.6](https://rubygems.org/gems/rake/versions/13.0.6) | 2021/07 | [13.0.0.pre.1](https://rubygems.org/gems/rake/versions/13.0.0.pre.1) | 2019/09 | [2021/07](https://github.com/ruby/rake) |
60
- | ⚠️ | ✅ | [rspec](https://github.com/rspec/rspec) | [3.10.0](https://rubygems.org/gems/rspec/versions/3.10.0) | 2020/10 | [3.10.0](https://rubygems.org/gems/rspec/versions/3.10.0) | 2020/10 | [3.6.0.beta2](https://rubygems.org/gems/rspec/versions/3.6.0.beta2) | 2016/12 | [2021/10](https://github.com/rspec/rspec) |
61
+ | | ✅ | [rspec](https://github.com/rspec/rspec) | [3.10.0](https://rubygems.org/gems/rspec/versions/3.10.0) | 2020/10 | [3.10.0](https://rubygems.org/gems/rspec/versions/3.10.0) | 2020/10 | [3.6.0.beta2](https://rubygems.org/gems/rspec/versions/3.6.0.beta2) | 2016/12 | [2021/10](https://github.com/rspec/rspec) |
61
62
  | | ✅ | [rubocop](https://github.com/rubocop/rubocop) | [1.22.3](https://rubygems.org/gems/rubocop/versions/1.22.3) | 2021/10 | [1.22.3](https://rubygems.org/gems/rubocop/versions/1.22.3) | 2021/10 | ❓ | ❓ | [2021/11](https://github.com/rubocop/rubocop) |
62
63
  | | ✅ | [rubocop-shopify](https://github.com/Shopify/ruby-style-guide) | [2.3.0](https://rubygems.org/gems/rubocop-shopify/versions/2.3.0) | 2021/10 | [2.3.0](https://rubygems.org/gems/rubocop-shopify/versions/2.3.0) | 2021/10 | ❓ | ❓ | [2021/11](https://github.com/Shopify/ruby-style-guide) |
63
- || | still_active | 0.1.0 | | | | ❓ | ❓ | |
64
+ | | | [still_active](https://github.com/SeanLF/still_active) | [0.1.0](https://rubygems.org/gems/still_active/versions/0.1.0) | 2021/11 | [0.1.0](https://rubygems.org/gems/still_active/versions/0.1.0) | 2021/11 | ❓ | ❓ | [2021/11](https://github.com/SeanLF/still_active) |
64
65
 
65
66
  ### Configuration options
66
67
 
@@ -71,9 +72,8 @@ Outputs:
71
72
  - `success_emoji` ✅
72
73
  - `unsure_emoji` ❓
73
74
  - `warning_emoji` ⚠️
74
- - `safe_range_end` 1 (safe range is by default [0..1])
75
- - `warning_range_start` 2 (warning range is by default [2..3])
76
- - `warning_range_end` 3
75
+ - `safe_range_end` 1 (considered safe if last activity is at most 1 year ago)
76
+ - `warning_range_end` 3 (warns if last activity is between 1 and 3 years ago)
77
77
 
78
78
  ## Development
79
79
 
@@ -5,8 +5,8 @@ module StillActive
5
5
  extend self
6
6
 
7
7
  def gemfile_dependencies(gemfile_path: StillActive.config.gemfile_path)
8
- Bundler::SharedHelpers.set_env("BUNDLE_GEMFILE", File.expand_path(gemfile_path))
9
- gemfile_gems = Bundler.definition.dependencies.map(&:name)
8
+ ::Bundler::SharedHelpers.set_env("BUNDLE_GEMFILE", File.expand_path(gemfile_path))
9
+ gemfile_gems = ::Bundler.definition.dependencies.map(&:name)
10
10
  Bundler
11
11
  .definition
12
12
  .locked_gems
@@ -1,35 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/core_ext/integer/time"
4
+
3
5
  module StillActive
4
6
  module EmojiHelper
5
7
  extend self
6
8
  def inactive_gem_emoji(result_hash)
7
- most_recent_activity = [result_hash.dig(:version_used_release_date), result_hash.dig(:latest_version_release_date),
9
+ most_recent_activity = [result_hash.dig(:last_commit_date), result_hash.dig(:latest_version_release_date),
8
10
  result_hash.dig(:latest_pre_release_version_release_date),].compact.sort.last
9
- return "❓" if most_recent_activity.nil?
11
+ return StillActive.config.unsure_emoji if most_recent_activity.nil?
10
12
 
11
- case ((Time.now - most_recent_activity) / ONE_YEAR_IN_SECONDS).ceil
12
- when 0..1
13
+ case most_recent_activity
14
+ when (StillActive.config.safe_range_end.years.ago)..(Time.now)
13
15
  ""
14
- when 2..3
15
- "\u26A0\uFE0F"
16
+ when (StillActive.config.warning_range_end.years.ago)..(StillActive.config.safe_range_end.years.ago)
17
+ StillActive.config.warning_emoji
16
18
  else
17
- "\u{1F6A9}"
19
+ StillActive.config.critical_warning_emoji
18
20
  end
19
21
  end
20
22
 
21
23
  def using_latest_emoji(using_last_release:, using_last_pre_release:)
22
24
  if using_last_release.nil? && using_last_pre_release.nil?
23
- "❓"
24
- elsif using_last_release
25
- "✅"
25
+ StillActive.config.unsure_emoji
26
26
  elsif using_last_pre_release
27
- "🔮"
27
+ StillActive.config.futurist_emoji
28
+ elsif using_last_release
29
+ StillActive.config.success_emoji
28
30
  else
29
- "⚠️"
31
+ StillActive.config.warning_emoji
30
32
  end
31
33
  end
32
-
33
- ONE_YEAR_IN_SECONDS = 3.154e+7
34
34
  end
35
35
  end
@@ -36,8 +36,8 @@ module StillActive
36
36
  last_commit_date = data.dig(:last_commit_date)
37
37
  last_commit_url = repository_url
38
38
 
39
- inactive_repository_emoji = data.dig(:up_to_date_emoji)
40
- using_latest_version_emoji = data.dig(:last_activity_worrying_emoji)
39
+ inactive_repository_emoji = data.dig(:last_activity_worrying_emoji)
40
+ using_latest_version_emoji = data.dig(:up_to_date_emoji)
41
41
 
42
42
  formatted_name = markdown_url(text: gem_name, url: repository_url)
43
43
 
@@ -3,10 +3,12 @@
3
3
  module StillActive
4
4
  module VersionHelper
5
5
  def find_version(versions:, version_string: nil, pre_release: false)
6
- if !version_string.nil?
7
- versions.find { |v| v["number"] == version_string }
6
+ if version_string && pre_release
7
+ versions&.find { |v| v["number"] == version_string && v["prerelease"] == pre_release }
8
+ elsif !version_string.nil?
9
+ versions&.find { |v| v["number"] == version_string }
8
10
  else
9
- versions.find { |v| v["prerelease"] == pre_release }
11
+ versions&.find { |v| v["prerelease"] == pre_release }
10
12
  end
11
13
  end
12
14
 
@@ -28,8 +28,8 @@ module StillActive
28
28
  puts MarkdownHelper.markdown_table_header_line
29
29
  result.keys.sort.each do |name|
30
30
  result[name].merge!({
31
- up_to_date_emoji: EmojiHelper.inactive_gem_emoji(result[name]),
32
- last_activity_worrying_emoji: EmojiHelper.using_latest_emoji(
31
+ last_activity_worrying_emoji: EmojiHelper.inactive_gem_emoji(result[name]),
32
+ up_to_date_emoji: EmojiHelper.using_latest_emoji(
33
33
  using_last_release: up_to_date?(
34
34
  version_used: result[name].dig(:version_used), latest_version: result[name].dig(:latest_version)
35
35
  ),
@@ -5,8 +5,7 @@ require "bundler"
5
5
  module StillActive
6
6
  class Config
7
7
  attr_accessor :critical_warning_emoji, :futurist_emoji, :gemfile_path, :gems, :github_oauth_token, :output_format,
8
- :safe_range_end, :safe_range_start, :success_emoji, :unsure_emoji, :warning_emoji, :warning_range_end,
9
- :warning_range_start
8
+ :safe_range_end, :success_emoji, :unsure_emoji, :warning_emoji, :warning_range_end
10
9
 
11
10
  def initialize
12
11
  @gemfile_path = Bundler.default_gemfile.to_s
@@ -20,10 +19,7 @@ module StillActive
20
19
  @unsure_emoji = "❓"
21
20
  @warning_emoji = "⚠️"
22
21
 
23
- @safe_range_start = 0
24
22
  @safe_range_end = 1
25
-
26
- @warning_range_start = 2
27
23
  @warning_range_end = 3
28
24
  end
29
25
 
@@ -62,10 +62,6 @@ module StillActive
62
62
  "maximum number of years since last activity to be considered safe") do |value|
63
63
  StillActive.config { |config| config.safe_range_end = value }
64
64
  end
65
- opts.on("--warning-range-start=YEARS", Integer,
66
- "minimum number of years since last activity to be considered worrying") do |value|
67
- StillActive.config { |config| config.warning_range_start = value }
68
- end
69
65
  opts.on("--warning-range-end=YEARS", Integer,
70
66
  "maximum number of years since last activity to be considered worrying") do |value|
71
67
  StillActive.config { |config| config.warning_range_end = value }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StillActive
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
data/still_active.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "Obtain last release, pre-release, and last commit date to determine if a gem is still under active development."
13
13
  spec.homepage = "https://github.com/SeanLF/still_active."
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.4.0"
15
+ spec.required_ruby_version = ">= 2.6.0"
16
16
 
17
17
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'https://mygemserver.com'"
18
18
 
@@ -31,13 +31,16 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  # For more information and examples about making a new gem, checkout our
33
33
  # guide at: https://bundler.io/guides/creating_gem.html
34
+ spec.add_development_dependency("dead_end")
34
35
  spec.add_development_dependency("debug")
36
+ spec.add_development_dependency("faker")
35
37
  spec.add_development_dependency("rubocop")
36
38
  spec.add_development_dependency("rubocop-shopify")
37
39
 
40
+ spec.add_runtime_dependency("activesupport")
38
41
  spec.add_runtime_dependency("async")
39
42
  # spec.add_runtime_dependency("cli-ui")
40
- # spec.add_runtime_dependency("async-http")
43
+ spec.add_runtime_dependency("async-http")
41
44
  spec.add_runtime_dependency("gems")
42
45
  spec.add_runtime_dependency("github_api")
43
46
  # spec.add_runtime_dependency("gitlab")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: still_active
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Floyd
@@ -10,6 +10,20 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dead_end
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: debug
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +38,20 @@ dependencies:
24
38
  - - ">="
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: faker
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'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rubocop
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +80,20 @@ dependencies:
52
80
  - - ">="
53
81
  - !ruby/object:Gem::Version
54
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: activesupport
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: async
57
99
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +108,20 @@ dependencies:
66
108
  - - ">="
67
109
  - !ruby/object:Gem::Version
68
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: async-http
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
69
125
  - !ruby/object:Gem::Dependency
70
126
  name: gems
71
127
  requirement: !ruby/object:Gem::Requirement
@@ -144,7 +200,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
200
  requirements:
145
201
  - - ">="
146
202
  - !ruby/object:Gem::Version
147
- version: 2.4.0
203
+ version: 2.6.0
148
204
  required_rubygems_version: !ruby/object:Gem::Requirement
149
205
  requirements:
150
206
  - - ">="