rack-revision 1.1.0 → 1.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: 2284692d25fe68e54b0842fbeed953ea7727cebe427bc1027ac18ca2329b2ff7
4
- data.tar.gz: 40319f9c5ca70b8edf3c610846575e3a5b83862bcadccbbc87a1d175a08d8f6c
3
+ metadata.gz: 62a12f243a22cd037fa6506a704a1d94cfadd93327412558258ce327560a0b52
4
+ data.tar.gz: 3aae6d6d5b3e0c0ab0881c1926e5d4c33e1f81f38e54c9c58ee18da27b92f65c
5
5
  SHA512:
6
- metadata.gz: f2346818a69159a398f0be3d81104841f43b183b7609ba0a9c21f6bb7b3a070f40ad7c85bfda185388c81a4a4313247c8bc568e68253e20ff34ca8b20a8deef1
7
- data.tar.gz: 6aff733c7f9fdca284c41af3545ee8d51997972afa018bba66441e79169bb37b580cc27e4d9928dbf15ba6636110973d0f003839b2cf9c9d84722b930ebd342a
6
+ metadata.gz: 36f785c3e545dd733c9ba45bd3b050df65c1fd90065e4f047274820969655351a5e6425d9582426d092ddafb0659fbcd90ff6b44aafb5def60a995599d306b52
7
+ data.tar.gz: 4bc2a640b44ac615434a18bafe55236fc2327f97c845600420ca4afebd03d2cf6144a69fb0b2626a5daf99459a228564957aca0288aa7e39fa752533a7a14e62
@@ -0,0 +1,20 @@
1
+ name: Build
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: ['2.6', '2.7', '3.0', '3.1']
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - name: Set up Ruby
14
+ uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: ${{ matrix.ruby }}
17
+ - name: Install dependencies
18
+ run: bundle install
19
+ - name: Run tests
20
+ run: bundle exec rake
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2012-2020 Dan Sosedoff, dan.sosedoff@gmail.com
3
+ Copyright (c) 2012-2022 Dan Sosedoff, dan.sosedoff@gmail.com
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Rack::Revision
2
2
 
3
- Rack::Revision is a quick drop-in component to enable code revision tracking.
3
+ Rack::Revision is a quick drop-in component to enable code revision tracking.
4
4
  It adds `X-Revision` header with the code revision from capistrano's REVISION file.
5
5
 
