Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 17 additions & 9 deletions lib/rails_same_site_cookie/user_agent_checker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,14 @@ def drops_unrecognized_ss_cookies?
end

def is_ios_version?(major)
user_agent.os&.family == 'iOS' and user_agent.os&.version&.major == major
user_agent.os.present? && user_agent.os.family == 'iOS' &&
user_agent.os.version.present? && user_agent.os.version.major == major
end

def is_mac_osx_version?(major,minor)
user_agent.os&.family == 'Mac OS X' and user_agent.os&.version&.major == major and user_agent.os&.version&.minor == minor
user_agent.os.present? && user_agent.os.family == 'Mac OS X' &&
user_agent.os.version.present? && user_agent.os.version.major == major &&
user_agent.os.version.minor == minor
end

def is_safari?
Expand All @@ -62,22 +65,27 @@ def is_chromium_version_between?(range)
match = /Chrom[^\/]+\/(\d+)[\.\d]*/.match(@user_agent_str)
return false unless match
version = match[1].to_i
return range.include?(version)

range.include?(version)
end

def is_uc_browser?
user_agent.family == 'UC Browser'
end

def is_uc_version_at_least?(major,minor,build)
if user_agent.version&.major&.to_i == major
if user_agent.version&.minor&.to_i == minor
return user_agent.version&.patch&.to_i >= build
if user_agent.version.present? && user_agent.version.major.present?
majorVersion = user_agent.version.major.present? ? user_agent.version.major.to_i : 0
minorVersion = user_agent.version.minor.present? ? user_agent.version.minor.to_i : 0
patchVersion = user_agent.version.patch.present? ? user_agent.version.patch.to_i : 0

if majorVersion == major && minorVersion == minor
patchVersion >= build
elsif majorVersion == major
minorVersion > minor
else
return user_agent.version&.minor&.to_i > minor
majorVersion > major
end
else
return user_agent.version&.major&.to_i > major
end
end

Expand Down
8 changes: 4 additions & 4 deletions rails_same_site_cookie.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]

spec.add_development_dependency "bundler", ">= 1.17"
spec.add_development_dependency "bundler", "~> 1.0"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec", "~> 3.0"
spec.add_development_dependency "rspec", "~> 2.0"

spec.add_dependency "railties", ">= 4.1"
spec.add_dependency "user_agent_parser", "~> 2.5"
spec.add_dependency "railties", "=3.2.22.1"
spec.add_dependency "user_agent_parser", "=2.4.1"
end
4 changes: 2 additions & 2 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

RSpec.configure do |config|
# Enable flags like --only-failures and --next-failure
config.example_status_persistence_file_path = ".rspec_status"
# config.example_status_persistence_file_path = ".rspec_status"

# Disable RSpec exposing methods globally on `Module` and `main`
config.disable_monkey_patching!
# config.disable_monkey_patching!

config.expect_with :rspec do |c|
c.syntax = :expect
Expand Down