codeword 0.1.1 → 0.2.0.beta1

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: 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.