bitly 1.1.2 → 2.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +36 -3
  3. data/.rspec +3 -0
  4. data/.travis.yml +5 -2
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +5 -2
  7. data/History.txt +18 -1
  8. data/LICENSE.md +1 -1
  9. data/README.md +151 -58
  10. data/Rakefile +4 -9
  11. data/bin/console +14 -0
  12. data/bin/oauth +10 -0
  13. data/bin/setup +8 -0
  14. data/bitly.gemspec +24 -29
  15. data/config/env.yml.example +5 -0
  16. data/docs/authentication.md +51 -0
  17. data/docs/bitlinks.md +2 -0
  18. data/docs/branded_short_domains.md +20 -0
  19. data/docs/groups.md +80 -0
  20. data/docs/oauth_apps.md +20 -0
  21. data/docs/organizations.md +74 -0
  22. data/docs/premium_apis.md +0 -0
  23. data/docs/users.md +1 -0
  24. data/lib/bitly.rb +6 -7
  25. data/lib/bitly/api.rb +16 -0
  26. data/lib/bitly/api/base.rb +22 -0
  27. data/lib/bitly/api/bitlink.rb +341 -0
  28. data/lib/bitly/api/bitlink/clicks_summary.rb +35 -0
  29. data/lib/bitly/api/bitlink/deeplink.rb +29 -0
  30. data/lib/bitly/api/bitlink/link_click.rb +74 -0
  31. data/lib/bitly/api/bitlink/paginated_list.rb +51 -0
  32. data/lib/bitly/api/bsd.rb +24 -0
  33. data/lib/bitly/api/click_metric.rb +185 -0
  34. data/lib/bitly/api/client.rb +588 -0
  35. data/lib/bitly/api/group.rb +232 -0
  36. data/lib/bitly/api/group/preferences.rb +73 -0
  37. data/lib/bitly/api/list.rb +22 -0
  38. data/lib/bitly/api/oauth_app.rb +26 -0
  39. data/lib/bitly/api/organization.rb +104 -0
  40. data/lib/bitly/api/shorten_counts.rb +61 -0
  41. data/lib/bitly/api/user.rb +107 -0
  42. data/lib/bitly/error.rb +33 -0
  43. data/lib/bitly/http.rb +6 -0
  44. data/lib/bitly/http/adapters/net_http.rb +27 -0
  45. data/lib/bitly/http/client.rb +33 -0
  46. data/lib/bitly/http/request.rb +116 -0
  47. data/lib/bitly/http/response.rb +65 -0
  48. data/lib/bitly/oauth.rb +109 -0
  49. data/lib/bitly/version.rb +3 -1
  50. metadata +88 -108
  51. data/Manifest +0 -37
  52. data/lib/bitly/url.rb +0 -103
  53. data/lib/bitly/utils.rb +0 -57
  54. data/lib/bitly/v3.rb +0 -14
  55. data/lib/bitly/v3/bitly.rb +0 -7
  56. data/lib/bitly/v3/country.rb +0 -13
  57. data/lib/bitly/v3/day.rb +0 -13
  58. data/lib/bitly/v3/missing_url.rb +0 -15
  59. data/lib/bitly/v3/oauth.rb +0 -41
  60. data/lib/bitly/v3/realtime_link.rb +0 -18
  61. data/lib/bitly/v3/referrer.rb +0 -13
  62. data/lib/bitly/v3/url.rb +0 -154
  63. data/test/bitly/test_client.rb +0 -266
  64. data/test/bitly/test_config.rb +0 -28
  65. data/test/bitly/test_url.rb +0 -167
  66. data/test/bitly/test_utils.rb +0 -79
  67. data/test/fixtures/cnn.json +0 -1
  68. data/test/fixtures/cnn_and_google.json +0 -1
  69. data/test/fixtures/expand_cnn.json +0 -1
  70. data/test/fixtures/expand_cnn_and_google.json +0 -1
  71. data/test/fixtures/google_and_cnn_info.json +0 -1
  72. data/test/fixtures/google_info.json +0 -1
  73. data/test/fixtures/google_stats.json +0 -1
  74. data/test/fixtures/shorten_error.json +0 -1
  75. data/test/test_helper.rb +0 -39