6
- [![Build Status](https://img.shields.io/travis/sosedoff/rack-revision.svg)](https://travis-ci.org/sosedoff/rack-revision)
6
+ [![Build](https://github.com/sosedoff/rack-revision/actions/workflows/test.yml/badge.svg)](https://github.com/sosedoff/rack-revision/actions/workflows/test.yml)
7
7
  [![Gem Version](https://img.shields.io/gem/v/rack-revision.svg)](http://badge.fury.io/rb/rack-revision)
8
8
 
9
9
  ## Installation
@@ -23,7 +23,7 @@ bundle install
23
23
  ## Usage
24
24
 
25
25
  Rack::Revision is implemented as a piece of Rack middleware and can be used with
26
- any Rack-based application. If you have a `config.ru` rackup file you can
26
+ any Rack-based application. If you have a `config.ru` rackup file you can
27
27
  drop the following snippet (for sinatra app):
28
28
 
29
29
  ```ruby
@@ -44,11 +44,11 @@ run Sinatra::Application
44
44
 
45
45
  Available options:
46
46
 
47
- - `:header` - Changes revision header name. Default: `X-Revision`
47
+ - `:header` - Changes revision header name. Default: `X-Revision`
48
48
  - `:filename` - Changes the revision filename. Default: `REVISION`
49
49
  - `:rack_env` - Changes Rack environment key for revision. Default: `env['rack.app_revision']`
50
- - `:env_var` - Sets revision value from an environment variable. Default: `RACK_REVISION`
51
- - `:default` - Sets revision value if env var or a file with revision does not exist. Default: `UNDEFINED`
50
+ - `:env_var` - Sets revision value from an environment variable. Default: `RACK_REVISION`
51
+ - `:default` - Sets revision value if env var or a file with revision does not exist. Default: `UNDEFINED`
52
52
 
53
53
  ## Example
54
54
 
@@ -86,4 +86,4 @@ rake test
86
86
 
87
87
  The MIT License
88
88
 
89
- Copyright (c) 2012-2020 Dan Sosedoff <dan.sosedoff@gmail.com>
89
+ Copyright (c) 2012-2022 Dan Sosedoff <dan.sosedoff@gmail.com>
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class Revision
3
- VERSION = "1.1.0"
3
+ VERSION = "1.1.1"
4
4
  end
5
- end
5
+ end
data/lib/rack/revision.rb CHANGED
@@ -9,8 +9,9 @@ module Rack
9
9
  initialize_options(options)
10
10
 
11
11
  @app = app
12
+ @dir = Dir.pwd
12
13
  end
13
-
14
+
14
15
  def call(env)
15
16
  if @options[:rack_env]
16
17
  env[@options[:rack_env]] = revision
@@ -28,19 +29,19 @@ module Rack
28
29
  def reset_revision
29
30
  @@revision = nil
30
31
  end
31
-
32
+
32
33
  protected
33
-
34
+
34
35
  def revision
35
36
  @@revision ||= (fetch_from_env || fetch_from_file || fetch_default)
36
37
  end
37
-
38
+
38
39
  def fetch_from_env
39
40
  ENV[@options[:env_var]]
40
41
  end
41
42
 
42
43
  def fetch_from_file
43
- if ::File.exists?(detected_filename)
44
+ if ::File.exist?(detected_filename)
44
45
  ::File.read(detected_filename).strip
45
46
  end
46
47
  end
@@ -50,7 +51,7 @@ module Rack
50
51
  end
51
52
 
52
53
  def detected_filename
53
- @file ||= (@options[:filename] =~ /\A\// ? @options[:filename] : File.join(Dir.pwd, @options[:filename]))
54
+ @file ||= (@options[:filename] =~ /\A\// ? @options[:filename] : File.join(@dir, @options[:filename]))
54
55
  end
55
56
 
56
57
  def initialize_options(options)
@@ -102,6 +102,23 @@ class TestRevision < Test::Unit::TestCase
102
102
  assert_equal "qwe123", last_response.headers["X-Revision"]
103
103
  end
104
104
 
105
+ def test_dir_does_not_exist
106
+ File.write("./test/tmp/REVISION", "example")
107
+
108
+ Dir.chdir("./test/tmp") do
109
+ self.app.reset_revision
110
+
111
+ get app_url
112
+ assert_equal "example", last_response.headers["X-Revision"]
113
+
114
+ FileUtils.rm_rf("../tmp")
115
+ self.app.reset_revision
116
+
117
+ get app_url
118
+ assert_equal "UNDEFINED", last_response.headers["X-Revision"]
119
+ end
120
+ end
121
+
105
122
  def test_env_is_present
106
123
  self.app.reset_revision
107
124
  get app_url
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-revision
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Sosedoff
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-24 00:00:00.000000000 Z
11
+ date: 2022-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -88,8 +88,8 @@ executables: []
88
88
  extensions: []
89
89
  extra_rdoc_files: []
90
90
  files:
91
+ - ".github/workflows/test.yml"
91
92
  - ".gitignore"
92
- - ".travis.yml"
93
93
  - Gemfile
94
94
  - LICENSE
95
95
  - README.md
@@ -101,7 +101,7 @@ files:
101
101
  homepage: http://github.com/sosedoff/rack-revision
102
102
  licenses: []
103
103
  metadata: {}
104
- post_install_message:
104
+ post_install_message:
105
105
  rdoc_options: []
106
106
  require_paths:
107
107
  - lib
@@ -116,8 +116,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  requirements: []
119
- rubygems_version: 3.0.6
120
- signing_key:
119
+ rubygems_version: 3.3.9
120
+ signing_key:
121
121
  specification_version: 4
122
122
  summary: Code ravision rack middleware
123
123
  test_files:
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3
4
- - 2.4
5
- - 2.5
6
- - 2.6
7
- - 2.7