diff --git a/lib/user_agent.rb b/lib/user_agent.rb index f031a2b..6fdf9c9 100644 --- a/lib/user_agent.rb +++ b/lib/user_agent.rb @@ -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 diff --git a/spec/user_agent_spec.rb b/spec/user_agent_spec.rb index f3d972d..d58181e 100644 --- a/spec/user_agent_spec.rb +++ b/spec/user_agent_spec.rb @@ -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)