hashie 3.5.2 → 3.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +1 -1
- data/lib/hashie.rb +2 -0
- data/lib/hashie/logger.rb +1 -6
- data/lib/hashie/mash.rb +9 -0
- data/lib/hashie/railtie.rb +10 -0
- data/lib/hashie/version.rb +1 -1
- data/spec/hashie/mash_spec.rb +11 -0
- data/spec/integration/omniauth-oauth2/app.rb +53 -0
- data/spec/integration/omniauth-oauth2/integration_spec.rb +26 -0
- data/spec/integration/omniauth-oauth2/some_site.rb +38 -0
- data/spec/integration/omniauth/app.rb +11 -0
- data/spec/integration/omniauth/integration_spec.rb +17 -16
- data/spec/integration/rails/app.rb +48 -0
- data/spec/integration/rails/integration_spec.rb +16 -56
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4946d0568ab6be36877e25d748fdb8f04f50ed5
|
4
|
+
data.tar.gz: f9cdd8a276939236ceb84633d88d5325486d5d86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c4748d9c7c2d79fa5a362fe10497994ea1f7fc27e75dc476b17422cd32fb9d32d9923c42662a7bfb64c19413b1391124cf91cfd463b0c4adcdc7b463d611981
|
7
|
+
data.tar.gz: ded15b7bd812ffe4792cf7e56f894e040d9041af56e1816f2c3d82ef62ee7bd5193fcf2cdac4086b11372dc6689fc0ee0a1b150f84cb17462e93bc4a5f860878
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,16 @@ scheme are considered to be bugs.
|
|
6
6
|
|
7
7
|
[semver]: http://semver.org/spec/v2.0.0.html
|
8
8
|
|
9
|
+
## [3.5.3] - 2017-02-11
|
10
|
+
|
11
|
+
[3.5.3]: https://github.com/intridea/hashie/compare/v3.5.2...v3.5.3
|
12
|
+
|
13
|
+
### Fixed
|
14
|
+
|
15
|
+
* [#402](https://github.com/intridea/hashie/pull/402): Use a Railtie to set Hashie.logger on rails boot - [@matthewrudy](https://github.com/matthewrudy).
|
16
|
+
* [#406](https://github.com/intridea/hashie/pull/406): Ensure that subclasses that disable warnings propagate that setting to grandchild classes - [@michaelherold](https://github.com/michaelherold).
|
17
|
+
* Your contribution here.
|
18
|
+
|
9
19
|
## [3.5.2] - 2017-02-10
|
10
20
|
|
11
21
|
[3.5.2]: https://github.com/intridea/hashie/compare/v3.5.1...v3.5.2
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ $ gem install hashie
|
|
20
20
|
|
21
21
|
## Upgrading
|
22
22
|
|
23
|
-
You're reading the documentation for the stable release of Hashie, 3.5.
|
23
|
+
You're reading the documentation for the stable release of Hashie, 3.5.3. Please read [UPGRADING](UPGRADING.md) when upgrading from a previous version.
|
24
24
|
|
25
25
|
## Hash Extensions
|
26
26
|
|
data/lib/hashie.rb
CHANGED
data/lib/hashie/logger.rb
CHANGED
data/lib/hashie/mash.rb
CHANGED
@@ -86,6 +86,15 @@ module Hashie
|
|
86
86
|
!!@disable_warnings
|
87
87
|
end
|
88
88
|
|
89
|
+
# Inheritance hook that sets class configuration when inherited.
|
90
|
+
#
|
91
|
+
# @api semipublic
|
92
|
+
# @return [void]
|
93
|
+
def self.inherited(subclass)
|
94
|
+
super
|
95
|
+
subclass.disable_warnings if disable_warnings?
|
96
|
+
end
|
97
|
+
|
89
98
|
def self.load(path, options = {})
|
90
99
|
@_mashes ||= new
|
91
100
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'rails/railtie'
|
2
|
+
|
3
|
+
module Hashie
|
4
|
+
class Railtie < Rails::Railtie
|
5
|
+
# Set the Hashie.logger to use Rails.logger when used with rails.
|
6
|
+
initializer 'hashie.configure_logger', after: 'initialize_logger' do
|
7
|
+
Hashie.logger = Rails.logger
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
data/lib/hashie/version.rb
CHANGED
data/spec/hashie/mash_spec.rb
CHANGED
@@ -155,6 +155,17 @@ describe Hashie::Mash do
|
|
155
155
|
it 'cannot disable logging on the base Mash' do
|
156
156
|
expect { Hashie::Mash.disable_warnings }.to raise_error(Hashie::Mash::CannotDisableMashWarnings)
|
157
157
|
end
|
158
|
+
|
159
|
+
it 'carries over the disable for warnings on grandchild classes' do
|
160
|
+
child_class = Class.new(Hashie::Mash) do
|
161
|
+
disable_warnings
|
162
|
+
end
|
163
|
+
grandchild_class = Class.new(child_class)
|
164
|
+
|
165
|
+
grandchild_class.new('trust' => { 'two' => 2 })
|
166
|
+
|
167
|
+
expect(logger_output).to be_blank
|
168
|
+
end
|
158
169
|
end
|
159
170
|
|
160
171
|
context 'updating' do
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'action_controller/railtie'
|
2
|
+
require 'action_view/railtie'
|
3
|
+
require 'action_view/testing/resolvers'
|
4
|
+
require 'rails/test_unit/railtie'
|
5
|
+
require_relative 'some_site'
|
6
|
+
|
7
|
+
module RailsApp
|
8
|
+
class Application < ::Rails::Application
|
9
|
+
config.eager_load = false
|
10
|
+
config.secret_key_base = 'hashieintegrationtest'
|
11
|
+
|
12
|
+
config.middleware.use OmniAuth::Builder do
|
13
|
+
provider :some_site
|
14
|
+
end
|
15
|
+
|
16
|
+
routes.append do
|
17
|
+
get '/' => 'application#index'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
LAYOUT = <<-HTML
|
23
|
+
<!DOCTYPE html>
|
24
|
+
<html>
|
25
|
+
<head>
|
26
|
+
<title>TestApp</title>
|
27
|
+
<%= csrf_meta_tags %>
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<%= yield %>
|
31
|
+
</body>
|
32
|
+
</html>
|
33
|
+
HTML
|
34
|
+
|
35
|
+
INDEX = '<h1>Hello, world!</h1>'
|
36
|
+
|
37
|
+
class ApplicationController < ActionController::Base
|
38
|
+
include Rails.application.routes.url_helpers
|
39
|
+
|
40
|
+
layout 'application'
|
41
|
+
|
42
|
+
self.view_paths = [ActionView::FixtureResolver.new(
|
43
|
+
'layouts/application.html.erb' => LAYOUT,
|
44
|
+
'application/index.html.erb' => INDEX
|
45
|
+
)]
|
46
|
+
|
47
|
+
def index
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
Bundler.require(:default, Rails.env)
|
52
|
+
|
53
|
+
RailsApp::Application.initialize!
|
@@ -0,0 +1,26 @@
|
|
1
|
+
ENV['RAILS_ENV'] = 'test'
|
2
|
+
|
3
|
+
require 'rspec/core'
|
4
|
+
|
5
|
+
RSpec.describe 'omniauth-oauth2 inside of rails', type: :request do
|
6
|
+
let(:stdout) { StringIO.new }
|
7
|
+
|
8
|
+
around(:each) do |example|
|
9
|
+
original_stdout = $stdout
|
10
|
+
$stdout = stdout
|
11
|
+
require_relative 'app'
|
12
|
+
require 'rspec/rails'
|
13
|
+
example.run
|
14
|
+
$stdout = original_stdout
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'does not log anything to STDOUT when initializing a Rails app and is set to Rails logger' do
|
18
|
+
expect(stdout.string).to eq('')
|
19
|
+
expect(Hashie.logger).to eq(Rails.logger)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'works' do
|
23
|
+
get '/'
|
24
|
+
assert_select 'h1', 'Hello, world!'
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'omniauth-oauth2'
|
2
|
+
|
3
|
+
module OmniAuth
|
4
|
+
module Strategies
|
5
|
+
class SomeSite < OmniAuth::Strategies::OAuth2
|
6
|
+
# Give your strategy a name.
|
7
|
+
option :name, 'some_site'
|
8
|
+
|
9
|
+
# This is where you pass the options you would pass when
|
10
|
+
# initializing your consumer from the OAuth gem.
|
11
|
+
option :client_options, site: 'https://api.somesite.com'
|
12
|
+
|
13
|
+
# These are called after authentication has succeeded. If
|
14
|
+
# possible, you should try to set the UID without making
|
15
|
+
# additional calls (if the user id is returned with the token
|
16
|
+
# or as a URI parameter). This may not be possible with all
|
17
|
+
# providers.
|
18
|
+
uid { raw_info['id'] }
|
19
|
+
|
20
|
+
info do
|
21
|
+
{
|
22
|
+
:name => raw_info['name'],
|
23
|
+
:email => raw_info['email']
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
extra do
|
28
|
+
{
|
29
|
+
'raw_info' => raw_info
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
def raw_info
|
34
|
+
@raw_info ||= access_token.get('/me').parsed
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -2,33 +2,34 @@ ENV['RACK_ENV'] = 'test'
|
|
2
2
|
|
3
3
|
require 'rspec/core'
|
4
4
|
require 'rack/test'
|
5
|
-
require 'sinatra'
|
6
|
-
require 'omniauth'
|
7
5
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
get '/' do
|
13
|
-
'Hello World'
|
6
|
+
RSpec.configure do |config|
|
7
|
+
config.expect_with :rspec do |expect|
|
8
|
+
expect.syntax = :expect
|
14
9
|
end
|
15
10
|
end
|
16
11
|
|
17
|
-
|
12
|
+
RSpec.describe 'omniauth' do
|
18
13
|
include Rack::Test::Methods
|
14
|
+
|
19
15
|
def app
|
20
16
|
MyApplication
|
21
17
|
end
|
22
|
-
end
|
23
18
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
19
|
+
let(:stdout) { StringIO.new }
|
20
|
+
|
21
|
+
around(:each) do |example|
|
22
|
+
original_stdout = $stdout
|
23
|
+
$stdout = stdout
|
24
|
+
require_relative 'app'
|
25
|
+
example.run
|
26
|
+
$stdout = original_stdout
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'does not log anything to STDOUT when initializing' do
|
30
|
+
expect(stdout.string).to eq('')
|
28
31
|
end
|
29
|
-
end
|
30
32
|
|
31
|
-
describe 'omniauth' do
|
32
33
|
it 'works' do
|
33
34
|
get '/'
|
34
35
|
expect(last_response).to be_ok
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'action_controller/railtie'
|
2
|
+
require 'action_view/railtie'
|
3
|
+
require 'action_view/testing/resolvers'
|
4
|
+
require 'rails/test_unit/railtie'
|
5
|
+
|
6
|
+
module RailsApp
|
7
|
+
class Application < ::Rails::Application
|
8
|
+
config.eager_load = false
|
9
|
+
config.secret_key_base = 'hashieintegrationtest'
|
10
|
+
|
11
|
+
routes.append do
|
12
|
+
get '/' => 'application#index'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
LAYOUT = <<-HTML
|
18
|
+
<!DOCTYPE html>
|
19
|
+
<html>
|
20
|
+
<head>
|
21
|
+
<title>TestApp</title>
|
22
|
+
<%= csrf_meta_tags %>
|
23
|
+
</head>
|
24
|
+
<body>
|
25
|
+
<%= yield %>
|
26
|
+
</body>
|
27
|
+
</html>
|
28
|
+
HTML
|
29
|
+
|
30
|
+
INDEX = '<h1>Hello, world!</h1>'
|
31
|
+
|
32
|
+
class ApplicationController < ActionController::Base
|
33
|
+
include Rails.application.routes.url_helpers
|
34
|
+
|
35
|
+
layout 'application'
|
36
|
+
|
37
|
+
self.view_paths = [ActionView::FixtureResolver.new(
|
38
|
+
'layouts/application.html.erb' => LAYOUT,
|
39
|
+
'application/index.html.erb' => INDEX
|
40
|
+
)]
|
41
|
+
|
42
|
+
def index
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
Bundler.require(:default, Rails.env)
|
47
|
+
|
48
|
+
RailsApp::Application.initialize!
|
@@ -1,66 +1,26 @@
|
|
1
|
-
ENV['
|
1
|
+
ENV['RAILS_ENV'] = 'test'
|
2
2
|
|
3
3
|
require 'rspec/core'
|
4
|
-
require 'rails'
|
5
|
-
require 'rails/all'
|
6
|
-
require 'action_view/testing/resolvers'
|
7
4
|
|
8
|
-
|
9
|
-
|
10
|
-
config.action_dispatch.show_exceptions = false
|
11
|
-
config.active_support.deprecation = :stderr
|
12
|
-
config.eager_load = false
|
13
|
-
config.root = __dir__
|
14
|
-
config.secret_key_base = 'hashieintegrationtest'
|
5
|
+
RSpec.describe 'rails', type: :request do
|
6
|
+
let(:stdout) { StringIO.new }
|
15
7
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
8
|
+
around(:each) do |example|
|
9
|
+
original_stdout = $stdout
|
10
|
+
$stdout = stdout
|
11
|
+
require_relative 'app'
|
12
|
+
require 'rspec/rails'
|
13
|
+
example.run
|
14
|
+
$stdout = original_stdout
|
22
15
|
end
|
23
|
-
end
|
24
|
-
|
25
|
-
LAYOUT = <<-HTML
|
26
|
-
<!DOCTYPE html>
|
27
|
-
<html>
|
28
|
-
<head>
|
29
|
-
<title>TestApp</title>
|
30
|
-
<%= stylesheet_link_tag "application", :media => "all" %>
|
31
|
-
<%= javascript_include_tag "application" %>
|
32
|
-
<%= csrf_meta_tags %>
|
33
|
-
</head>
|
34
|
-
<body>
|
35
|
-
<%= yield %>
|
36
|
-
</body>
|
37
|
-
</html>
|
38
|
-
HTML
|
39
|
-
|
40
|
-
INDEX = <<-HTML
|
41
|
-
<h1>Hello, world!</h1>
|
42
|
-
HTML
|
43
|
-
|
44
|
-
class ApplicationController < ActionController::Base
|
45
|
-
include Rails.application.routes.url_helpers
|
46
|
-
|
47
|
-
layout 'application'
|
48
16
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
)]
|
53
|
-
|
54
|
-
def index
|
17
|
+
it 'does not log anything to STDOUT when initializing and sets the Hashie logger to the Rails logger' do
|
18
|
+
expect(stdout.string).to eq('')
|
19
|
+
expect(Hashie.logger).to eq(Rails.logger)
|
55
20
|
end
|
56
|
-
end
|
57
21
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
RSpec.describe 'the Hashie logger' do
|
63
|
-
it 'is set to the Rails logger' do
|
64
|
-
expect(Hashie.logger).to eq(Rails.logger)
|
22
|
+
it 'works' do
|
23
|
+
get '/'
|
24
|
+
assert_select 'h1', 'Hello, world!'
|
65
25
|
end
|
66
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hashie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Bleigh
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-02-
|
12
|
+
date: 2017-02-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- lib/hashie/hash.rb
|
99
99
|
- lib/hashie/logger.rb
|
100
100
|
- lib/hashie/mash.rb
|
101
|
+
- lib/hashie/railtie.rb
|
101
102
|
- lib/hashie/rash.rb
|
102
103
|
- lib/hashie/trash.rb
|
103
104
|
- lib/hashie/utils.rb
|
@@ -131,7 +132,12 @@ files:
|
|
131
132
|
- spec/hashie/utils_spec.rb
|
132
133
|
- spec/hashie/version_spec.rb
|
133
134
|
- spec/hashie_spec.rb
|
135
|
+
- spec/integration/omniauth-oauth2/app.rb
|
136
|
+
- spec/integration/omniauth-oauth2/integration_spec.rb
|
137
|
+
- spec/integration/omniauth-oauth2/some_site.rb
|
138
|
+
- spec/integration/omniauth/app.rb
|
134
139
|
- spec/integration/omniauth/integration_spec.rb
|
140
|
+
- spec/integration/rails/app.rb
|
135
141
|
- spec/integration/rails/integration_spec.rb
|
136
142
|
- spec/spec_helper.rb
|
137
143
|
- spec/support/integration_specs.rb
|
@@ -192,7 +198,12 @@ test_files:
|
|
192
198
|
- spec/hashie/utils_spec.rb
|
193
199
|
- spec/hashie/version_spec.rb
|
194
200
|
- spec/hashie_spec.rb
|
201
|
+
- spec/integration/omniauth/app.rb
|
195
202
|
- spec/integration/omniauth/integration_spec.rb
|
203
|
+
- spec/integration/omniauth-oauth2/app.rb
|
204
|
+
- spec/integration/omniauth-oauth2/integration_spec.rb
|
205
|
+
- spec/integration/omniauth-oauth2/some_site.rb
|
206
|
+
- spec/integration/rails/app.rb
|
196
207
|
- spec/integration/rails/integration_spec.rb
|
197
208
|
- spec/spec_helper.rb
|
198
209
|
- spec/support/integration_specs.rb
|