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
14 changes: 13 additions & 1 deletion lib/user_agent.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,21 @@ class UserAgent

DEFAULT_USER_AGENT = "Mozilla/4.0 (compatible)"

def self.default_user_agent
if instance_variable_defined?(:@default_user_agent)
@default_user_agent
else
DEFAULT_USER_AGENT
end
end

def self.default_user_agent=(value)
@default_user_agent = value
end

def self.parse(string)
if string.nil? || string.strip == ""
string = DEFAULT_USER_AGENT
string = default_user_agent
end

agents = Browsers::Base.new
Expand Down
5 changes: 5 additions & 0 deletions spec/user_agent_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@
expect(UserAgent.parse(" ")).to eq(default_user_agent)
end

it "should allow changing the default agent" do
UserAgent.default_user_agent = "Mozilla/5.0 (Macintosh)"
expect(UserAgent.parse(nil)).to eq(UserAgent.parse("Mozilla/5.0 (Macintosh)"))
end

it "should parse a double-quoted user-agent" do
useragent = UserAgent.new("Mozilla", "5.0", ["X11", "Linux x86_64", "rv:9.0"])
expect(UserAgent.parse("\"Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20100101 Firefox/8.0\"").application).to eq(useragent)
Expand Down