codeword 0.1.1 → 0.2.0.beta1

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: 0df77c174f33909ed5e7f6b4168485dea5e4888098f2ca4c41c576b60b4da44a
4
- data.tar.gz: f0d1971d5214427371119fac86d8c63e0e40b76a23682a3cd766029e7e275460
3
+ metadata.gz: 20a9e39af2e13a2e11bbc41e27257d98c9c2e35b1a4b63580be50456aec8b8b7
4
+ data.tar.gz: ae29b06372954d34efb4aec5a71d76fda264ab346f8d2c1ca63935991ead2c77
5
5
  SHA512:
6
- metadata.gz: b833d1f568e8c6e1b138b42ec0b80c2645c4def43e22b3b362fa0078d285f50a0c84efe571bd213fc81e87a666f0d0dc15a6c9a69e0e94360ec85f033b47a94b
7
- data.tar.gz: 892591cc8b6feecccee50e0b6e084fb01f3f991f2eb21d23cef9f20a3177d517854964911c9eda0b79f7196cc76573732e01c39ee372719544a9030f5c0c11cc
6
+ metadata.gz: 6466641140f9f984745286ccd9d172aaf98f5cedbbbea2b2788f87c8ca72ee1596eabcbba4c1f8507c748290c8febe6c8a879b7902a27e57944060aee0023815
7
+ data.tar.gz: f6d0701f7c961ec8274356aa4c2b38557ea18ea205ef509b0c69604e6c21ce46c67ea64f341f33e613a7eea2c848e9853fe4f852ea2cd58656d3ef07cc245ba6
data/.gitignore CHANGED
@@ -7,3 +7,6 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  /Gemfile.lock
10
+
11
+ # macOS
12
+ .DS_Store
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.0.3
1
+ 3.3.4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  ## [Unreleased]
2
2
 
3
+ - BREAKING: Deprecate Rails secrets in favor of Rails credentials
4
+ - BREAKING: Drop support for Rails < 6.0
5
+
3
6
  ## [0.1.1] - 2021-12-17
4
7
 
5
8
  - Fix unlocks
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Codeword
2
2
 