@@ -1,79 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
2
-
3
- class TestUtils < Minitest::Test
4
- include Bitly::Utils
5
- API_VERSION = '2.0.1'
6
-
7
- context "text utils" do
8
- should "underscore a word" do
9
- assert_equal "hello_world", underscore("HelloWorld")
10
- end
11
- should "create a hash from a bitly url" do
12
- assert_equal "hello", create_hash_from_url("http://bit.ly/hello")
13
- end
14
- should "create a hash from a jmp url" do
15
- assert_equal "hello", create_hash_from_url("http://j.mp/hello")
16
- end
17
- end
18
-
19
- context "class utils" do
20
- should "turn a key value pair into an instance variable" do
21
- attr_define('hello','goodbye')
22
- assert_equal @hello, "goodbye"
23
- end
24
-
25
- should "turn a hash into instance variables" do
26
- instance_variablise({'hello' => 'goodbye'}, ['hello'])
27
- assert_equal @hello, "goodbye"
28
- end
29
-
30
- should "not turn nonspecified variables into instance variables" do
31
- instance_variablise({'hello' => 'goodbye'}, [])
32
- assert !(defined? @hello)
33
- end
34
- end
35
-
36
- context "creating a url" do
37
- setup do
38
- @api_key = api_key
39
- @login = login
40
- end
41
- should "contain all the basic information" do
42
- url = create_url.to_s
43
- assert url.include?('https://api-ssl.bitly.com/')
44
- assert url.include?("version=#{API_VERSION}")
45
- assert url.include?("apiKey=#{api_key}")
46
- assert url.include?("login=#{login}")
47
- end
48
- should "contain the right resource" do
49
- url = create_url('shorten').to_s
50
- assert url.include?('/shorten')
51
- end
52
- should "contain extra parameters" do
53
- url = create_url('shorten', :longUrl => 'http://google.com').to_s
54
- assert url.include?("longUrl=#{CGI.escape('http://google.com')}")
55
- end
56
- end
57
-
58
- context "fetching a url" do
59
- context "successfully" do
60
- setup do
61
- stub_get("http://example.com","cnn.json")
62
- end
63
- should "return a json object successfully" do
64
- result = get_result(URI.join("http://example.com"))
65
- assert_equal Hash, result.class
66
- end
67
- end
68
- context "unsuccessfully" do
69
- setup do
70
- stub_get("http://example.com", 'shorten_error.json')
71
- end
72
- should "raise BitlyError" do
73
- assert_raises BitlyError do
74
- get_result(URI.join("http://example.com"))
75
- end
76
- end
77
- end
78
- end
79
- end
@@ -1 +0,0 @@
1
- { "errorCode": 0, "errorMessage": "", "results": { "http://cnn.com": { "hash": "31IqMl", "shortKeywordUrl": "", "shortUrl": "http://bit.ly/15DlK", "userHash": "15DlK" } }, "statusCode": "OK" }
@@ -1 +0,0 @@
1
- { "errorCode": 0, "errorMessage": "", "results": { "http://cnn.com": { "hash": "31IqMl", "shortKeywordUrl": "", "shortUrl": "http://bit.ly/15DlK", "userHash": "15DlK" }, "http://google.com": { "hash": "3j4ir4", "shortKeywordUrl": "", "shortUrl": "http://bit.ly/11etr", "userHash": "11etr" } }, "statusCode": "OK" }
@@ -1 +0,0 @@
1
- { "errorCode": 0, "errorMessage": "", "results": { "31IqMl": { "longUrl": "http://cnn.com/" } }, "statusCode": "OK" }
@@ -1 +0,0 @@
1
- { "errorCode": 0, "errorMessage": "", "results": { "15DlK": { "longUrl": "http://cnn.com/" }, "3j4ir4": { "longUrl": "http://google.com/" } }, "statusCode": "OK" }
@@ -1 +0,0 @@
1
- { "errorCode": 0, "errorMessage": "", "results": { "31IqMl": { "calais": {}, "calaisId": "", "calaisResolutions": {}, "contentLegth": 284.0, "contentLength": "", "contentType": "text/html", "exif": {}, "fileExtension": "", "globalHash": "31IqMl", "hash": "31IqMl", "htmlMetaDescription": "CNN.com delivers the latest breaking news and information on the latest top stories, weather, business, entertainment, politics, and more. For in-depth coverage, CNN.com provides special reports, video, audio, photo galleries, and interactive guides.", "htmlMetaKeywords": [ "CNN", "CNN news", "CNN.com", "CNN TV", "news", "news online", "breaking news", "U.S. news", "world news", "weather", "business", "CNN Money", "sports", "politics", "law", "technology", "entertainment", "education", "travel", "health", "special reports", "autos", "developing story", "news video", "CNN Intl" ], "htmlTitle": "CNN.com - Breaking News, U.S., World, Weather, Entertainment & Video News", "id3": {}, "indexed": 1246563927, "keyword": "", "keywords": [], "longUrl": "http://cnn.com/", "metacarta": [], "mirrorUrl": "", "shortenedByUser": "bitly", "surbl": 0, "thumbnail": { "large": "http://s.bit.ly/bitly/31IqMl/thumbnail_large.png", "medium": "http://s.bit.ly/bitly/31IqMl/thumbnail_medium.png", "small": "http://s.bit.ly/bitly/31IqMl/thumbnail_small.png" }, "urlFetched": "http://www.cnn.com/", "userHash": "", "users": [ "shmooved", "bitlybookmarklet", "thepalermoproject", "soundcloud", "todd", "johnb", "gfc", "selias22", "heme", "heavensrevenge", "tedroden", "showpopr", "toma", "invokemedia", "jonsteinberg", "shmoop", "crkn", "spol", "neilw", "superamit", "tadwook", "timkl", "elmerfudd", "directeur", "jamescrowley", "tickerhound", "twitterhound", "mobilemind", "thismagazine", "mpminer", "nok", "eljojo", "dumpkopf", "spreadmob", "nishith", "chorrell", "dave", "isayel", "revrev", "ideacol", "adelevie", "b2c", "zen", "tweepletwak", "stephdau", "jeton", "hiteck", "sonidolocal", "cavorite", "jay", "rajeshkp", "mailplane", "sbtodd", "bitohoney", "detect", "artd", "ivankirigin", "NeilCrosby", "mskadu", "dmpro", "millette", "mm", "aweissman", "nearlybot", "ajasver", "orenus", "yunfan", "vipeers", "michel", "spraycode", "fidlr", "supersuf", "abernathy", "zellmi", "kortina", "bitlyapidemo", "hp", "bojonas", "nickware", "adenner", "sigepjedi", "austinhill", "tigol", "vranx", "fabinho", "simonches", "RichMann", "claystreet", "trendly", "mzehrer", "TheN2S", "ffo", "mcgarty", "unquabain", "d", "springpad", "motuit", "sandya", "jstautz", "polymergirl", "HED", "colbypalmer", "patched", "vx", "trailerreview", "backtype", "nukirk", "tmadge", "garrettw", "runk", "dbingham", "ckaroli", "hsetty", "sharpshoot", "mamund", "gestes", "thesethings", "propel", "marsrc", "halvfet", "berberich", "imath", "mahawkins", "hayduke", "icecoldnews", "bren", "claudine", "munim", "utatane", "tanel", "karuizawa", "hpduong", "fewill", "JDM", "indbs", "chaodoze", "haydenonline", "matyyy", "shanink", "roguepost", "chad", "emrox", "bitlyspreadsheets", "evansolomon", "milq", "twitterfeed", "tweetieapp", "massless", "khuckvale", "iminlikewithyou", "bumpasaurus@gmail.com", "htmiguel", "shorter", "eh270", "Joe", "twittergadget", "quotd", "scotster", "bitlypreview", "gavola", "banterability", "SocialScope", "justhunger", "d2kagw", "Sam@TheCellist42.com", "manderson_ohio@yahoo.com", "bensmithuk", "gamers600", "magicquotes", "tweetthis", "ubervu", "bitlybox", "toledorodney", "retaggr", "sedwot", "Kersny", "bcse", "andy@commadelimited.com", "sreenivas", "z33m", "urlpackager", "dpjanes", "philnash", "bassdread", "Siriquelle", "trixtur", "austinmoody", "tav", "ivansf", "jfredson", "xklark", "srijken", "ttomegachunk", "AsaBerd", "softronic", "bfo", "royboyjoytoy2", "danl", "noelb", "thingsinjars", "commadelimited", "wanderingstan", "tweetdeckapi", "littlesnapper", "tweetmeme", "jps", "droolr", "man0l", "portaldofregues", "jugo", "ktgy", "twitterrific", "elbertf", "shareaholic", "rayd", "kengeo", "api@zensify.com", "shoutnow", "teisam", "bguthrie", "besttechdeals", "zensify", "icyou", "dwellicious", "raven", "kcu", "najimi", "howardbaines", "fitzage", "domado16", "tc", "bradarsenault", "trendyobot", "powertwitter", "netpro2k", "concerthash", "twtcode", "lizzer", "mefeed", "zacwest", "nleveler", "emendappdev", "emendapp", "redbassett", "epage", "codemypantsoff", "Urgo", "calais", "outbrain", "razorfishca", "toutmontreal", "quietube", "twiggler", "samlii", "userfly", "abrahamlloyd", "carlsverre", "dunkjmcd", "rubenolsen", "quotablebooks", "4gemedia", "rival", "operaportal", "charitybuzz", "brant", "chartbeat", "tweeklyfm", "ronn", "concept52", "coupa", "owlread", "scottkarp", "linkbitch", "vodpod", "slashgear", "arnaudsj", "bootstrap", "earthclassmail", "unhub", "kiko", "coldkeyboard", "madnashua", "fabiopili", "kaspar", "larrynichols", "trustmap", "codepress", "tivowatcher", "rossimo", "twhirl", "shanzynga", "ghuru", "allgamblingnews", "betternet", "edwinwang", "jarred", "picnik", "thismoment", "zocdoc", "thetechmogul", "rajesh", "yotify", "brad", "northisup", "dsa", "endurancejunkies", "mybooo", "geekboys", "prit", "altosresearch", "haitai", "vinhkhanhit", "gymsnearby", "snuten", "inewsapp", "flipflopr", "plexium", "cotweet", "mytrade", "wertletheturtle", "joestump", "zimmeee", "dcinzona", "nagesh", "thinkphp", "dailyfill", "vijaypatil", "amarkova1982", "vdibart", "keineahnung", "roosterteeth", "masterbaytor", "eightlines", "boctor", "crunch", "kbychu", "modaira", "sysdomatic", "jeffreytierney", "neonova", "theschnaz", "ez", "feedmy", "twitterauction", "twikini", "johnnywander", "fdeguzman", "oriolfb", "taftech", "mressay", "tbbtsite", "pricegrab", "dbperry", "peraperaprv", "atrothman223", "kcbigring", "theseries", "docgroove", "connections", "mab", "james", "cweider", "mistabell", "glennpmn", "mecravem", "icssidearm", "lewiswebdev", "philipecoutinho", "rmo", "takkyun", "to", "tweetvisor", "bim", "smonev", "krisempire", "petercasier", "laitaowa", "LaptopHeaven", "ruggedelegance", "odtv", "laz75", "eight7teen", "tweetevents", "gamespress", "elfster", "bobbyjason", "matlab", "fanfou", "rakurakuinc", "yegle", "dativestudios", "articleslash", "jrcdude", "adslzone", "shortmoney", "cutethingsinbed", "nealkerickson", "tootairapp", "gksperling", "tzangms", "jparkers", "textcube", "cmccann", "linuxkido", "noviceprogram", "voltron43", "aroussi", "turkerz", "janbui", "stockshouter", "mozbox", "nibirutech", "brotchie", "darkua", "wsmith", "t24kurage", "bodu", "imified", "vgdotd", "chcf", "everynumberone", "tweetnewz", "catshelpdesk", "simplybox", "dailyroads", "cookbot", "anirig", "gamesbond", "invernizzi", "fekaylius", "changents", "vanmacguy", "trendytweetsbitly", "adiumofficial", "webmeme", "leedumond", "jyro", "michaeld", "nsls", "crypto", "karthicksethu", "petermorano", "glipt", "rubayeet", "cutiethread", "insane", "pivotaltweed", "AdamHertz", "merchants", "industrie", "kaku1969", "xtw", "eanders", "discocreative", "astexception", "raineandhorne", "sparwelt", "kabayan", "image01", "tweetquip", "ischa", "godrops", "360works", "pasteshot", "jfinegold", "textlogic", "jmgtan", "aaronrussell", "iwasinturkey", "mattpowell", "captainstupid", "jove", "timanrebel", "delicious", "danielrehner", "aaldrich", "mychurch", "pareshvarde", "shrisha", "earlyshen", "dailymile", "hashads", "jopie", "feedalizr", "kennstdueinen", "md117", "cliqz", "newrelic", "milanzajic", "inkzee", "mikecosentino", "twilightaktuell", "rjae", "kelvinator44", "jobomix", "vitalik", "feedagg", "changcommaalex", "tzah", "24ur", "jobcast", "toratto", "talkwit", "metricstaxi", "nzeltzer", "alexweber", "goodwill", "streetfire", "jurai", "cpgroups", "emptyspaceads", "googlenewsjp", "craigae", "2night", "eoxlive", "kijijicanada", "wiglu", "openaccessweek", "anyclip", "dz0ny", "bawigga", "spazcore", "spazcer", "kevinmarks", "casarotti", "dpctest", "efusionid", "annstark", "cristdrive", "r2d2", "elwoodicious", "infopirat", "snoxd", "codejunky1", "sp33dfr34ksd", "jumpinggrendel", "optifyshorten", "oodlelistings", "blainetology", "iproperty", "twtbks", "prashantm", "drry", "chango", "jreynar", "rdaum", "kikinshare", "odinjobs", "wegame", "twse", "beatter", "launchset", "lyricskeeper", "wolfgang", "clickability", "yamli", "alexbosworth", "cashiesuktest", "meateam", "abartling", "fresheneesz", "dangerbell", "proxifeed", "twatme", "boyplankton", "wbio", "skychirp", "slideshare", "keepertestaccount", "valerietaesch", "splab", "gameproapi", "chssystems", "gobyo", "altcanvas", "ankitparekh", "dylanreeve", "sponsorlab", "socialdeck", "denisgurski", "boblog", "dprothro", "syberplanet", "marcparadise", "moneymakerhyip", "chrisedgemon", "camthompson", "nassersala", "meloco32", "ibiboisms", "mesodata", "jewishtimes", "izual", "infosage", "wac", "googlebooks", "buddybrain", "monk", "krishnan", "dothetest", "aktnow", "solmeliacuba" ], "version": 1.0 }, "3j4ir4": { "calais": {}, "calaisId": "", "calaisResolutions": {}, "contentLength": "", "contentType": "text/html; charset=ISO-8859-1", "exif": {}, "globalHash": "3j4ir4", "hash": "3j4ir4", "htmlMetaDescription": "", "htmlMetaKeywords": "", "htmlTitle": "Google", "id3": {}, "keyword": "", "keywords": [], "longUrl": "http://google.com/", "metacarta": [], "mirrorUrl": "", "shortenedByUser": "bitly", "surbl": 0, "thumbnail": { "large": "http://s.bit.ly/bitly/3j4ir4/thumbnail_large.png", "medium": "http://s.bit.ly/bitly/3j4ir4/thumbnail_medium.png", "small": "http://s.bit.ly/bitly/3j4ir4/thumbnail_small.png" }, "userHash": "", "users": [ "kortina", "jay", "bitlybookmarklet", "runcible", "ideacol", "spol", "adrian33", "debajit", "follow", "cosmic", "bitlyspreadsheets", "bitlyapidemo", "mskadu", "betons42", "colbypalmer", "derekpcollins", "enricus", "twitchboard", "massless", "grader", "nickware", "GeekLad", "bumpasaurus@gmail.com", "wac", "planetsdb", "bitlypreview", "twittergadget", "htmiguel", "shorter", "movies", "books", "tunes", "amelnikova", "Sam@TheCellist42.com", "samferry", "tboid", "manderson_ohio@yahoo.com", "benshead", "tbc", "gabe", "shmooved", "tweetieapp", "tweetthis", "mannincw", "newsx", "thefireus", "bitlybox", "chirp", "ashit@jooners.com", "z33m", "urlpackager", "philnash", "sreenivas", "lagiator", "kissmetrics", "matthewfl", "bobbyw", "cotweet", "alexannese", "richardxthripp", "tanel", "jfredson", "lynettechandler", "louismirra", "mattrobs", "stillframe", "ttomegachunk", "Inverted", "falicon", "royboyjoytoy2", "psifertex", "Dien", "tweetdeckapi", "dropiodev", "jasonkhanlar", "tweetalink", "commadelimited", "bck", "bigbig", "cspath", "bitlytextmate", "addtoany", "fitfindr", "adenner", "maximz2005", "grigs", "spipeshop", "omgig", "kortina101", "c4rves", "thingsinjars", "matthewfallshaw", "bguthrie", "powertwitter", "reduxo", "tweettrackjs", "loucypher", "nullwaver", "troynt", "bseanvt", "tc", "theonion", "dahammer", "twtcode", "mefeed", "emendapp", "emendappdev", "outbrain", "redbassett", "calais", "eurleif", "digomatic", "mc", "garno", "obbyyoyo", "lollapalooza", "twitscoop", "carlsverre", "ktgy", "cstejerean", "4gemedia", "zakgrim", "owlread", "ratsgoboom", "jayhickey", "emojitales", "ringlerun", "kupona", "renjithdas", "copress", "larrynichols", "bitlify", "pathfinder", "searchengineland", "raaartrex", "unhub", "twhirl", "rossimo", "cvertex", "spam4aj", "rrs", "mattietk", "jfdurocher", "josephscott", "imharoon2003", "pope52", "alexmg", "askyourtango", "rajesh", "tejas", "rubsta", "completelynovel", "hi675", "collegejersey", "altosresearch", "haitai", "gymsnearby", "artfire", "vision2000", "ivansf", "polymar", "anadeau", "wealltv", "arc90", "demnow", "labria", "wertletheturtle", "kiwiscanfly", "oliverash", "alexcvo", "dcinzona", "uservoice", "bwillums", "zupadupa", "feedmy", "corinne", "askme", "twikini", "chango", "mp3bible", "agqnetwork", "taftech", "atrothman223", "tbbtsite", "firerabbit", "spbose", "spellrus", "fn7", "bsd4pl", "groupcard", "monitter", "cweider", "mistabell", "ayn", "miki", "twitterrific", "bim", "seb2point0", "moomerman", "avilasexy", "zachera", "ksharkey", "obijan", "lostfilm", "magicscientist", "hmi", "ruggedelegance", "mogeethis", "nishantmodak", "talagy1", "delicious", "nickt", "opccalendar", "brightbold", "samuel", "gnintendo", "aurorafeint", "pkumat", "spinnaker", "opinmind", "drawohara", "ideelitest", "voltron43", "jolleyjoe", "orionlee", "fastdove", "stockshouter", "scrabbly", "darkua", "thangamkvp", "kanjifandom", "360hubs", "vivocom", "jepeng", "joemccann", "allynbauer", "destroytwitter", "medium", "bpark08", "twitknights", "adiumofficial", "leedumond", "confluxgroup", "40limbo", "cwalcott", "karthicksethu", "pron", "planettagger", "switchonthecode", "izeasponsoredtweets", "merchants", "humptydumptyegg", "user121", "andav", "cutiethread", "vmarquez", "hopkinsju", "tweetsimple", "saasbit", "aaad", "gohewitt", "yusuke0927", "vinced45", "fbmore", "northisup", "tt01311", "bleetbox", "gyokojp", "dentest", "headlineshirts", "gethighnote", "hashads", "racevine", "kelvinator44", "ajc308", "tweetw", "ibanezyaya", "abiko", "goseedo", "tzah", "gimmeanswers", "twitiq", "lehrblogger", "metricstaxi", "nzeltzer", "addly", "scph", "jrcdude", "mderk", "pullus", "googlenewsjp", "rjinla", "smithworx", "antiuser", "injeqt", "lovelykby", "wiglu", "demandspot", "spazcore", "ka2hiro", "namnum", "sventures", "twittersales", "buttreygoodness", "nagesh", "tribescape", "ohun002", "orsiso", "orymate", "yossilac", "klango", "sp33dfr34ksd", "tracksite", "tonysteward", "davidwalshblog", "ramses", "rdaum", "ookong", "pieceoflena", "wowgather", "caribryne", "alexbosworth", "apoenam", "keepertestaccount", "slideshare", "splab", "ankitparekh", "xtips", "hexmode", "ryanl229", "syberplanet", "gotwalt", "othman", "bunte", "tmeryu", "e", "pjstadig", "timi", "retweetjs", "sobees" ], "version": 1.0 } }, "statusCode": "OK" }
@@ -1 +0,0 @@
1
- { "errorCode": 0, "errorMessage": "", "results": { "3j4ir4": { "calais": {}, "calaisId": "", "calaisResolutions": {}, "contentLength": "", "contentType": "text/html; charset=ISO-8859-1", "exif": {}, "globalHash": "3j4ir4", "hash": "3j4ir4", "htmlMetaDescription": "", "htmlMetaKeywords": "", "htmlTitle": "Google", "id3": {}, "keyword": "", "keywords": [], "longUrl": "http://google.com/", "metacarta": [], "mirrorUrl": "", "shortenedByUser": "bitly", "surbl": 0, "thumbnail": { "large": "http://s.bit.ly/bitly/3j4ir4/thumbnail_large.png", "medium": "http://s.bit.ly/bitly/3j4ir4/thumbnail_medium.png", "small": "http://s.bit.ly/bitly/3j4ir4/thumbnail_small.png" }, "userHash": "", "users": [ "kortina", "jay", "bitlybookmarklet", "runcible", "ideacol", "spol", "adrian33", "debajit", "follow", "cosmic", "bitlyspreadsheets", "bitlyapidemo", "mskadu", "betons42", "colbypalmer", "derekpcollins", "enricus", "twitchboard", "massless", "grader", "nickware", "GeekLad", "bumpasaurus@gmail.com", "wac", "planetsdb", "bitlypreview", "twittergadget", "htmiguel", "shorter", "movies", "books", "tunes", "amelnikova", "Sam@TheCellist42.com", "samferry", "tboid", "manderson_ohio@yahoo.com", "benshead", "tbc", "gabe", "shmooved", "tweetieapp", "tweetthis", "mannincw", "newsx", "thefireus", "bitlybox", "chirp", "ashit@jooners.com", "z33m", "urlpackager", "philnash", "sreenivas", "lagiator", "kissmetrics", "matthewfl", "bobbyw", "cotweet", "alexannese", "richardxthripp", "tanel", "jfredson", "lynettechandler", "louismirra", "mattrobs", "stillframe", "ttomegachunk", "Inverted", "falicon", "royboyjoytoy2", "psifertex", "Dien", "tweetdeckapi", "dropiodev", "jasonkhanlar", "tweetalink", "commadelimited", "bck", "bigbig", "cspath", "bitlytextmate", "addtoany", "fitfindr", "adenner", "maximz2005", "grigs", "spipeshop", "omgig", "kortina101", "c4rves", "thingsinjars", "matthewfallshaw", "bguthrie", "powertwitter", "reduxo", "tweettrackjs", "loucypher", "nullwaver", "troynt", "bseanvt", "tc", "theonion", "dahammer", "twtcode", "mefeed", "emendapp", "emendappdev", "outbrain", "redbassett", "calais", "eurleif", "digomatic", "mc", "garno", "obbyyoyo", "lollapalooza", "twitscoop", "carlsverre", "ktgy", "cstejerean", "4gemedia", "zakgrim", "owlread", "ratsgoboom", "jayhickey", "emojitales", "ringlerun", "kupona", "renjithdas", "copress", "larrynichols", "bitlify", "pathfinder", "searchengineland", "raaartrex", "unhub", "twhirl", "rossimo", "cvertex", "spam4aj", "rrs", "mattietk", "jfdurocher", "josephscott", "imharoon2003", "pope52", "alexmg", "askyourtango", "rajesh", "tejas", "rubsta", "completelynovel", "hi675", "collegejersey", "altosresearch", "haitai", "gymsnearby", "artfire", "vision2000", "ivansf", "polymar", "anadeau", "wealltv", "arc90", "demnow", "labria", "wertletheturtle", "kiwiscanfly", "oliverash", "alexcvo", "dcinzona", "uservoice", "bwillums", "zupadupa", "feedmy", "corinne", "askme", "twikini", "chango", "mp3bible", "agqnetwork", "taftech", "atrothman223", "tbbtsite", "firerabbit", "spbose", "spellrus", "fn7", "bsd4pl", "groupcard", "monitter", "cweider", "mistabell", "ayn", "miki", "twitterrific", "bim", "seb2point0", "moomerman", "avilasexy", "zachera", "ksharkey", "obijan", "lostfilm", "magicscientist", "hmi", "ruggedelegance", "mogeethis", "nishantmodak", "talagy1", "delicious", "nickt", "opccalendar", "brightbold", "samuel", "gnintendo", "aurorafeint", "pkumat", "spinnaker", "opinmind", "drawohara", "ideelitest", "voltron43", "jolleyjoe", "orionlee", "fastdove", "stockshouter", "scrabbly", "darkua", "thangamkvp", "kanjifandom", "360hubs", "vivocom", "jepeng", "joemccann", "allynbauer", "destroytwitter", "medium", "bpark08", "twitknights", "adiumofficial", "leedumond", "confluxgroup", "40limbo", "cwalcott", "karthicksethu", "pron", "planettagger", "switchonthecode", "izeasponsoredtweets", "merchants", "humptydumptyegg", "user121", "andav", "cutiethread", "vmarquez", "hopkinsju", "tweetsimple", "saasbit", "aaad", "gohewitt", "yusuke0927", "vinced45", "fbmore", "northisup", "tt01311", "bleetbox", "gyokojp", "dentest", "headlineshirts", "gethighnote", "hashads", "racevine", "kelvinator44", "ajc308", "tweetw", "ibanezyaya", "abiko", "goseedo", "tzah", "gimmeanswers", "twitiq", "lehrblogger", "metricstaxi", "nzeltzer", "addly", "scph", "jrcdude", "mderk", "pullus", "googlenewsjp", "rjinla", "smithworx", "antiuser", "injeqt", "lovelykby", "wiglu", "demandspot", "spazcore", "ka2hiro", "namnum", "sventures", "twittersales", "buttreygoodness", "nagesh", "tribescape", "ohun002", "orsiso", "orymate", "yossilac", "klango", "sp33dfr34ksd", "tracksite", "tonysteward", "davidwalshblog", "ramses", "rdaum", "ookong", "pieceoflena", "wowgather", "caribryne", "alexbosworth", "apoenam", "keepertestaccount", "slideshare", "splab", "ankitparekh", "xtips", "hexmode", "ryanl229", "syberplanet", "gotwalt", "othman", "bunte", "tmeryu", "e", "pjstadig", "timi", "retweetjs", "sobees" ], "version": 1.0 } }, "statusCode": "OK" }
@@ -1 +0,0 @@
1
- { "errorCode": 0, "errorMessage": "", "results": { "clicks": 2644, "hash": "31IqMl", "referrers": { "": { "/index.html": 1, "None": 5, "direct": 2003 }, "api.bit.ly": { "/shorten": 2 }, "benny-web": { "/jseitel/bitly/install.html": 1 }, "bit.ly": { "/": 3, "/app/demos/info.html": 71, "/app/demos/stats.html": 305, "/app/demos/statsModule.html": 2, "/info/15DlK": 1, "/info/27I9Ll": 1, "/info/31IqMl": 2, "/info/hic4E": 1 }, "code.google.com": { "/p/bitly-api/wiki/ApiDocumentation": 1 }, "dev.chartbeat.com": { "/static/bitly.html": 1 }, "dev.unhub.com": { "/pnG8/": 1 }, "klout.net": { "/profiledetail.php": 1 }, "localhost": { "/New Folder/test1.php": 1 }, "mail.google.com": { "/mail/": 1 }, "partners.bit.ly": { "/td": 8 }, "powertwitter.me": { "/": 1 }, "quietube.com": { "/getbitly.php": 1 }, "search.twitter.com": { "/search": 3 }, "sfbay.craigslist.org": { "/sfc/rnr/891043787.html": 8 }, "spreadsheets.google.com": { "/ccc": 23, "/ccc2": 1 }, "strat.corp.advertising.com": { "/brandmaker/bitly.php": 4 }, "taggytext.com": { "/ganja": 1 }, "twitter.com": { "/": 3, "/SuperTestAcct": 1, "/TattoosOn": 1, "/WilliamWoods": 1, "/home": 6, "/ibiboisms": 2, "/kshanns": 1, "/matraji": 1, "/nathanfolkman": 1, "/pantaleonescu": 1, "/rubyisbeautiful": 1, "/williamwoods": 1 }, "twitturls.com": { "/": 21 }, "twitturly.com": { "": 17, "/urlinfo/url/2168a5e81280538cdbf6ad4c4ab019db/": 1 }, "url.ly": { "/": 19, "/info/27I9Ll": 1, "/info/31IqMl": 3 }, "urly.local:3600": { "/": 7 }, "v2.blogg.no": { "/test.cfm": 1 }, "www.facebook.com": { "/home.php": 1 }, "www.longurlplease.com": { "/": 3 }, "www.microblogbuzz.com": { "": 5 } } }, "statusCode": "OK" }
@@ -1 +0,0 @@
1
- { "errorCode": 1, "errorMessage": "Test error", "statusCode": "ERROR" }
@@ -1,39 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'rubygems'
3
- require 'shoulda'
4
- require 'flexmock/minitest'
5
- require 'webmock/minitest'
6
-
7
- require File.join(File.dirname(__FILE__), '..', 'lib', 'bitly')
8
-
9
- WebMock.disable_net_connect!
10
- WebMock::Config.instance.query_values_notation = :flat_array
11
-
12
- def fixture_file(filename)
13
- return '' if filename == ''
14
- file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
15
- File.read(file_path)
16
- end
17
-
18
- def stub_get(url, filename, status=nil)
19
- options = {:body => fixture_file(filename)}
20
- options.merge!({:status => status}) unless status.nil?
21
-
22
- stub_request(:get, url).to_return(options)
23
- end
24
-
25
- def api_key
26
- 'test_key'
27
- end
28
- def login
29
- 'test_account'
30
- end
31
- def access_token
32
- 'test_access_token'
33
- end
34
-
35
- class Minitest::Test
36
- def teardown
37
- WebMock.reset!
38
- end
39
- end