urban 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,56 +1,38 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
+ require "urban/web"
2
3
 
3
- class WebTest < MiniTest::Unit::TestCase
4
+ class WebTest < Urban::Test
5
+
6
+ attr_accessor :web_client
4
7
 
5
8
  def setup
6
- @web_module = (Object.new).extend(Urban::Web).extend(Stub)
9
+ self.web_client = Urban::Web.new
7
10
  end
8
11
 
9
- class WebFetchTest < WebTest
10
- def setup
11
- super
12
- @web_module.stub(:open) { |arg| arg }
13
- end
14
-
15
- def test_fetch_with_no_params
16
- expected = 'http://www.urbandictionary.com/test.php'
17
- actual = @web_module.fetch('test.php')
18
- assert_equal(expected, actual)
19
- end
20
-
21
- def test_fetch_with_params
22
- expected = /http:\/\/www\.urbandictionary\.com\/test\.php\?\w+=\w+&\w+=\w+/
23
- actual = @web_module.fetch('test.php', :name => 'foo', :term => 'bar')
24
- assert_match(expected, actual)
25
- end
12
+ def test_build_query_with_multiple_query_params
13
+ expected = "?term=bar&name=foo"
14
+ actual = web_client.send :build_query, { :term => :bar, :name => :foo }
15
+ assert_equal expected, actual
26
16
  end
27
17
 
28
- class WebInterfaceTest < WebTest
29
-
30
- def setup
31
- super
32
- @expected = OpenStruct.new
33
- @expected.base_uri = 'http://www.urbandictionary.com/define.php?term=impromptu'
34
-
35
- @web_module.stub(:open) do |arg|
36
- result = OpenStruct.new
37
- result.base_uri = 'http://www.urbandictionary.com/define.php?term=impromptu'
38
- result
39
- end
40
- end
41
-
42
- def test_returns_response_for_random_word
43
- actual = @web_module.random
44
-
45
- assert_equal(@expected.base_uri, actual.url)
46
- assert_equal(@expected, actual.stream)
47
- end
18
+ def test_build_uri_with_no_query_params
19
+ expected = "http://www.urbandictionary.com/test.php"
20
+ actual = web_client.send :build_uri, :test
21
+ assert_equal expected, actual
22
+ end
48
23
 
49
- def test_returns_response_for_define_with_phrase
50
- actual = @web_module.search('cookie monster')
24
+ def test_build_uri_with_a_query_param
25
+ expected = "http://www.urbandictionary.com/test.php?term=foo"
26
+ actual = web_client.send :build_uri, :test, { :term => :foo }
27
+ assert_equal expected, actual
28
+ end
51
29
 
52
- assert_equal(@expected.base_uri, actual.url)
53
- assert_equal(@expected, actual.stream)
54
- end
30
+ def test_build_response
31
+ response = OpenStruct.new :base_uri =>
32
+ "http://www.urbandictionary.com/define.php?term=impromptu"
33
+ expected = Urban::Web::Response.new response.base_uri, response
34
+ actual = web_client.send :build_response, response
35
+ assert_equal expected, actual
55
36
  end
37
+
56
38
  end
metadata CHANGED
@@ -1,137 +1,148 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: urban
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
11
5
  platform: ruby
12
- authors:
13
- - Thomas Miller
6
+ authors:
7
+ - Tom Miller
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2011-09-10 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2016-01-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: nokogiri
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 1
31
- - 5
32
- - 0
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
33
19
  version: 1.5.0
34
20
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rake
38
21
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 27
45
- segments:
46
- - 0
47
- - 8
48
- version: "0.8"
49
- type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.5.0
27
+ - !ruby/object:Gem::Dependency
52
28
  name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.6'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rdoc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
53
63
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 2
62
- - 0
63
- version: "2.0"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: hoe
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.14'
64
76
  type: :development
65
- version_requirements: *id003
66
- description: Urban is a command line tool that allows you to look up definitions or pull a random definition from Urban Dictionary.
67
- email:
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.14'
83
+ description: |-
84
+ Urban is a command line utility with an API to query definitions from Urban
85
+ Dictionary.
86
+ email:
68
87
  - jackerran@gmail.com
69
- executables:
88
+ executables:
70
89
  - urban
71
90
  extensions: []
72
-
73
- extra_rdoc_files: []
74
-
75
- files:
76
- - .gitignore
77
- - .travis.yml
78
- - Gemfile
91
+ extra_rdoc_files:
92
+ - HISTORY.rdoc
93
+ - Manifest.txt
94
+ - README.rdoc
95
+ files:
96
+ - ".travis.yml"
79
97
  - HISTORY.rdoc
80
98
  - LICENSE
99
+ - Manifest.txt
81
100
  - README.rdoc
82
101
  - Rakefile
83
102
  - bin/urban
84
103
  - lib/urban.rb