3
- A simple gem to more elegantly place a staging server or other in-progress rails application behind a basic codeword. It’s easy to implement, share with clients/collaborators, and more beautiful than the typical password-protection sheet. This is a fork of [lockup](https://github.com/interdiscipline/lockup).
3
+ A simple gem to more elegantly place a staging server or other in-progress Ruby on Rails application behind a basic codeword. It’s easy to implement, share with clients/collaborators, and more beautiful than the typical password-protection sheet.
4
+
5
+ ![Screenshot](./screenshot.png)
4
6
 
5
7
  ## Installation
6
8
 
@@ -32,14 +34,14 @@ If you think you might need a hint:
32
34
  ENV['CODEWORD_HINT'] = 'Something that you do not tell everyone.'
33
35
  ```
34
36
 
35
- If you’re using Rails >= 4.1 or Rails >= 5.2, you can add your Codeword Codeword via Rails Secrets or Rails Credentials functionality in your `secrets.yml` or `credentials.yml.enc` file, respectively:
37
+ You can add your codeword via Rails credentials in your `credentials.yml.enc` file (`$ bin/rails credentials:edit`):
36
38
 
37
39
  ```yml
38
40
  codeword: 'love'
39
41
  codeword_hint: 'Pepé Le Pew'
40
42
  ```
41
43
 
42
- Alternately, Rails Credentials in >= 5.2 may be organized under the `codeword` namespace:
44
+ Alternately, credentials in Rails >= 5.2 may be organized under the `codeword` namespace:
43
45
 
44
46
  ```yml
45
47
  codeword:
@@ -47,13 +49,6 @@ codeword:
47
49
  hint: 'Pepé Le Pew'
48
50
  ```
49
51
 
50
- If you’re using [Figaro](https://github.com/laserlemon/figaro), set your Codeword codeword and hint (optional) in your application.yml file:
51
-
52
- ```yml
53
- codeword: 'love'
54
- codeword_hint: 'Pepé Le Pew'
55
- ```
56
-
57
52
  **Codewords are not case-sensitive, by design. Keep it simple.**
58
53
 
59
54
  ## Advanced Usage
@@ -100,10 +95,6 @@ If you would like to change the content or design of the codeword page, you can
100
95
 
101
96
  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 the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
102
97
 
103
- ## Contributing
104
-
105
- Bug reports and pull requests are welcome on GitHub at https://github.com/dankimio/codeword.
106
-
107
- ## License
98
+ ## Acknowledgements
108
99
 
109
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
100
+ Codeword is a fork of [lockup](https://github.com/interdiscipline/lockup).
@@ -6,7 +6,7 @@ module Codeword
6
6
 
7
7
  def unlock
8
8
  user_agent = request.env['HTTP_USER_AGENT'].presence
9
- if user_agent && user_agent.downcase.match(CRAWLER_REGEX)
9
+ if user_agent&.downcase&.match(CRAWLER_REGEX)
10
10
  head :ok
11
11
  return
12
12
  end
@@ -3,11 +3,7 @@
3
3
  module Codeword
4
4
  module CodewordHelper
5
5
  def codeword_hint
6
- @codeword_hint ||=
7
- ENV['CODEWORD_HINT'] ||
8
- ENV['codeword_hint'] ||
9
- ::Codeword.from_config(:hint, :secrets) ||
10
- ::Codeword.from_config(:hint)
6
+ @codeword_hint ||= ENV['CODEWORD_HINT'] || ENV['codeword_hint'] || ::Codeword.from_config(:hint)
11
7
  end
12
8
  end
13
9
  end
data/codeword.gemspec CHANGED
@@ -21,10 +21,10 @@ Gem::Specification.new do |spec|
21
21
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
22
  end
23
23
 
24
- spec.add_dependency 'rails', '>= 6'
24
+ spec.add_dependency 'rails', '>= 6.1'
25
25
 
26
26
  spec.add_development_dependency 'capybara', '~> 2.9'
27
27
  spec.add_development_dependency 'debug'
28
28
  spec.add_development_dependency 'launchy', '~> 2.4'
29
- spec.add_development_dependency 'rspec-rails', '~> 4.0'
29
+ spec.add_development_dependency 'rspec-rails', '~> 6.0'
30
30
  end
@@ -1,3 +1,3 @@
1
1
  module Codeword
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0.beta1'.freeze
3
3
  end
data/lib/codeword.rb CHANGED
@@ -9,10 +9,8 @@ module Codeword
9
9
  before_action :check_for_codeword, except: ['unlock']
10
10
  end
11
11
 
12
- def self.from_config(setting, secrets_or_credentials = :credentials)
13
- return unless Rails.application.respond_to?(secrets_or_credentials)
14
-
15
- store = Rails.application.public_send(secrets_or_credentials)
12
+ def self.from_config(setting)
13
+ store = Rails.application.credentials
16
14
 
17
15
  store.codeword.respond_to?(:fetch) &&
18
16
  store.codeword.fetch(setting, store.public_send("codeword_#{setting}")) ||
@@ -35,21 +33,16 @@ module Codeword
35
33
  @cookie_lifetime ||=
36
34
  ENV['COOKIE_LIFETIME_IN_WEEKS'] ||
37
35
  ENV['cookie_lifetime_in_weeks'] ||
38
- Codeword.from_config(:cookie_lifetime_in_weeks, :secrets) ||
39
36
  Codeword.from_config(:cookie_lifetime_in_weeks)
40
37
  end
41
38
 
42
39
  def codeword_code
43
- @codeword_code ||=
44
- ENV['CODEWORD'] ||
45
- ENV['codeword'] ||
46
- Codeword.from_config(:codeword, :secrets) ||
47
- Codeword.from_config(:codeword)
40
+ @codeword_code ||= ENV['CODEWORD'] || ENV['codeword'] || Codeword.from_config(:codeword)
48
41
  end
49
42
 
50
43
  def codeword_cookie_lifetime
51
44
  seconds = (cookie_lifetime.to_f * 1.week).to_i
52
- if seconds > 0
45
+ if seconds.positive?
53
46
  seconds
54
47
  else
55
48
  5.years
data/screenshot.png ADDED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codeword
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Kim
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-12-17 00:00:00.000000000 Z
12
+ date: 2024-07-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '6'
20
+ version: '6.1'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '6'
27
+ version: '6.1'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: capybara
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -73,14 +73,14 @@ dependencies:
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '4.0'
76
+ version: '6.0'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '4.0'
83
+ version: '6.0'
84
84
  description: A simple gem to more elegantly place a staging server or other in-progress
85
85
  application behind a basic codeword. It’s easy to implement, share with clients/collaborators,
86
86
  and more beautiful than the typical password-protection sheet.
@@ -110,6 +110,7 @@ files:
110
110
  - lib/codeword.rb
111
111
  - lib/codeword/engine.rb
112
112
  - lib/codeword/version.rb
113
+ - screenshot.png
113
114
  - script/rails
114
115
  homepage: https://github.com/dankimio/codeword
115
116
  licenses:
@@ -133,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
134
  - !ruby/object:Gem::Version
134
135
  version: '0'
135
136
  requirements: []
136
- rubygems_version: 3.2.32
137
+ rubygems_version: 3.5.15
137
138
  signing_key:
138
139
  specification_version: 4
139
140
  summary: Lock staging servers from search engines and prying eyespec.