mtwarden 3.3.4 → 3.5.0

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
  SHA1:
3
- metadata.gz: fff168bb91433f28bf12d5016b32045f8c47674f
4
- data.tar.gz: f7bc4fc7e591d9aa8bd28a0ffacf4a13f6cb5e9e
3
+ metadata.gz: 8d37cc59e45bf84e85f885dabf6b88b7fe2efeaf
4
+ data.tar.gz: a1b20a9628d3e635a094e221915ac60a4024d2c9
5
5
  SHA512:
6
- metadata.gz: dbb737105d0d33bd20aab12b3fe95beaeeff49c6f79f2b964f69d7eb3688a63f0f288806e2e855ce5943c4845e2c76a3036591832e0c2c10aac5cca7b0ae7552
7
- data.tar.gz: 40b91e25aa41dd08d34b919a3fbffdf4795b252faeada284859f2a2a8faee5a5a4f9ad0d33c86292a520d5185512774e91d740ecd2b7546f2ff3b8cd7b47ccc2
6
+ metadata.gz: cb383d404a8f3ece74d20147e2eca1e45490e91ffb23b375bd33f5179f1723694a6ccef21fb5aa36f2de5eeaad83c3d03c620fadcd7454616202713111343e3f
7
+ data.tar.gz: 443eb09580be98fa6ba3c4351eaf2b674be3f2a652cb4d6f36a123400a72a0f7a18b51878202455d15e94d0a014d4d63a6195c0db39e209305a0fbde4be8c589
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2016 Brad Potts
1
+ Copyright 2016-2017 BradPotts - PHCNetworks
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/mtwarden.svg)](https://badge.fury.io/rb/mtwarden)
5
5
 
6
6
  ### Mtwarden(MultiTenancyWarden) Documentation
7
- PHC mtwarden-warden gem adds a separate multi-tenant layer that handles all user registrations, multi-tenancy app functions and login through subdomains using Warden authentication gem.
7
+ PHC mtwarden gem adds a separate multi-tenant layer that handles all user registrations, multi-tenancy app functions, and login through subdomains using Warden authentication gem.
8
8
 
9
9
  #### Step 1 - Add Mtwarden to your gemfile and run command
10
10
 
@@ -12,6 +12,7 @@ PHC mtwarden-warden gem adds a separate multi-tenant layer that handles all user
12
12
  bundle exec install
13
13
 
14
14
  #### Step 2 - Add and migrate mtwarden database tables
15
+
15
16
  rake railties:install:migrations
16
17
  rake db:migrate
17
18
 
data/Rakefile CHANGED
@@ -1,30 +1,33 @@
1
1
  begin
2
- require 'bundler/setup'
2
+ require 'bundler/setup'
3
3
 
4
4
  rescue LoadError
5
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
6
  end
7
7
 
8
8
  require 'rdoc/task'
9
+
9
10
  RDoc::Task.new(:rdoc) do |rdoc|
10
- rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'Mtwarden'
12
- rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.md')
14
- rdoc.rdoc_files.include('lib/**/*.rb')
11
+ rdoc.rdoc_dir = 'rdoc'
12
+ rdoc.title = 'Mtwarden'
13
+ rdoc.options << '--line-numbers'
14
+ rdoc.rdoc_files.include('README.md')
15
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
16
  end
16
17
 
17
18
  APP_RAKEFILE = File.expand_path("../spec/testapp/Rakefile", __FILE__)
19
+
18
20
  load 'rails/tasks/engine.rake'
19
21
  load 'rails/tasks/statistics.rake'
22
+
20
23
  require 'bundler/gem_tasks'
21
24
  require 'rake/testtask'
22
25
 
23
26
  Rake::TestTask.new(:test) do |t|
24
- t.libs << 'lib'
25
- t.libs << 'test'
26
- t.pattern = 'test/**/*_test.rb'
27
- t.verbose = false
27
+ t.libs << 'lib'
28
+ t.libs << 'test'
29
+ t.pattern = 'test/**/*_test.rb'
30
+ t.verbose = false
28
31
  end
29
32
 
30
33
  task default: :test
@@ -1,4 +0,0 @@
1
- Braintree::Configuration.environment = :sandbox
2
- Braintree::Configuration.merchant_id = "rjyzvq7k53n45sph"
3
- Braintree::Configuration.public_key = "4dhtq8cmjvsnzvjv"
4
- Braintree::Configuration.private_key = "d76f2378fa72b6f3a7af797ce6f6222f"
@@ -1,16 +1,18 @@
1
1
  Warden::Strategies.add(:password) do
2
- def subdomain
3
- ActionDispatch::Http::URL.extract_subdomains(request.host, 1)
4
- end
5
2
 
6
- def valid?
7
- subdomain.present? && params["user"]
8
- end
3
+ def subdomain
4
+ ActionDispatch::Http::URL.extract_subdomains(request.host, 1)
5
+ end
6
+
7
+ def valid?
8
+ subdomain.present? && params["user"]
9
+ end
10
+
11
+ def authenticate!
12
+ return fail! unless account = Mtwarden::Account.find_by(subdomain: subdomain)
13
+ return fail! unless user = account.users.find_by(email: params["user"]["email"])
14
+ return fail! unless user.authenticate(params["user"]["password"])
15
+ success! user
16
+ end
9
17
 
10
- def authenticate!
11
- return fail! unless account = Mtwarden::Account.find_by(subdomain: subdomain)
12
- return fail! unless user = account.users.find_by(email: params["user"]["email"])
13
- return fail! unless user.authenticate(params["user"]["password"])
14
- success! user
15
- end
16
- end
18
+ end
data/config/routes.rb CHANGED
@@ -1,29 +1,30 @@
1
1
  require "mtwarden/constraints/subdomain_required"
2
2
 
3
3
  Mtwarden::Engine.routes.draw do
4
- constraints(Mtwarden::Constraints::SubdomainRequired) do
5
- scope :module => "account" do
6
- root :to => "dashboard#index", :as => :account_root
7
- get "/sign_in", :to => "sessions#new", :as => :sign_in
8
- post "/sign_in", :to => "sessions#create", :as => :sessions
9
- get "/sign_up", :to => "users#new", :as => :user_sign_up
10
- post "/sign_up", :to => "users#create", :as => :do_user_sign_up
11
- get "/account", :to => "accounts#edit", :as => :edit_account
12
- patch "/account", :to => "accounts#update"
13
- get "/account/plan/:plan_id",
14
- :to => "accounts#plan",
15
- :as => :plan_account
16
- get "/account/subscribe",
17
- :to => "accounts#subscribe",
18
- :as => :subscribe_account
19
- post "/account/confirm_plan",
20
- :to => "accounts#confirm_plan",
21
- :as => :confirm_plan_account
22
- end
23
- end
24
4
 
25
- root "dashboard#index"
26
- get "/sign_up", :to => "accounts#new", :as => :sign_up
27
- post "/accounts", :to => "accounts#create", :as => :accounts
5
+ constraints(Mtwarden::Constraints::SubdomainRequired) do
6
+ scope :module => "account" do
7
+ root :to => "dashboard#index", :as => :account_root
8
+ get "/sign_in", :to => "sessions#new", :as => :sign_in
9
+ post "/sign_in", :to => "sessions#create", :as => :sessions
10
+ get "/sign_up", :to => "users#new", :as => :user_sign_up
11
+ post "/sign_up", :to => "users#create", :as => :do_user_sign_up
12
+ get "/account", :to => "accounts#edit", :as => :edit_account
13
+ patch "/account", :to => "accounts#update"
14
+ get "/account/plan/:plan_id",
15
+ :to => "accounts#plan",
16
+ :as => :plan_account
17
+ get "/account/subscribe",
18
+ :to => "accounts#subscribe",
19
+ :as => :subscribe_account
20
+ post "/account/confirm_plan",
21
+ :to => "accounts#confirm_plan",
22
+ :as => :confirm_plan_account
23
+ end
24
+ end
25
+
26
+ root "dashboard#index"
27
+ get "/sign_up", :to => "accounts#new", :as => :sign_up
28
+ post "/accounts", :to => "accounts#create", :as => :accounts
28
29
 
29
30
  end
@@ -1,9 +1,11 @@
1
1
  class CreateMtwardenAccounts < ActiveRecord::Migration[5.0]
2
- def change
3
- create_table :mtwarden_accounts do |t|
4
- t.string :name
2
+ def change
3
+ create_table :mtwarden_accounts do |t|
5
4
 
6
- t.timestamps
7
- end
8
- end
9
- end
5
+ t.string :name
6
+
7
+ t.timestamps
8
+
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,7 @@
1
1
  class AddOwnerIdToMtwardenAccounts < ActiveRecord::Migration[5.0]
2
- def change
3
- add_column :mtwarden_accounts, :owner_id, :integer
4
- end
5
- end
2
+ def change
3
+
4
+ add_column :mtwarden_accounts, :owner_id, :integer
5
+
6
+ end
7
+ end
@@ -1,10 +1,12 @@
1
1
  class CreateMtwardenUsers < ActiveRecord::Migration[5.0]
2
- def change
3
- create_table :mtwarden_users do |t|
4
- t.string :email
5
- t.string :password_digest
2
+ def change
3
+ create_table :mtwarden_users do |t|
6
4
 
7
- t.timestamps
8
- end
9
- end
10
- end
5
+ t.string :email
6
+ t.string :password_digest
7
+
8
+ t.timestamps
9
+
10
+ end
11
+ end
12
+ end
@@ -1,10 +1,12 @@
1
1
  class CreateMtwardenMembers < ActiveRecord::Migration[5.0]
2
- def change
3
- create_table :mtwarden_members do |t|
4
- t.integer :account_id
5
- t.integer :user_id
2
+ def change
3
+ create_table :mtwarden_members do |t|
6
4
 
7
- t.timestamps
8
- end
9
- end
10
- end
5
+ t.integer :account_id
6
+ t.integer :user_id
7
+
8
+ t.timestamps
9
+
10
+ end
11
+ end
12
+ end
@@ -1,6 +1,8 @@
1
1
  class AddSubdomainToMtwardenAccounts < ActiveRecord::Migration[5.0]
2
- def change
3
- add_column :mtwarden_accounts, :subdomain, :string
4
- add_index :mtwarden_accounts, :subdomain
5
- end
6
- end
2
+ def change
3
+
4
+ add_column :mtwarden_accounts, :subdomain, :string
5
+ add_index :mtwarden_accounts, :subdomain
6
+
7
+ end
8
+ end
@@ -1,11 +1,13 @@
1
1
  class CreateMtwardenPlans < ActiveRecord::Migration[5.0]
2
- def change
3
- create_table :mtwarden_plans do |t|
4
- t.string :name
5
- t.float :price
6
- t.string :braintree_id
2
+ def change
3
+ create_table :mtwarden_plans do |t|
7
4
 
8
- t.timestamps
9
- end
10
- end
11
- end
5
+ t.string :name
6
+ t.float :price
7
+ t.string :braintree_id
8
+
9
+ t.timestamps
10
+
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,7 @@
1
1
  class AddPlanIdToMtwardenAccounts < ActiveRecord::Migration[5.0]
2
- def change
3
- add_column :mtwarden_accounts, :plan_id, :integer
4
- end
5
- end
2
+ def change
3
+
4
+ add_column :mtwarden_accounts, :plan_id, :integer
5
+
6
+ end
7
+ end
@@ -1,5 +1,7 @@
1
1
  class AddBraintreeSubscriptionIdToMtwardenAccounts < ActiveRecord::Migration[5.0]
2
- def change
3
- add_column :mtwarden_accounts, :braintree_subscription_id, :string
4
- end
5
- end
2
+ def change
3
+
4
+ add_column :mtwarden_accounts, :braintree_subscription_id, :string
5
+
6
+ end
7
+ end
@@ -1,20 +1,22 @@
1
1
  module Mtwarden
2
- class BraintreePlanFetcher
3
- def self.store_locally
4
- Braintree::Plan.all.each do |plan|
5
- if local_plan = Mtwarden::Plan.find_by(braintree_id: plan.id)
6
- local_plan.update_attributes({
7
- :name => plan.name,
8
- :price => plan.price
9
- })
10
- else
11
- Mtwarden::Plan.create({
12
- :name => plan.name,
13
- :price => plan.price,
14
- :braintree_id => plan.id
15
- })
16
- end
17
- end
18
- end
19
- end
20
- end
2
+ class BraintreePlanFetcher
3
+
4
+ def self.store_locally
5
+ Braintree::Plan.all.each do |plan|
6
+ if local_plan = Mtwarden::Plan.find_by(braintree_id: plan.id)
7
+ local_plan.update_attributes({
8
+ :name => plan.name,
9
+ :price => plan.price
10
+ })
11
+ else
12
+ Mtwarden::Plan.create({
13
+ :name => plan.name,
14
+ :price => plan.price,
15
+ :braintree_id => plan.id
16
+ })
17
+ end
18
+ end
19
+ end
20
+
21
+ end
22
+ end
@@ -1,9 +1,9 @@
1
1
  module Mtwarden
2
- module Constraints
3
- class SubdomainRequired
4
- def self.matches?(request)
5
- request.subdomain.present? && request.subdomain != "www"
6
- end
7
- end
8
- end
2
+ module Constraints
3
+ class SubdomainRequired
4
+ def self.matches?(request)
5
+ request.subdomain.present? && request.subdomain != "www"
6
+ end
7
+ end
8
+ end
9
9
  end
@@ -6,46 +6,48 @@ require "dynamic_form"
6
6
  require "braintree"
7
7
 
8
8
  module Mtwarden
9
- class Engine < ::Rails::Engine
10
- isolate_namespace Mtwarden
11
-
12
- config.generators do |g|
13
- g.test_framework :rspec, :view_specs => false
14
- end
15
-
16
- initializer "mtwarden.middleware.warden" do
17
- Rails.application.config.middleware.use Warden::Manager do |manager|
18
- manager.default_strategies :password
19
- manager.serialize_into_session do |user|
20
- user.id
21
- end
22
-
23
- manager.serialize_from_session do |id|
24
- Mtwarden::User.find(id)
25
- end
26
- end
27
- end
28
-
29
- initializer "mtwarden.middleware.fake_braintree_redirect" do
30
- if Rails.env.test?
31
- require "fake_braintree_redirect"
32
- Rails.application.config.middleware.insert_before \
33
- Warden::Manager,
34
- FakeBraintreeRedirect
35
- end
36
- end
37
-
38
- config.to_prepare do
39
- root = Mtwarden::Engine.root
40
- extenders_path = root + "app/extenders/**/*.rb"
41
- Dir.glob(extenders_path) do |file|
42
- Rails.configuration.cache_classes ? require(file) : load(file)
43
- end
44
- end
45
-
46
- initializer 'mtwarden.middleware.houser' do
47
- Rails.application.config.middleware.use Houser::Middleware,
48
- :class_name => 'Mtwarden::Account'
49
- end
50
- end
9
+ class Engine < ::Rails::Engine
10
+
11
+ isolate_namespace Mtwarden
12
+
13
+ config.generators do |g|
14
+ g.test_framework :rspec, :view_specs => false
15
+ end
16
+
17
+ initializer "mtwarden.middleware.warden" do
18
+ Rails.application.config.middleware.use Warden::Manager do |manager|
19
+ manager.default_strategies :password
20
+ manager.serialize_into_session do |user|
21
+ user.id
22
+ end
23
+ manager.serialize_from_session do |id|
24
+ Mtwarden::User.find(id)
25
+ end
26
+ end
27
+ end
28
+
29
+ initializer "mtwarden.middleware.fake_braintree_redirect" do
30
+ if Rails.env.test?
31
+ require "fake_braintree_redirect"
32
+ Rails.application.config.middleware.insert_before \
33
+ Warden::Manager,
34
+ FakeBraintreeRedirect
35
+ end
36
+ end
37
+
38
+ config.to_prepare do
39
+ root = Mtwarden::Engine.root
40
+ extenders_path = root + "app/extenders/**/*.rb"
41
+ Dir.glob(extenders_path) do |file|
42
+ Rails.configuration.cache_classes ? require(file) : load(file)
43
+ end
44
+ end
45
+
46
+ initializer 'mtwarden.middleware.houser' do
47
+ Rails.application.config.middleware.use Houser::Middleware,
48
+ :class_name => 'Mtwarden::Account'
49
+ end
50
+
51
+ end
51
52
  end
53
+
@@ -1,7 +1,9 @@
1
1
  module Mtwarden
2
- module ScopedTo
3
- def scoped_to(account)
4
- where(:account_id => account.id)
5
- end
6
- end
7
- end
2
+ module ScopedTo
3
+
4
+ def scoped_to(account)
5
+ where(:account_id => account.id)
6
+ end
7
+
8
+ end
9
+ end
@@ -1,17 +1,21 @@
1
1
  module Mtwarden
2
- module TestingSupport
3
- module AuthenticationHelpers
4
- include Warden::Test::Helpers
5
- def self.included(base)
6
- base.after do
7
- logout
8
- end
9
- end
10
- def sign_in_as(options={})
11
- options.each do |scope, object|
12
- login_as(object, :scope => scope)
13
- end
14
- end
15
- end
16
- end
2
+ module TestingSupport
3
+ module AuthenticationHelpers
4
+
5
+ include Warden::Test::Helpers
6
+
7
+ def self.included(base)
8
+ base.after do
9
+ logout
10
+ end
11
+ end
12
+
13
+ def sign_in_as(options={})
14
+ options.each do |scope, object|
15
+ login_as(object, :scope => scope)
16
+ end
17
+ end
18
+
19
+ end
20
+ end
17
21
  end
@@ -1,13 +1,14 @@
1
1
  require "mtwarden/testing_support/factories/user_factory"
2
2
 
3
3
  FactoryGirl.define do
4
- factory :account, :class => Mtwarden::Account do
5
- sequence(:name) { |n| "Test Account ##{n}" }
6
- sequence(:subdomain) { |n| "test#{n}" }
7
- association :owner, :factory => :user
4
+ factory :account, :class => Mtwarden::Account do
5
+ sequence(:name) { |n| "Test Account ##{n}" }
6
+ sequence(:subdomain) { |n| "test#{n}" }
7
+ association :owner, :factory => :user
8
8
 
9
- after(:create) do |account|
10
- account.users << account.owner
11
- end
12
- end
9
+ after(:create) do |account|
10
+ account.users << account.owner
11
+ end
12
+
13
+ end
13
14
  end
@@ -1,7 +1,7 @@
1
1
  FactoryGirl.define do
2
- factory :user, :class => Mtwarden::User do
3
- sequence(:email) { |n| "test#{n}@example.com" }
4
- password "password"
5
- password_confirmation "password"
6
- end
2
+ factory :user, :class => Mtwarden::User do
3
+ sequence(:email) { |n| "test#{n}@example.com" }
4
+ password "password"
5
+ password_confirmation "password"
6
+ end
7
7
  end
@@ -1,14 +1,16 @@
1
1
  module Mtwarden
2
- module TestingSupport
3
- module SubdomainHelpers
4
- def within_account_subdomain(&block)
5
- context "within a subdomain" do
6
- let(:subdomain_url) { "http://#{account.subdomain}.example.com" }
7
- before { Capybara.default_host = subdomain_url }
8
- after { Capybara.default_host = "http://example.com" }
9
- yield
10
- end
11
- end
12
- end
13
- end
2
+ module TestingSupport
3
+ module SubdomainHelpers
4
+
5
+ def within_account_subdomain(&block)
6
+ context "within a subdomain" do
7
+ let(:subdomain_url) { "http://#{account.subdomain}.example.com" }
8
+ before { Capybara.default_host = subdomain_url }
9
+ after { Capybara.default_host = "http://example.com" }
10
+ yield
11
+ end
12
+ end
13
+
14
+ end
15
+ end
14
16
  end
@@ -1,3 +1,3 @@
1
1
  module Mtwarden
2
- VERSION = '3.3.4'
2
+ VERSION = '3.5.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mtwarden
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.4
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BradPotts
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-12 00:00:00.000000000 Z
11
+ date: 2017-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -70,60 +70,42 @@ dependencies:
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: '1.3'
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: 1.3.4
73
+ version: '1.5'
77
74
  type: :runtime
78
75
  prerelease: false
79
76
  version_requirements: !ruby/object:Gem::Requirement
80
77
  requirements:
81
78
  - - "~>"
82
79
  - !ruby/object:Gem::Version
83
- version: '1.3'
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 1.3.4
80
+ version: '1.5'
87
81
  - !ruby/object:Gem::Dependency
88
82
  name: phctitleseo
89
83
  requirement: !ruby/object:Gem::Requirement
90
84
  requirements:
91
85
  - - "~>"
92
86
  - !ruby/object:Gem::Version
93
- version: '3.6'
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 3.6.3
87
+ version: '4.2'
97
88
  type: :runtime
98
89
  prerelease: false
99
90
  version_requirements: !ruby/object:Gem::Requirement
100
91
  requirements:
101
92
  - - "~>"
102
93
  - !ruby/object:Gem::Version
103
- version: '3.6'
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: 3.6.3
94
+ version: '4.2'
107
95
  - !ruby/object:Gem::Dependency
108
96
  name: phcnotifi
109
97
  requirement: !ruby/object:Gem::Requirement
110
98
  requirements:
111
99
  - - "~>"
112
100
  - !ruby/object:Gem::Version
113
- version: '3.6'
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: 3.6.3
101
+ version: '3.8'
117
102
  type: :runtime
118
103
  prerelease: false
119
104
  version_requirements: !ruby/object:Gem::Requirement
120
105
  requirements:
121
106
  - - "~>"
122
107
  - !ruby/object:Gem::Version
123
- version: '3.6'
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: 3.6.3
108
+ version: '3.8'
127
109
  - !ruby/object:Gem::Dependency
128
110
  name: jquery-rails
129
111
  requirement: !ruby/object:Gem::Requirement
@@ -504,14 +486,20 @@ dependencies:
504
486
  requirements:
505
487
  - - "~>"
506
488
  - !ruby/object:Gem::Version
507
- version: '2.11'
489
+ version: '2.12'
490
+ - - ">="
491
+ - !ruby/object:Gem::Version
492
+ version: 2.12.1
508
493
  type: :development
509
494
  prerelease: false
510
495
  version_requirements: !ruby/object:Gem::Requirement
511
496
  requirements:
512
497
  - - "~>"
513
498
  - !ruby/object:Gem::Version
514
- version: '2.11'
499
+ version: '2.12'
500
+ - - ">="
501
+ - !ruby/object:Gem::Version
502
+ version: 2.12.1
515
503
  - !ruby/object:Gem::Dependency
516
504
  name: byebug
517
505
  requirement: !ruby/object:Gem::Requirement
@@ -618,20 +606,14 @@ dependencies:
618
606
  requirements:
619
607
  - - "~>"
620
608
  - !ruby/object:Gem::Version
621
- version: '3.0'
622
- - - ">="
623
- - !ruby/object:Gem::Version
624
- version: 3.0.8
609
+ version: '3.1'
625
610
  type: :development
626
611
  prerelease: false
627
612
  version_requirements: !ruby/object:Gem::Requirement
628
613
  requirements:
629
614
  - - "~>"
630
615
  - !ruby/object:Gem::Version
631
- version: '3.0'
632
- - - ">="
633
- - !ruby/object:Gem::Version
634
- version: 3.0.8
616
+ version: '3.1'
635
617
  - !ruby/object:Gem::Dependency
636
618
  name: minitest
637
619
  requirement: !ruby/object:Gem::Requirement
@@ -790,7 +772,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
790
772
  version: '0'
791
773
  requirements: []
792
774
  rubyforge_project:
793
- rubygems_version: 2.5.1
775
+ rubygems_version: 2.6.8
794
776
  signing_key:
795
777
  specification_version: 4
796
778
  summary: Multi-Tenant Rails Engine Using Warden