85
104
  - lib/urban/cli.rb
86
105
  - lib/urban/dictionary.rb
87
- - lib/urban/version.rb
88
106
  - lib/urban/web.rb
89
- - test/data/impromptu.html
90
- - test/data/missing.html
91
- - test/minitest/stop_light.rb
107
+ - script/test
108
+ - test/fixtures/impromptu.html
109
+ - test/fixtures/missing.html
110
+ - test/fixtures/screens/definition.txt
111
+ - test/fixtures/screens/definition_with_url.txt
112
+ - test/fixtures/screens/definitions.txt
113
+ - test/fixtures/screens/help.txt
114
+ - test/fixtures/screens/invalid_option_error.txt
115
+ - test/fixtures/screens/missing_phrase_error.txt
116
+ - test/fixtures/screens/no_internet_error.txt
92
117
  - test/test_helper.rb
93
118
  - test/urban/cli_test.rb
94
119
  - test/urban/dictionary_test.rb
95
120
  - test/urban/web_test.rb
96
- - urban.gemspec
97
- homepage: https://github.com/tmiller/urban
98
- licenses:
121
+ homepage: http://github.com/tmiller/urban
122
+ licenses:
99
123
  - MIT
124
+ metadata: {}
100
125
  post_install_message:
101
- rdoc_options: []
102
-
103
- require_paths:
126
+ rdoc_options:
127
+ - "--main"
128
+ - README.rdoc
129
+ require_paths:
104
130
  - lib
105
- required_ruby_version: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ requirements:
108
133
  - - ">="
109
- - !ruby/object:Gem::Version
110
- hash: 3
111
- segments:
112
- - 0
113
- version: "0"
114
- required_rubygems_version: !ruby/object:Gem::Requirement
115
- none: false
116
- requirements:
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ requirements:
117
138
  - - ">="
118
- - !ruby/object:Gem::Version
119
- hash: 3
120
- segments:
121
- - 0
122
- version: "0"
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
123
141
  requirements: []
124
-
125
- rubyforge_project: urban
126
- rubygems_version: 1.8.6
142
+ rubyforge_project:
143
+ rubygems_version: 2.2.2
127
144
  signing_key:
128
- specification_version: 3
129
- summary: A command line tool that interfaces with Urban Dictionary.
130
- test_files:
131
- - test/data/impromptu.html
132
- - test/data/missing.html
133
- - test/minitest/stop_light.rb
134
- - test/test_helper.rb
135
- - test/urban/cli_test.rb
136
- - test/urban/dictionary_test.rb
137
- - test/urban/web_test.rb
145
+ specification_version: 4
146
+ summary: Urban is a command line utility with an API to query definitions from Urban
147
+ Dictionary.
148
+ test_files: []
data/.gitignore DELETED
@@ -1,26 +0,0 @@
1
- # OSX
2
- .DS_Store
3
- Icon?
4
- ._*
5
- .Spotlight-V100
6
- .Trashes
7
-
8
- # Vim
9
- .*.sw[a-z]
10
- *.un~
11
- Session.vim
12
-
13
- # Project
14
- *.gem
15
- .bundle
16
- Gemfile.lock
17
- pkg/*
18
- .yardoc
19
- doc/*
20
- coverage/*
21
-
22
-
23
- # Ignore individual preferences
24
- .rvmrc
25
- .rbenv-version
26
- vendor/bundle/*
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in urban.gemspec
4
- gemspec
data/lib/urban/version.rb DELETED
@@ -1,3 +0,0 @@
1
- module Urban
2
- VERSION = '1.0.0'
3
- end
@@ -1,463 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html lang='en-US' xml:lang='en-US' xmlns='http://www.w3.org/1999/xhtml'>
3
- <head><script>var NREUMQ=[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);(function(){var d=document;var e=d.createElement("script");e.type="text/javascript";e.async=true;e.src="https://d1ros97qkrwjf5.cloudfront.net/16/eum/rum.js";var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(e,s);})()</script>
4
- <title>Urban Dictionary: impromptu</title>
5
- <script type='text/javascript'>
6
- //<![CDATA[
7
- var MobileDetector={redirect:function(b,a){if(b&&b.match(/(iPhone|iPod|Android|webOS|Opera Mini|PlayStation Portable)/)){this.go(a)}},go:function(a){window.location=a}};
8
- MobileDetector.redirect(navigator.userAgent, "/iphone/#define?term=impromptu");
9
- //]]>
10
- </script>
11
-
12
-
13
- <!--[if (!IE)|(gte IE 8)]><!-->
14
- <link href="http://static3.urbandictionary.com/assets/base-datauri.css?1314062438" media="screen" rel="stylesheet" type="text/css" />
15
- <!--<![endif]-->
16
- <!--[if lte IE 7]>
17
- <link href="http://static3.urbandictionary.com/assets/base.css?1314062438" media="screen" rel="stylesheet" type="text/css" />
18
- <![endif]-->
19
- <link href="http://feeds.urbandictionary.com/UrbanWordOfTheDay" rel="alternate" title="Urban Word of the Day" type="application/rss+xml" />
20
- <link href="http://static0.urbandictionary.com/favicon.ico?1314062439" rel="shortcut icon" /><link href="http://static0.urbandictionary.com/favicon.ico?1314062439" rel="icon" />
21
-
22
-
23
- <link href='http://static2.urbandictionary.com/osd.xml?1314062439' rel='search' title='Urban Dictionary Search' type='application/opensearchdescription+xml' />
24
- <meta content='Something that is made up on the spot and given little time to gather and present. Usually referring to speeches that are given only a few minutes ...' name='Description' />
25
- <meta content='Something that is made up on the spot and given little time to gather and present. Usually referring to speeches that are given only a few minutes ...' property='og:description' />
26
- <meta content='impromptu' property='og:title' />
27
- <meta content="http://static0.urbandictionary.com/images/og_image.png?1314062439" property="og:image" />
28
- <script type="text/javascript">
29
- //<![CDATA[
30
- var Record={setRecordingCookie:function(a){document.cookie="recording="+a},getRecordingCookie:function(){var a=document.cookie.match("recording=(true|false)");return a?(a[1]=="true"):null},start:function(a){if(Record.getRecordingCookie()===null){Record.setRecordingCookie(Math.random()<a/100)}if(Record.getRecordingCookie()){document.write(unescape("%3Cscript src='"+(("https:"==document.location.protocol)?"https":"http")+"://c.mouseflow.com/projects/38f33478-b73a-4335-a2df-b0f221197471.js' type='text/javascript'%3E%3C/script%3E"))}}};
31
- //]]>
32
- </script>
33
- <script type='text/javascript'>
34
- //<![CDATA[
35
- Record.start(0.001);
36
- //]]>
37
- </script>
38
- <meta content='Urban Dictionary' property='og:site_name' />
39
- </head>
40
- <body class='define_controller'>
41
- <div id='header_background'>
42
- <div id='header_width'>
43
- <div id='header'>
44
- <a href="/" id="logo_anchor"><img alt="" id="logo" src="http://static1.urbandictionary.com/images/logo-holiday.png?1314062439" /></a>
45
- <div id='like_button'>
46
- <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffacebook.com%2Furbandictionary&amp;send=false&amp;layout=button_count&amp;width=100&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
47
- </div>
48
- <div id='form'>
49
- <form action="/define.php" method="get">
50
- <table>
51
- <tr>
52
- <td></td>
53
- <td class='look_up'>look up any word:</td>
54
- </tr>
55
- <tr>
56
- <td>
57
- <div id='autocompleter_spinner' style='display: none'></div>
58
- </td>
59
- <td><input id="term" name="term" tabindex="1" type="text" value="impromptu" /></td>
60
- <td>
61
- <input type='submit' value='search' />
62
- </td>
63
- </tr>
64
- </table>
65
- </form>
66
- </div>
67
- <div id='topnav'>
68
- <a href="/">word of the day</a> <a class="active" href="/popular.php?character=A">dictionary</a> <a href="/thesaurus.php">thesaurus</a> <a href="/names.php">names</a> <a href="/video.list.php">media</a> <a href="/products.php">store</a> <a href="/add.php">add</a> <a href="/editor/staygo.php">edit</a> <a href="http://blog.urbandictionary.com/">blog</a>
69
- </div>
70
- </div>
71
- </div>
72
- </div>
73
- <div class='autocomplete' id='term_list' style='display:none'></div>
74
-
75
- <div id='outer'>
76
- <div class='' id='whole'>
77
- <div class='innernav' id='subnav'>
78
- <a accesskey="1" href="/random.php" title="hot key + 1">random</a> <a href="/popular.php?character=A">A</a> <a href="/popular.php?character=B">B</a> <a href="/popular.php?character=C">C</a> <a href="/popular.php?character=D">D</a> <a href="/popular.php?character=E">E</a> <a href="/popular.php?character=F">F</a> <a href="/popular.php?character=G">G</a> <a href="/popular.php?character=H">H</a> <a class="active" href="/browse.php?word=impromptu">I</a> <a href="/popular.php?character=J">J</a> <a href="/popular.php?character=K">K</a> <a href="/popular.php?character=L">L</a> <a href="/popular.php?character=M">M</a> <a href="/popular.php?character=N">N</a> <a href="/popular.php?character=O">O</a> <a href="/popular.php?character=P">P</a> <a href="/popular.php?character=Q">Q</a> <a href="/popular.php?character=R">R</a> <a href="/popular.php?character=S">S</a> <a href="/popular.php?character=T">T</a> <a href="/popular.php?character=U">U</a> <a href="/popular.php?character=V">V</a> <a href="/popular.php?character=W">W</a> <a href="/popular.php?character=X">X</a> <a href="/popular.php?character=Y">Y</a> <a href="/popular.php?character=Z">Z</a> <a href="/browse.php?character=%2A">#</a> <a href="/yesterday.php?date=2011-08-28">new</a> <a href="/favorites.php">favorites</a>
79
- </div>
80
- <table cellpadding='0' cellspacing='0' id='tablist'>
81
- <tr>
82
- <td id='leftist'>
83
- <div class='prev_next_buttons'>
84
- <a href="#" id="prev_titles" onclick="nearby.go('prev'); return false;" onmouseout="$(this).down().src = &quot;http://static0.urbandictionary.com/images/uparrow.gif?1314062439&quot;" onmouseover="$(this).down().src = &quot;http://static3.urbandictionary.com/images/uparrow_dark.gif?1314062439&quot;"><img src="http://static0.urbandictionary.com/images/uparrow.gif?1314062439" /></a>
85
- <a href="#" id="next_titles" onclick="nearby.go('next'); return false;" onmouseout="$(this).down().src = &quot;http://static3.urbandictionary.com/images/downarrow.gif?1314062439&quot;" onmouseover="$(this).down().src = &quot;http://static2.urbandictionary.com/images/downarrow_dark.gif?1314062439&quot;"><img src="http://static3.urbandictionary.com/images/downarrow.gif?1314062439" /></a>
86
- </div>
87
- <ul id='nearby_titles'>
88
- <li><a href="/define.php?term=Imprimplicate" class="urbantip">Imprimplicate</a></li><li><a href="/define.php?term=imprint" class="urbantip">imprint</a></li><li><a href="/define.php?term=Imprinting" class="urbantip">Imprinting</a></li><li><a href="/define.php?term=imprints" class="urbantip">imprints</a></li><li><a href="/define.php?term=imprisionate" class="urbantip">imprisionate</a></li><li><a href="/define.php?term=Imprisoned%20in%20the%20elevator" class="urbantip">Imprisoned in the elevator</a></li><li><a href="/define.php?term=imprisonment" class="urbantip">imprisonment</a></li><li><a href="/define.php?term=Imprist" class="urbantip">Imprist</a></li><li><a href="/define.php?term=imprn" class="urbantip">imprn</a></li><li><a href="/define.php?term=improbement" class="urbantip">improbement</a></li><li><a href="/define.php?term=Improdiblass" class="urbantip">Improdiblass</a></li><li><a href="/define.php?term=improgae" class="urbantip">improgae</a></li><li><a href="/define.php?term=impromperaneous" class="urbantip">impromperaneous</a></li><li><a href="/define.php?term=Imprompoo" class="urbantip">Imprompoo</a></li><li><a href="/define.php?term=Impromptitude" class="urbantip">Impromptitude</a></li><li class="active">impromptu</li><li><a href="/define.php?term=Impromptu%20Ding%20Dong" class="urbantip">Impromptu Ding Dong</a></li><li><a href="/define.php?term=impromptu%20peanutbutter%20sandwich" class="urbantip">impromptu peanutbutter sandwich</a></li><li><a href="/define.php?term=Impromptu%20Protein%20Party" class="urbantip">Impromptu Protein Party</a></li><li><a href="/define.php?term=impromtu" class="urbantip">impromtu</a></li><li><a href="/define.php?term=impronathon" class="urbantip">impronathon</a></li><li><a href="/define.php?term=improovisation" class="urbantip">improovisation</a></li><li><a href="/define.php?term=impropaganda" class="urbantip">impropaganda</a></li><li><a href="/define.php?term=Improper%20bo%20I%20don%E2%80%99t%20tell%20thou" class="urbantip">Improper bo I don’t tell thou</a></li><li><a href="/define.php?term=improper%20dumpling" class="urbantip">improper dumpling</a></li><li><a href="/define.php?term=improper%20fraction" class="urbantip">improper fraction</a></li><li><a href="/define.php?term=Improperganda" class="urbantip">Improperganda</a></li><li><a href="/define.php?term=impropertuity" class="urbantip">impropertuity</a></li><li><a href="/define.php?term=improprietous" class="urbantip">improprietous</a></li><li><a href="/define.php?term=improps" class="urbantip">improps</a></li><li><a href="/define.php?term=Improstable" class="urbantip">Improstable</a></li><li><a href="/define.php?term=Improta%20Bush" class="urbantip">Improta Bush</a></li><li><a href="/define.php?term=improtantly" class="urbantip">improtantly</a></li><li><a href="/define.php?term=improtivation" class="urbantip">improtivation</a></li><li><a href="/define.php?term=improv" class="urbantip">improv</a></li><li><a href="/define.php?term=Improv%20Everywhere" class="urbantip">Improv Everywhere</a></li><li><a href="/define.php?term=improvasationalist" class="urbantip">improvasationalist</a></li><li><a href="/define.php?term=improveder" class="urbantip">improveder</a></li><li><a href="/define.php?term=improveise" class="urbantip">improveise</a></li><li><a href="/define.php?term=improver" class="urbantip">improver</a></li><li><a href="/define.php?term=improverished" class="urbantip">improverished</a></li>
89
- </ul>
90
- <script type='text/javascript'>
91
- //<![CDATA[
92
- window.onDomLoaded = window.onDomLoaded || [];
93
- window.onDomLoaded.push(function() {
94
- window.nearby = new Nearby(new NearbyView(), "Imprimplicate", "improverished");
95
- });
96
- //]]>
97
- </script>
98
-
99
- <div class='prev_next_buttons'>
100
- <a href="#" id="prev_titles_bottom" onclick="nearby.go('prev'); return false;" onmouseout="$(this).down().src = &quot;http://static0.urbandictionary.com/images/uparrow.gif?1314062439&quot;" onmouseover="$(this).down().src = &quot;http://static3.urbandictionary.com/images/uparrow_dark.gif?1314062439&quot;"><img src="http://static0.urbandictionary.com/images/uparrow.gif?1314062439" /></a>
101
- <a href="#" id="next_titles_bottom" onclick="nearby.go('next'); return false;" onmouseout="$(this).down().src = &quot;http://static3.urbandictionary.com/images/downarrow.gif?1314062439&quot;" onmouseover="$(this).down().src = &quot;http://static2.urbandictionary.com/images/downarrow_dark.gif?1314062439&quot;"><img src="http://static3.urbandictionary.com/images/downarrow.gif?1314062439" /></a>
102
- </div>
103
-
104
- </td>
105
- <td>
106
- <div id='content'><!-- google_ad_section_start --><style>
107
- .related_words { padding: 9px; border: 1px solid #F9C365; margin-bottom: 12px; }
108
- </style>
109
- <div class='related_words text'>
110
- <span id='tags'>
111
- <b>
112
- thesaurus for
113
- <a href="/thesaurus.php?term=impromptu">impromptu</a>:
114
- </b>
115
- <br />
116
-
117
- <a href="/define.php?term=speech" class="urbantip">speech</a>
118
-
119
- <a href="/define.php?term=bitch" class="urbantip">bitch</a>
120
-
121
- <a href="/define.php?term=ad-lib" class="urbantip">ad-lib</a>
122
-
123
- <a href="/define.php?term=extemporaneous" class="urbantip">extemporaneous</a>
124
-
125
- <a href="/define.php?term=party" class="urbantip">party</a>
126
- <a href="/thesaurus.php?term=impromptu">more...</a>
127
- </span>
128
- </div>
129
-
130
- <table id='entries'>
131
- <tr>
132
- <td class='index'>
133
- <a href="http://impromptu.urbanup.com/266132">1.</a>
134
- </td>
135
- <td class='word'>
136
- impromptu
137
- </td>
138
- <td class='tools' id='tools_266132'>
139
- <span class='status'></span>
140
- <span class='thumbs'></span>
141
- </td>
142
- </tr>
143
- <tr>
144
- <td></td>
145
- <td class='text' colspan='2' id='entry_266132'>
146
- <div class="definition">Something that is made up on the spot and given little time to gather and present. Usually referring to speeches that are given only a few minutes to prepare for. </div><div class="example">I had to write an impromptu speech about Anal Cancer in 3 minutes without using the word 'ass' 'anus' 'shit' or 'hair'.</div>
147
- <div class="zazzle_links"><a href="/products.php?term=impromptu&amp;defid=266132"><span class="zazzle_link_text">buy impromptu mugs & shirts</span></a></div>
148
- <div class='greenery'>
149
- by <a href="/author.php?author=Bastardized+Bottomburp" class="author urbantip">Bastardized Bottomburp</a>
150
- <span class='date'>
151
- Sep 26, 2003
152
- </span>
153
- <a href="#" id="share_this_266132" onclick="emailer.toggle($(&quot;share_this_266132&quot;), &quot;http://impromptu.urbanup.com/266132&quot;, &quot;Entry&quot;, 266132, &quot;http://twitter.com/share?text=impromptu%20-%20Something%20that%20is%20made%20up%20on%20the%20spot%20and%20given%20little%20time%20to%20gather%20and%20present.%20U...\u0026url=http%3A%2F%2Furbanup.com%2F266132\u0026via=urbandictionary&quot;); return false;">share this</a>
154
- <a href="/video.php?defid=266132&amp;word=impromptu">add a video</a>
155
- </div>
156
- </td>
157
- </tr>
158
-
159
- <tr>
160
- <td class='index'>
161
- <a href="http://impromptu.urbanup.com/313210">2.</a>
162
- </td>
163
- <td class='word'>
164
- impromptu
165
- </td>
166
- <td class='tools' id='tools_313210'>
167
- <span class='status'></span>
168
- <span class='thumbs'></span>
169
- </td>
170
- </tr>
171
- <tr>
172
- <td></td>
173
- <td class='text' colspan='2' id='entry_313210'>
174
- <div class="definition">On the spot</div><div class="example">When my chik walked in on me with my mistress, I had to make up an impromptu excuse for why my purple headed yogurt slinger was in her tuna taco.</div>
175
- <div class="zazzle_links"><a href="/products.php?term=impromptu&amp;defid=313210"><span class="zazzle_link_text">buy impromptu mugs & shirts</span></a></div>
176
- <div class='greenery'>
177
- by <a href="/author.php?author=Vigilante+DB" class="author urbantip">Vigilante DB</a>
178
- <span class='date'>
179
- Oct 25, 2003
180
- </span>
181
- <a href="#" id="share_this_313210" onclick="emailer.toggle($(&quot;share_this_313210&quot;), &quot;http://impromptu.urbanup.com/313210&quot;, &quot;Entry&quot;, 313210, &quot;http://twitter.com/share?text=impromptu%20-%20On%20the%20spot\u0026url=http%3A%2F%2Furbanup.com%2F313210\u0026via=urbandictionary&quot;); return false;">share this</a>
182
- <a href="/video.php?defid=313210&amp;word=impromptu">add a video</a>
183
- </div>
184
- </td>
185
- </tr>
186
-
187
- <tr>
188
- <td class='index'>
189
- <a href="http://impromptu.urbanup.com/263663">3.</a>
190
- </td>
191
- <td class='word'>
192
- impromptu
193
- </td>
194
- <td class='tools' id='tools_263663'>
195
- <span class='status'></span>
196
- <span class='thumbs'></span>
197
- </td>
198
- </tr>
199
- <tr>
200
- <td></td>
201
- <td class='text' colspan='2' id='entry_263663'>
202
- <div class="definition">Something that is made up on the spot. Can also mean a speech that was made with little or no preparation.</div><div class="example">The drug dealer had to come up with an impromptu excuse to his boss for losing the shipment of crack to the police.</div>
203
- <div class="zazzle_links"><a href="/products.php?term=impromptu&amp;defid=263663"><span class="zazzle_link_text">buy impromptu mugs & shirts</span></a></div>
204
- <div class='greenery'>
205
- by <a href="/author.php?author=AYB" class="author urbantip">AYB</a>
206
- <span class='date'>
207
- Sep 24, 2003
208
- </span>
209
- <a href="#" id="share_this_263663" onclick="emailer.toggle($(&quot;share_this_263663&quot;), &quot;http://impromptu.urbanup.com/263663&quot;, &quot;Entry&quot;, 263663, &quot;http://twitter.com/share?text=impromptu%20-%20Something%20that%20is%20made%20up%20on%20the%20spot.%20Can%20also%20mean%20a%20speech%20that%20was%20made%20with%20lit...\u0026url=http%3A%2F%2Furbanup.com%2F263663\u0026via=urbandictionary&quot;); return false;">share this</a>
210
- <a href="/video.php?defid=263663&amp;word=impromptu">add a video</a>
211
- </div>
212
- </td>
213
- </tr>
214
-
215
- <tr>
216
- <td colspan='3' style='padding: 10px 0 30px 0'>
217
- <div style='width: 300px; margin: 0 auto'>
218
- <script type="text/javascript">
219
- //<![CDATA[
220
- var googletag = googletag || {};
221
- googletag.cmd = googletag.cmd || [];
222
- googletag.cmd.push(function() {
223
- googletag.defineUnit('/1031683/ca-pub-4733233155277872/HP_ATF_300x250', [300, 250], 'dfp_homepage_medium_rectangle').addService(googletag.pubads());
224
- googletag.defineUnit('/1031683/ca-pub-4733233155277872/HP_BTF_300x250', [300, 250], 'dfp_homepage_medium_rectangle_below').addService(googletag.pubads());
225
- googletag.defineUnit('/1031683/ca-pub-4733233155277872/ROS_BTF_728x90', [728, 90], 'dfp_every_page_leaderboard').addService(googletag.pubads());
226
- googletag.defineUnit('/1031683/ca-pub-4733233155277872/ROS_Right_160x60', [160, 600], 'dfp_skyscraper').addService(googletag.pubads());
227
- googletag.defineUnit('/1031683/ca-pub-4733233155277872/Define_300x250', [300, 250], 'dfp_define_rectangle').addService(googletag.pubads());
228
- googletag.defineUnit('/1031683/ca-pub-4733233155277872/ROS_500x250', [475, 250], 'dfp_define_double_rectangle').addService(googletag.pubads());
229
-
230
- googletag.pubads().set("alternate_ad_url", "http://www.urbandictionary.com/google_alternate_ad.html");
231
- googletag.pubads().setTargeting("safe_word", "false");
232
-
233
- googletag.pubads().enableSingleRequest();
234
- googletag.enableServices();
235
- });
236
-
237
- (function() {
238
- var gads = document.createElement('script');
239
- gads.async = true;
240
- gads.type = 'text/javascript';
241
- gads.src = "http://www.googletagservices.com/tag/js/gpt.js";
242
- var node = document.getElementsByTagName('script')[0];
243
- node.parentNode.insertBefore(gads, node);
244
- })();
245
-
246
- //]]>
247
- </script><div id="dfp_define_rectangle" style="width: 300px; height: 250px"><script type="text/javascript">
248
- //<![CDATA[
249
- googletag.cmd.push(function() { googletag.display('dfp_define_rectangle'); });
250
- //]]>
251
- </script></div>
252
- </div>
253
- </td>
254
- </tr>
255
-
256
- </table>
257
- <div id='paginator'>
258
-
259
- </div>
260
- <!-- google_ad_section_end --><div id='email_pane' style='display: none'>
261
- <form action='javascript:void(0)' onsubmit='emailer.sendEmail(); return false'>
262
- <table cellpadding='0' cellspacing='0'>
263
- <tr>
264
- <th>
265
- <label for='permalink'>permalink:</label>
266
- </th>
267
- <td>
268
- <input id='permalink' name='permalink' onclick='this.focus(); this.select()' type='text' />
269
- <input id='shared_id' name='share[shared_id]' type='hidden' />
270
- <input id='shared_type' name='share[shared_type]' type='hidden' value='Entry' />
271
- </td>
272
- </tr>
273
- <tr>
274
- <td></td>
275
- <td>
276
- Share on
277
- <span id='share_links'></span>
278
- </td>
279
- </tr>
280
- <tr id='sendtoafriend'>
281
- <td></td>
282
- <td>
283
- <label for='yours'>Send to a friend</label>
284
- </td>
285
- </tr>
286
- <tr>
287
- <th>
288
- <label for='yours'>your email:</label>
289
- </th>
290
- <td>
291
- <input id='yours' name='share[yours]' type='text' />
292
- </td>
293
- </tr>
294
- <tr>
295
- <th>
296
- <label for='theirs'>their email:</label>
297
- </th>
298
- <td>
299
- <input id='theirs' name='share[theirs]' type='text' />
300
- </td>
301
- </tr>
302
- <tr>
303
- <th>
304
- <label for='comment'>comment:</label>
305
- </th>
306
- <td>
307
- <textarea id="comment" name="share[comment]" rows="3"></textarea>
308
- </td>
309
- </tr>
310
- <tr>
311
- <td></td>
312
- <td>
313
- <input id='subscribe' name='subscribe' type='checkbox' />
314
- <label for='subscribe'> send me the word of the day (it's free)</label>
315
- </td>
316
- </tr>
317
- <tr id='submit'>
318
- <td></td>
319
- <td>
320
- <table>
321
- <tr>
322
- <td>
323
- <input type='submit' value='Send message' />
324
- </td>
325
- <td id='status'></td>
326
- </tr>
327
- </table>
328
- </td>
329
- </tr>
330
- </table>
331
- </form>
332
- </div>
333
-
334
- </div>
335
- </td>
336
- <td id='rightist'>
337
- <div id="dfp_skyscraper" style="width: 160px; height: 600px"><script type="text/javascript">
338
- //<![CDATA[
339
- googletag.cmd.push(function() { googletag.display('dfp_skyscraper'); });
340
- //]]>
341
- </script></div>
342
- </td>
343
- </tr>
344
- </table>
345
-
346
- <div id='bottomad'>
347
- <div id="dfp_every_page_leaderboard" style="width: 728px; height: 90px; margin: 0 auto"><script type="text/javascript">
348
- //<![CDATA[
349
- googletag.cmd.push(function() { googletag.display('dfp_every_page_leaderboard'); });
350
- //]]>
351
- </script></div>
352
- </div>
353
- </div>
354
- <div id='copyright'>
355
- <a href="/">Urban Dictionary</a>
356
- <span id='years'>
357
- &copy;1999-2011
358
- </span>
359
- <a href='/tos.php'>terms of service</a>
360
- <a href='/privacy.php'>privacy</a>
361
- <a href='/feedback.php'>feedback</a>
362
- <a href='/editor/remove.php'>remove</a>
363
- <a href='/ads.php'>advertise</a>
364
- <a href='/poweredby.php'>technology</a>
365
- <a href='http://jobs.urbandictionary.com/'>jobs</a>
366
- <a href="/live_support.php" id="live_support" onclick="popAndFocus(&quot;/live_support.php&quot;, &quot;live support&quot;); return false;" style="display: none">live support</a>
367
- </div>
368
-
369
- <table class='offsite'>
370
- <tr>
371
- <td>
372
- <table class='facebook'>
373
- <tr>
374
- <td>
375
- <a href="http://feeds.urbandictionary.com/UrbanWordOfTheDay" onclick="urchinTracker(&quot;/outgoing/http_feeds_urbandictionary_com_UrbanWordOfTheDay&quot;)"><div class="rss_image"></div></a>
376
- </td>
377
- <td>
378
- <a href="http://feeds.urbandictionary.com/UrbanWordOfTheDay" onclick="urchinTracker(&quot;/outgoing/http_feeds_urbandictionary_com_UrbanWordOfTheDay&quot;)">add via <b>rss</b></a>
379
- <br />
380
- <a href="http://www.google.com/calendar/render?cid=http%3A%2F%2Fwww.urbandictionary.com%2Fdaily.ics" onclick="urchinTracker(&quot;/outgoing/http_www_google_com_calendar_render_cid_http_A_F_Fwww_urbandictionary_com_Fdaily_ics&quot;)">or <b>google calendar</b></a>
381
- </td>
382
- </tr>
383
- </table>
384
- </td>
385
- <td>
386
- <table class='facebook'>
387
- <tr>
388
- <td>
389
- <a href="http://www.facebook.com/profile.php?id=6295613171" onclick="urchinTracker(&quot;/outgoing/http_www_facebook_com_profile_php_id&quot;)"><div class="facebook_image"></div></a>
390
- </td>
391
- <td>
392
- <a href="http://www.facebook.com/profile.php?id=6295613171" onclick="urchinTracker(&quot;/outgoing/http_www_facebook_com_profile_php_id&quot;)">add <b>urban dictionary</b><br/>on <b>facebook</b></a>
393
- </td>
394
- </tr>
395
- </table>
396
- </td>
397
- <td>
398
- <table class='facebook'>
399
- <tr>
400
- <td>
401
- <div class='iphone_image'></div>
402
- </td>
403
- <td>
404
- search ud
405
- <br />
406
- <a href="http://iphone.urbandictionary.com/" onclick="urchinTracker(&quot;/outgoing/http_iphone_urbandictionary_com&quot;)">from your <b>phone</b></a>
407
- <br />
408
- <a href="/sms.php" onclick="urchinTracker(&quot;/outgoing/sms_php&quot;)">or via <b>txt</b></a>
409
- </td>
410
- </tr>
411
- </table>
412
- </td>
413
- <td>
414
- <table class='facebook'>
415
- <tr>
416
- <td>
417
- <a href="http://twitter.com/urbandaily/" onclick="urchinTracker(&quot;/outgoing/http_twitter_com_urbandaily&quot;)"><div class="twitter_image"></div></a>
418
- </td>
419
- <td>
420
- <a href="http://twitter.com/urbandaily/" onclick="urchinTracker(&quot;/outgoing/http_twitter_com_urbandaily&quot;)"><b>follow urbandaily</b><br/>on twitter</a>
421
- </td>
422
- </tr>
423
- </table>
424
- </td>
425
- </tr>
426
- </table>
427
-
428
- </div>
429
- <script src="http://static2.urbandictionary.com/assets/base.js?1314062438" type="text/javascript"></script>
430
- <script type='text/javascript'>
431
- //<![CDATA[
432
- var host_env = new HostEnv(document.location.hostname);
433
- Uncacheable.instance.load([266132,313210,263663], host_env.uncacheableUrl());
434
- //]]>
435
- </script>
436
-
437
-
438
-
439
- <script type="text/javascript">
440
-
441
- var _gaq = _gaq || [];
442
- _gaq.push(['_setAccount', "UA-31805-1"]);
443
- _gaq.push(['_trackPageview']);
444
-
445
- (function() {
446
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
447
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
448
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
449
- })();
450
-
451
- </script>
452
-
453
- <!-- Start Quantcast tag -->
454
- <script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>
455
- <script type="text/javascript">
456
- _qacct="p-77H27_lnOeCCI";quantserve();</script>
457
- <noscript>
458
- <img src="http://pixel.quantserve.com/pixel/p-77H27_lnOeCCI.gif" style="display: none" height="1" width="1" alt=""/></noscript>
459
- <!-- End Quantcast tag -->
460
-
461
-
462
- <script type="text/javascript" charset="utf-8">NREUMQ.push(["nrf2","beacon-1.newrelic.com","77b5945d2d",131063,"cFoIQEcMXQ5TSh4FB1VcCFEaCl8GU0A=",1,41])</script></body>
463
- </html>