still_active 0.1.0 → 0.1.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
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
  - - ">="