mvg-live 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Guardfile +8 -0
- data/Rakefile +8 -0
- data/bin/mvg +8 -0
- data/bin/mvg_json +8 -0
- data/fixtures/vcr_cassettes/test_0001_should_have_the_correct_entry_size.json +1 -0
- data/fixtures/vcr_cassettes/test_0001_should_have_the_same_number_of_entries.json +1 -0
- data/fixtures/vcr_cassettes/test_0001_should_inform_about_incorrent_stations_and_possible_fits.json +1 -0
- data/fixtures/vcr_cassettes/test_0001_should_parse_the_response_and_return_a_usable_data_structure.json +1 -0
- data/fixtures/vcr_cassettes/test_0002_should_have_the_correct_order.json +1 -0
- data/fixtures/vcr_cassettes/test_0002_should_have_the_correct_order_.json +1 -0
- data/fixtures/vcr_cassettes/test_0003_should_build_the_right_query.json +1 -0
- data/fixtures/vcr_cassettes/test_0004_should_provide_access_to_the_response_object_through_response_obj.json +1 -0
- data/fixtures/vcr_cassettes/test_0004_should_provide_access_to_the_response_through_response.json +1 -0
- data/fixtures/vcr_cassettes/test_0004_should_provide_cached_access_to_the_response_object_through_response_obj.json +1 -0
- data/lib/mvg.rb +2 -0
- data/lib/mvg/live.rb +73 -0
- data/lib/mvg/live/cli.rb +118 -0
- data/lib/mvg/live/encoding.rb +33 -0
- data/lib/mvg/live/http.rb +60 -0
- data/lib/mvg/live/parser.rb +63 -0
- data/lib/mvg/live/version.rb +5 -0
- data/mvg-live.gemspec +40 -0
- data/spec/factories.rb +26 -0
- data/spec/mvg_live_spec.rb +143 -0
- data/spec/spec_helper.rb +24 -0
- metadata +221 -0
    
        data/.gitignore
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/Guardfile
    ADDED
    
    | @@ -0,0 +1,8 @@ | |
| 1 | 
            +
            # More info at https://github.com/guard/guard#readme
         | 
| 2 | 
            +
            guard 'minitest' do
         | 
| 3 | 
            +
              watch(%r|^spec/(.*)_spec\.rb|)
         | 
| 4 | 
            +
              watch(%r|^lib/(.*)/(.*)/([^/]+)\.rb|)  { |m| "spec/#{m[1]}_#{m[2]}_spec.rb" }
         | 
| 5 | 
            +
              watch(%r|^lib/(.*)/([^/]+)\.rb|)       { |m| "spec/#{m[1]}_#{m[2]}_spec.rb" }
         | 
| 6 | 
            +
              watch(%r|^spec/spec_helper\.rb|)       { "spec" }
         | 
| 7 | 
            +
            end
         | 
| 8 | 
            +
             | 
    
        data/Rakefile
    ADDED
    
    
    
        data/bin/mvg
    ADDED
    
    
    
        data/bin/mvg_json
    ADDED
    
    
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:12:57 GMT"],"content-language":["en-US"],"cteonnt-length":["3111"],"keep-alive":["timeout=15, max=94"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["911"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjEyPC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJQW1h\nbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjE8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIg\nY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+\nTjE2PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0K\nCQkJCQlFZmZuZXJwbGF0eg0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4m\nbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJp\nbk1pbkNvbHVtbiI+MTI8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8\ndHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1u\nIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCUFtYWxpZW5idXJnc3RyYd9lDQoJCQkJCTxzcGFuIGNsYXNzPSJz\ncGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQg\nY2xhc3M9ImluTWluQ29sdW1uIj4yNzwvdGQ+DQoJCQkJDQoJCQk8L3RyPg0K\nCQkNCgkJCTx0ciBjbGFzcz0icm93RXZlbiI+DQoJCQkJPHRkIGNsYXNzPSJs\naW5lQ29sdW1uIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlv\nbkNvbHVtbiI+DQoJCQkJCUVmZm5lcnBsYXR6DQoJCQkJCTxzcGFuIGNsYXNz\nPSJzcGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8\ndGQgY2xhc3M9ImluTWluQ29sdW1uIj40MjwvdGQ+DQoJCQkJDQoJCQk8L3Ry\nPg0KCQkNCgkJCTx0ciBjbGFzcz0icm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9\nImxpbmVDb2x1bW4iPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0\naW9uQ29sdW1uIj4NCgkJCQkJQW1hbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNw\nYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJ\nCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU3PC90ZD4NCgkJCQkN\nCgkJCTwvdHI+DQoJCQ0KCQkNCgkJDQoJCTx0cj4NCgkJCTx0ZCBjb2xzcGFu\nPSI0IiBjbGFzcz0ic0JhaG5IZWFkZXIiPlMtQmFobiBNJnV1bWw7bmNoZW4g\nKERhdGVuIERCIFJlZ2lvIEFHKTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQkJPHRy\nIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+\nUzg8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+DQoJ\nCQkJCUZsdWdoYWZlbiBN/G5jaGVuDQoJCQkJCTxzcGFuIGNsYXNzPSJzcGFj\nZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQgY2xh\nc3M9ImluTWluQ29sdW1uIj4xPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVD\nb2x1bW4iPlM4PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlGbHVnaGFmZW4gTfxuY2hlbg0KCQkJCQk8c3BhbiBjbGFz\ncz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJ\nPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+MjA8L3RkPg0KCQkJCQ0KCQkJPC90\ncj4NCgkJDQoJCQ0KCQk8dHI+CQkJDQoJCQk8dGQgY29sc3Bhbj0iNCIgY2xh\nc3M9InJlbG9hZExpbmsiPgkJDQoJCQkJPGEgaHJlZj0iL2ltcy9kZmlTdGF0\naWNBbnplaWdlLnN2Yz9oYWx0ZXN0ZWxsZT1IYWNrZXJicvxja2UmdWJhaG49\nJmJ1cz0mdHJhbT1jaGVja2VkJnNiYWhuPWNoZWNrZWQiPg0KCQkJCQlGYWhy\ndGVuIGFrdHVhbGlzaWVyZW4gDQoJCQkJPC9hPg0KCQkJPC90ZD4NCgkJPC90\ncj4NCgkJDQoJCTwvdGFibGU+DQoJCTx0YWJsZSBjbGFzcz0iZGVwYXJ0dXJl\nVGFibGUgZm9vdGVyVGFibGUiPg0KCQk8dHI+DQoJCQk8dGQgY2xhc3M9ImZv\nb3RlciI+DQoJICAgIAk8YSBocmVmPSJodHRwOi8vd3d3Lm12Zy1tb2JpbC5k\nZS9pbXByZXNzdW0uaHRtIiB0YXJnZXQ9Il9ibGFuayI+SW1wcmVzc3VtPC9h\nPiANCgkJCTwvdGQ+DQoJCTwvdHI+DQoJPC90YWJsZT4JDQo8L2JvZHk+DQo8\nL2h0bWw+\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:12:57 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&s=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:59:45 GMT"],"content-language":["en-US"],"cteonnt-length":["2752"],"keep-alive":["timeout=15, max=69"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["870"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjU5PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJQW1h\nbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjEwPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRy\nIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4i\nPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4N\nCgkJCQkJRWZmbmVycGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjI1PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVt\nbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjM2PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1\nbW4iPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1u\nIj4NCgkJCQkJQW1hbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjQwPC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0i\nbGluZUNvbHVtbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlv\nbkNvbHVtbiI+DQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9\nImxpbmVDb2x1bW4iPjE3PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRp\nb25Db2x1bW4iPg0KCQkJCQlTY2h3YW5zZWVzdHJh32UNCgkJCQkJPHNwYW4g\nY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0K\nCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJ\nCTwvdHI+DQoJCQ0KCQkNCgkJDQoJCTx0cj4JCQkNCgkJCTx0ZCBjb2xzcGFu\nPSI0IiBjbGFzcz0icmVsb2FkTGluayI+CQkNCgkJCQk8YSBocmVmPSIvaW1z\nL2RmaVN0YXRpY0FuemVpZ2Uuc3ZjP2hhbHRlc3RlbGxlPUhhY2tlcmJy/GNr\nZSZ1YmFobj0mYnVzPSZ0cmFtPWNoZWNrZWQmc2JhaG49Ij4NCgkJCQkJRmFo\ncnRlbiBha3R1YWxpc2llcmVuIA0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCTwv\ndHI+DQoJCQ0KCQk8L3RhYmxlPg0KCQk8dGFibGUgY2xhc3M9ImRlcGFydHVy\nZVRhYmxlIGZvb3RlclRhYmxlIj4NCgkJPHRyPg0KCQkJPHRkIGNsYXNzPSJm\nb290ZXIiPg0KCSAgICAJPGEgaHJlZj0iaHR0cDovL3d3dy5tdmctbW9iaWwu\nZGUvaW1wcmVzc3VtLmh0bSIgdGFyZ2V0PSJfYmxhbmsiPkltcHJlc3N1bTwv\nYT4gDQoJCQk8L3RkPg0KCQk8L3RyPg0KCTwvdGFibGU+CQ0KPC9ib2R5Pg0K\nPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:59:45 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:14:01 GMT"],"content-language":["en-US"],"content-length":["3111"],"keep-alive":["timeout=15, max=94"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjE0PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJQW1h\nbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjA8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIg\nY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+\nTjE2PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0K\nCQkJCQlFZmZuZXJwbGF0eg0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4m\nbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJp\nbk1pbkNvbHVtbiI+MTA8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8\ndHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1u\nIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCUFtYWxpZW5idXJnc3RyYd9lDQoJCQkJCTxzcGFuIGNsYXNzPSJz\ncGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQg\nY2xhc3M9ImluTWluQ29sdW1uIj4yNTwvdGQ+DQoJCQkJDQoJCQk8L3RyPg0K\nCQkNCgkJCTx0ciBjbGFzcz0icm93RXZlbiI+DQoJCQkJPHRkIGNsYXNzPSJs\naW5lQ29sdW1uIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlv\nbkNvbHVtbiI+DQoJCQkJCUVmZm5lcnBsYXR6DQoJCQkJCTxzcGFuIGNsYXNz\nPSJzcGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8\ndGQgY2xhc3M9ImluTWluQ29sdW1uIj40MDwvdGQ+DQoJCQkJDQoJCQk8L3Ry\nPg0KCQkNCgkJCTx0ciBjbGFzcz0icm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9\nImxpbmVDb2x1bW4iPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0\naW9uQ29sdW1uIj4NCgkJCQkJQW1hbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNw\nYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJ\nCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU1PC90ZD4NCgkJCQkN\nCgkJCTwvdHI+DQoJCQ0KCQkNCgkJDQoJCTx0cj4NCgkJCTx0ZCBjb2xzcGFu\nPSI0IiBjbGFzcz0ic0JhaG5IZWFkZXIiPlMtQmFobiBNJnV1bWw7bmNoZW4g\nKERhdGVuIERCIFJlZ2lvIEFHKTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQkJPHRy\nIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+\nUzg8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+DQoJ\nCQkJCUZsdWdoYWZlbiBN/G5jaGVuDQoJCQkJCTxzcGFuIGNsYXNzPSJzcGFj\nZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQgY2xh\nc3M9ImluTWluQ29sdW1uIj4wPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVD\nb2x1bW4iPlM4PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlGbHVnaGFmZW4gTfxuY2hlbg0KCQkJCQk8c3BhbiBjbGFz\ncz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJ\nPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+MTk8L3RkPg0KCQkJCQ0KCQkJPC90\ncj4NCgkJDQoJCQ0KCQk8dHI+CQkJDQoJCQk8dGQgY29sc3Bhbj0iNCIgY2xh\nc3M9InJlbG9hZExpbmsiPgkJDQoJCQkJPGEgaHJlZj0iL2ltcy9kZmlTdGF0\naWNBbnplaWdlLnN2Yz9oYWx0ZXN0ZWxsZT1IYWNrZXJicvxja2UmdWJhaG49\nJmJ1cz0mdHJhbT1jaGVja2VkJnNiYWhuPWNoZWNrZWQiPg0KCQkJCQlGYWhy\ndGVuIGFrdHVhbGlzaWVyZW4gDQoJCQkJPC9hPg0KCQkJPC90ZD4NCgkJPC90\ncj4NCgkJDQoJCTwvdGFibGU+DQoJCTx0YWJsZSBjbGFzcz0iZGVwYXJ0dXJl\nVGFibGUgZm9vdGVyVGFibGUiPg0KCQk8dHI+DQoJCQk8dGQgY2xhc3M9ImZv\nb3RlciI+DQoJICAgIAk8YSBocmVmPSJodHRwOi8vd3d3Lm12Zy1tb2JpbC5k\nZS9pbXByZXNzdW0uaHRtIiB0YXJnZXQ9Il9ibGFuayI+SW1wcmVzc3VtPC9h\nPiANCgkJCTwvdGQ+DQoJCTwvdHI+DQoJPC90YWJsZT4JDQo8L2JvZHk+DQo8\nL2h0bWw+\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:14:02 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:15:02 GMT"],"content-language":["en-US"],"cteonnt-length":["1393"],"keep-alive":["timeout=15, max=96"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["625"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQoJPGhlYWQ+DQoJCTx0aXRsZT5N\nVkctTGl2ZSBGZWhsZXI8L3RpdGxlPg0KCQk8bGluayB0eXBlPSJ0ZXh0L2Nz\ncyIgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvaW1zL2Nzcy9zaXplMzAvREZJ\nQXVzd2FobC5jc3MnIC8+DQoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIg\ndHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSIvaW1zL2ltYWdlcy9mYXZpY29u\nLmljbyI+DQoJPC9oZWFkPg0KCTxib2R5IHN0eWxlPSJvdmVyZmxvdzogYXV0\nbzsiPg0KCQk8ZGl2IGNsYXNzPSJkZmlBdXN3YWhsVmlldyIJc3R5bGU9InBv\nc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDBweDsiPg0KCQkJ\nPGRpdj48aW1nIGNsYXNzPSJnd3QtSW1hZ2UiIHNyYz0iaW1hZ2VzL3NpemUz\nMC9ncmFmaWsvbXZnL2F1c3dhaGxIZWFkZXIuZ2lmIiAvPjwvZGl2Pg0KCQkJ\nPGRpdiBjbGFzcz0ibWFpbiI+DQoJCQkJPHRhYmxlIGNsYXNzPSJkZmlIYWx0\nZXN0ZWxsZW5BdXN3YWhsIj4NCgkJCQkJPGNvbGdyb3VwPg0KCQkJCQkJPGNv\nbD4NCgkJCQkJPC9jb2xncm91cD4NCgkJCQkJPHRib2R5Pg0KCQkJCQkJPHRy\nPg0KCQkJCQkJCTx0ZD4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJmb3JtTGFiZWwi\nPkZlaGxlcjo8L2Rpdj4NCgkJCQkJCQk8L3RkPg0KCQkJCQkJCTx0ZCBjbGFz\ncz0iZ3d0LUxhYmVsIj5EYXRlbiBrb25udGVuIG5pY2h0IHplaXRuYWggYW5n\nZWZvcmRlcnQgd2VyZGVuLiA8L3RkPg0KCQkJCQkJPC90cj4NCgkJCQkJCTx0\ncj4NCgkJCQkJCQk8dGQ+Jm5ic3A7PC90ZD4NCgkJCQkJCQk8dGQgY2xhc3M9\nImd3dC1MYWJlbCI+PGEgaHJlZj0iL2ltcyI+WnVyJnV1bWw7Y2sgenUgTVZH\nIGxpdmU8L2E+PC90ZD4NCgkJCQkJCTwvdHI+DQoJCQkJCQk8dHI+DQoJCQkJ\nCQkJPHRkPiZuYnNwOzwvdGQ+DQoJCQkJCQkJPHRkPiZuYnNwOzwvdGQ+DQoJ\nCQkJCQk8L3RyPg0KCQkJCQkJPHRyPg0KCQkJCQkJCTx0ZD4mbmJzcDs8L3Rk\nPg0KCQkJCQkJCTx0ZCBjbGFzcz0iZ3d0LUxhYmVsIj5G/HIgQmVudXR6ZXIg\ndm9uIEhhbmR5czo8L3RkPg0KCQkJCQkJPC90cj4NCgkJCQkJCTx0cj4NCgkJ\nCQkJCQk8dGQ+Jm5ic3A7PC90ZD4NCgkJCQkJCQk8dGQgY2xhc3M9Imd3dC1M\nYWJlbCI+PGEgaHJlZj0iL2ltcy9kZmlTdGF0aWNBdXN3YWhsLnN2YyI+WnVy\nJnV1bWw7Y2sgenVyIG1vYmlsZW4gVmFyaWFudGUgdm9uIE1WRyBsaXZlPC9h\nPjwvdGQ+DQoJCQkJCQk8L3RyPg0KCQkJCQk8L3Rib2R5Pg0KCQkJCTwvdGFi\nbGU+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9ib2R5Pg0KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:15:07 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&s=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:59:45 GMT"],"content-language":["en-US"],"cteonnt-length":["2752"],"keep-alive":["timeout=15, max=70"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["870"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjU5PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJQW1h\nbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjEwPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRy\nIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4i\nPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4N\nCgkJCQkJRWZmbmVycGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjI1PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVt\nbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjM2PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1\nbW4iPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1u\nIj4NCgkJCQkJQW1hbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjQwPC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0i\nbGluZUNvbHVtbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlv\nbkNvbHVtbiI+DQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9\nImxpbmVDb2x1bW4iPjE3PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRp\nb25Db2x1bW4iPg0KCQkJCQlTY2h3YW5zZWVzdHJh32UNCgkJCQkJPHNwYW4g\nY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0K\nCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJ\nCTwvdHI+DQoJCQ0KCQkNCgkJDQoJCTx0cj4JCQkNCgkJCTx0ZCBjb2xzcGFu\nPSI0IiBjbGFzcz0icmVsb2FkTGluayI+CQkNCgkJCQk8YSBocmVmPSIvaW1z\nL2RmaVN0YXRpY0FuemVpZ2Uuc3ZjP2hhbHRlc3RlbGxlPUhhY2tlcmJy/GNr\nZSZ1YmFobj0mYnVzPSZ0cmFtPWNoZWNrZWQmc2JhaG49Ij4NCgkJCQkJRmFo\ncnRlbiBha3R1YWxpc2llcmVuIA0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCTwv\ndHI+DQoJCQ0KCQk8L3RhYmxlPg0KCQk8dGFibGUgY2xhc3M9ImRlcGFydHVy\nZVRhYmxlIGZvb3RlclRhYmxlIj4NCgkJPHRyPg0KCQkJPHRkIGNsYXNzPSJm\nb290ZXIiPg0KCSAgICAJPGEgaHJlZj0iaHR0cDovL3d3dy5tdmctbW9iaWwu\nZGUvaW1wcmVzc3VtLmh0bSIgdGFyZ2V0PSJfYmxhbmsiPkltcHJlc3N1bTwv\nYT4gDQoJCQk8L3RkPg0KCQk8L3RyPg0KCTwvdGFibGU+CQ0KPC9ib2R5Pg0K\nPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:59:45 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
    
        data/fixtures/vcr_cassettes/test_0001_should_inform_about_incorrent_stations_and_possible_fits.json
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Moosfeld&ubahn=checked&bus=checked&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 05:48:20 GMT"],"content-language":["en-US"],"cteonnt-length":["2288"],"keep-alive":["timeout=15, max=13"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b245525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["1045"]},"body":{"encoding":"ASCII-8BIT","base64_string":"ICAgIA0KICAgICAgIAo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8v\nRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53\nMy5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KPGh0bWw+Cgk8aGVhZD4KCQk8\nbWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv\naHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4JDQoJCTxtZXRhIG5hbWU9InZp\nZXdwb3J0IiBjb250ZW50PSJ3aWR0aD0zNDBweCI+CQoJCTx0aXRsZT5NVkcg\nbGl2ZSAtIElocmUgYWt0dWVsbGVuIEFiZmFocnRzemVpdGVuPC90aXRsZT4N\nCgkJPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik1WRyBsaXZl\nIGb8ciBIYW5keSB1bmQgbW9iaWxlIEVuZGdlcuR0ZSAtIA0KCQlJaHIgQWJm\nYWhydHNtb25pdG9yIGluIEVjaHR6ZWl0LiBEZXIgbmV1ZSBTZXJ2aWNlIGRl\nciBN/G5jaG5lciBWZXJrZWhyc2dlc2VsbHNjaGFmdCANCgkJYmlldGV0IGVp\nbmVuIEFiZmFocnRzbW9uaXRvciBtaXQgTGl2ZS1EYXRlbiBhdXMgZGVtIFUt\nQmFobiwgQnVzIHVuZCBUcmFtbmV0ei4gDQoJCUZhaHJwbGFuYWJ3ZWljaHVu\nZ2VuIG9kZXIgYmV0cmllYnNiZWRpbmd0ZSDEbmRlcnVuZ2VuIHdlcmRlbiBk\nYWJlaSBiZXL8Y2tzaWNodGlndC4iPg0KCQk8bGluayB0eXBlPSJ0ZXh0L2Nz\ncyIgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmds\naXZlLW1vYmlsZS5jc3MnIG1lZGlhPSdhbGwnPgoJPC9oZWFkPgo8Ym9keT4N\nCgk8ZGl2IGNsYXNzPSJkZXBhcnR1cmVUYWJsZSBoZWFkZXIgbG9nbyI+DQoJ\nCTxkaXYgY2xhc3M9ImxvZ29MZWZ0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29J\nbWdMZWZ0IiBzcmM9ImltYWdlcy9zaXplMzAvZ3JhZmlrL212Zy9tb2JpbGUt\nbG9nby1sZWZ0LmpwZyIgYWx0PSJNVkcgbGl2ZSI+DQoJCTwvZGl2Pg0KCQk8\nZGl2IGNsYXNzPSJsb2dvUmlnaHQiPg0KCQkJPGltZyBjbGFzcz0ibG9nb0lt\nZ1JpZ2h0IiBzcmM9ImltYWdlcy9zaXplMzAvZ3JhZmlrL212Zy9tb2JpbGUt\nbG9nby1yaWdodC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgk8\nL2Rpdj4NCg0KCTx0YWJsZSBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVy\nIj4NCgkJPHRyPg0KCQkJPHRkIGNvbHNwYW49IjIiPg0KCQkJCQ0KCQkJCQlC\naXR0ZSB3JmF1bWw7aGxlbiBTaWUgYXVzOg0KCQkJCQk8dWw+DQoJCQkJCQkJ\nCQkJCQ0KCQkJCQkJCTxsaT4NCgkJCQkJCQkJPGEgaHJlZj0iL2ltcy9kZmlT\ndGF0aWNBbnplaWdlLnN2Yz9oYWx0ZXN0ZWxsZT1BbStNb29zZmVsZCZ1YmFo\nbj1jaGVja2VkJmJ1cz1jaGVja2VkJnRyYW09Y2hlY2tlZCZzYmFobj1jaGVj\na2VkIj5BbSBNb29zZmVsZDwvYT4NCgkJCQkJCQk8L2xpPg0KCQkJCQkJCQkJ\nCQkNCgkJCQkJCQk8bGk+DQoJCQkJCQkJCTxhIGhyZWY9Ii9pbXMvZGZpU3Rh\ndGljQW56ZWlnZS5zdmM/aGFsdGVzdGVsbGU9TW9vc2ZlbGQrR2V3ZXJiZWdl\nYmlldCZ1YmFobj1jaGVja2VkJmJ1cz1jaGVja2VkJnRyYW09Y2hlY2tlZCZz\nYmFobj1jaGVja2VkIj5Nb29zZmVsZCBHZXdlcmJlZ2ViaWV0PC9hPg0KCQkJ\nCQkJCTwvbGk+DQoJCQkJCQkNCgkJCQkJPC91bD4NCgkJCQkNCgkJCTwvdGQ+\nCQkNCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRkIGNvbHNwYW49IjIiPg0KCQkJ\nCUJpdHRlIGdlYmVuIFNpZSBkaWUgZXJzdGVuIDMgQnVjaHN0YWJlbiBkZXIg\nZ2VzdWNodGVuIEhhbHRlc3RlbGxlIGVpbjo8YnIgLz48YnIgLz4NCgkJCTwv\ndGQ+DQoJCTwvdHI+DQoJCTx0cj4NCgkJCTx0ZCBjb2xzcGFuPSIyIj4NCgkJ\nCQkNCgkJCQ0KCQkJCTxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Ii9pbXMv\nZGZpU3RhdGljQXVzd2FobC5zdmMiPg0KCQkJCQlIYWx0ZXN0ZWxsZTogPGlu\ncHV0IHR5cGU9InRleHQiIG5hbWU9ImhhbHRlc3RlbGxlIiB2YWx1ZT0iTW9v\nc2ZlbGQiIC8+DQoJCQkJCQkJDQoJCQkJCTxpbnB1dCB0eXBlPSJzdWJtaXQi\nIHZhbHVlPSJTZW5kZW4iIGNsYXNzPSJzdWJtaXRCdXR0b24iIC8+DQoJCQkJ\nDQoJCQkJPC9mb3JtPgkJCQkJDQoJCQkJPGJyLz4NCgkJCQkNCgkJCQk8YnIg\nLz4JCQkJCQkJDQoJCQk8L3RkPg0KCQk8L3RyPg0KCQk8dHI+DQoJCQk8dGQg\nY29sc3Bhbj0iMiIgY2xhc3M9ImZvb3RlciI+DQoJICAgIAk8YSBocmVmPSJo\ndHRwOi8vd3d3Lm12Zy1tb2JpbC5kZS9pbXByZXNzdW0uaHRtIiB0YXJnZXQ9\nIl9ibGFuayI+SW1wcmVzc3VtPC9hPiAJCQkJICAgIAkNCgkJCTwvdGQ+DQoJ\nCTwvdHI+DQoJDQoJPC90YWJsZT4JCQo8L2JvZHk+CjwvaHRtbD4=\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 05:48:20 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%C3%BCcke&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 00:46:08 GMT"],"content-language":["en-US"],"cteonnt-length":["2269"],"keep-alive":["timeout=15, max=76"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b245525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["1044"]},"body":{"encoding":"ASCII-8BIT","base64_string":"ICAgIA0KICAgICAgIAo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8v\nRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53\nMy5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KPGh0bWw+Cgk8aGVhZD4KCQk8\nbWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv\naHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4JDQoJCTxtZXRhIG5hbWU9InZp\nZXdwb3J0IiBjb250ZW50PSJ3aWR0aD0zNDBweCI+CQoJCTx0aXRsZT5NVkcg\nbGl2ZSAtIElocmUgYWt0dWVsbGVuIEFiZmFocnRzemVpdGVuPC90aXRsZT4N\nCgkJPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik1WRyBsaXZl\nIGb8ciBIYW5keSB1bmQgbW9iaWxlIEVuZGdlcuR0ZSAtIA0KCQlJaHIgQWJm\nYWhydHNtb25pdG9yIGluIEVjaHR6ZWl0LiBEZXIgbmV1ZSBTZXJ2aWNlIGRl\nciBN/G5jaG5lciBWZXJrZWhyc2dlc2VsbHNjaGFmdCANCgkJYmlldGV0IGVp\nbmVuIEFiZmFocnRzbW9uaXRvciBtaXQgTGl2ZS1EYXRlbiBhdXMgZGVtIFUt\nQmFobiwgQnVzIHVuZCBUcmFtbmV0ei4gDQoJCUZhaHJwbGFuYWJ3ZWljaHVu\nZ2VuIG9kZXIgYmV0cmllYnNiZWRpbmd0ZSDEbmRlcnVuZ2VuIHdlcmRlbiBk\nYWJlaSBiZXL8Y2tzaWNodGlndC4iPg0KCQk8bGluayB0eXBlPSJ0ZXh0L2Nz\ncyIgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmds\naXZlLW1vYmlsZS5jc3MnIG1lZGlhPSdhbGwnPgoJPC9oZWFkPgo8Ym9keT4N\nCgk8ZGl2IGNsYXNzPSJkZXBhcnR1cmVUYWJsZSBoZWFkZXIgbG9nbyI+DQoJ\nCTxkaXYgY2xhc3M9ImxvZ29MZWZ0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29J\nbWdMZWZ0IiBzcmM9ImltYWdlcy9zaXplMzAvZ3JhZmlrL212Zy9tb2JpbGUt\nbG9nby1sZWZ0LmpwZyIgYWx0PSJNVkcgbGl2ZSI+DQoJCTwvZGl2Pg0KCQk8\nZGl2IGNsYXNzPSJsb2dvUmlnaHQiPg0KCQkJPGltZyBjbGFzcz0ibG9nb0lt\nZ1JpZ2h0IiBzcmM9ImltYWdlcy9zaXplMzAvZ3JhZmlrL212Zy9tb2JpbGUt\nbG9nby1yaWdodC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgk8\nL2Rpdj4NCg0KCTx0YWJsZSBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVy\nIj4NCgkJPHRyPg0KCQkJPHRkIGNvbHNwYW49IjIiPg0KCQkJCQ0KCQkJPC90\nZD4JCQ0KCQk8L3RyPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiI+DQoJ\nCQkJQml0dGUgZ2ViZW4gU2llIGRpZSBlcnN0ZW4gMyBCdWNoc3RhYmVuIGRl\nciBnZXN1Y2h0ZW4gSGFsdGVzdGVsbGUgZWluOjxiciAvPjxiciAvPg0KCQkJ\nPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRkIGNvbHNwYW49IjIiPg0K\nCQkJCQ0KCQkJDQoJCQkJPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0iL2lt\ncy9kZmlTdGF0aWNBdXN3YWhsLnN2YyI+DQoJCQkJCUhhbHRlc3RlbGxlOiA8\naW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaGFsdGVzdGVsbGUiIHZhbHVlPSJI\nYWNrZXJicsO8Y2tlIiAvPg0KCQkJCQkNCgkJCQkJCTxwPg0KCQkJCQkJCTxp\nbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0idWJhaG4iIHZhbHVlPSJjaGVj\na2VkIiBjaGVja2VkPSIiLz5VLUJhaG4mbmJzcDsNCgkJCQkJCQk8aW5wdXQg\ndHlwZT0iY2hlY2tib3giIG5hbWU9ImJ1cyIgdmFsdWU9ImNoZWNrZWQiIGNo\nZWNrZWQ9IiIvPkJ1cyZuYnNwOw0KCQkJCQkJCTxpbnB1dCB0eXBlPSJjaGVj\na2JveCIgbmFtZT0idHJhbSIgdmFsdWU9ImNoZWNrZWQiIGNoZWNrZWQ9ImNo\nZWNrZWQiLz5UcmFtJm5ic3A7DQoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNr\nYm94IiBuYW1lPSJzYmFobiIgdmFsdWU9ImNoZWNrZWQiIGNoZWNrZWQ9ImNo\nZWNrZWQiLz5TLUJhaG4mbmJzcDsNCgkJCQkJCTwvcD4NCgkJCQkJCQkNCgkJ\nCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlbmRlbiIgY2xhc3M9\nInN1Ym1pdEJ1dHRvbiIgLz4NCgkJCQkNCgkJCQk8L2Zvcm0+CQkJCQkNCgkJ\nCQk8YnIvPg0KCQkJCUVzIHd1cmRlIGtlaW4gQmFobmhvZiBtaXQgZGllc2Vt\nIE5hbWVuIGdlZnVuZGVuLg0KCQkJCTxiciAvPgkJCQkJCQkNCgkJCTwvdGQ+\nDQoJCTwvdHI+DQoJCTx0cj4NCgkJCTx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0i\nZm9vdGVyIj4NCgkgICAgCTxhIGhyZWY9Imh0dHA6Ly93d3cubXZnLW1vYmls\nLmRlL2ltcHJlc3N1bS5odG0iIHRhcmdldD0iX2JsYW5rIj5JbXByZXNzdW08\nL2E+IAkJCQkgICAgCQ0KCQkJPC90ZD4NCgkJPC90cj4NCgkNCgk8L3RhYmxl\nPgkJCjwvYm9keT4KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 00:46:08 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 01:58:03 GMT"],"content-language":["en-US"],"cteonnt-length":["2647"],"keep-alive":["timeout=15, max=93"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["902"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAy\nOjU4PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJQW1h\nbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjExPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRy\nIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4i\nPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4N\nCgkJCQkJRWZmbmVycGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjI2PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVt\nbiI+TjE2PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4i\nPg0KCQkJCQlBbWFsaWVuYnVyZ3N0cmHfZQ0KCQkJCQk8c3BhbiBjbGFzcz0i\nc3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRk\nIGNsYXNzPSJpbk1pbkNvbHVtbiI+NDE8L3RkPg0KCQkJCQ0KCQkJPC90cj4N\nCgkJDQoJCQk8dHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0i\nbGluZUNvbHVtbiI+TjE2PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRp\nb25Db2x1bW4iPg0KCQkJCQlFZmZuZXJwbGF0eg0KCQkJCQk8c3BhbiBjbGFz\ncz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJ\nPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+NTY8L3RkPg0KCQkJCQ0KCQkJPC90\ncj4NCgkJDQoJCQ0KCQkNCgkJPHRyPg0KCQkJPHRkIGNvbHNwYW49IjQiIGNs\nYXNzPSJzQmFobkhlYWRlciI+Uy1CYWhuIE0mdXVtbDtuY2hlbiAoRGF0ZW4g\nREIgUmVnaW8gQUcpPC90ZD4NCgkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9\nInJvd09kZCI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1uIj5TODwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJRmx1\nZ2hhZmVuIE38bmNoZW4NCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjE1PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkNCgkJ\nPHRyPgkJCQ0KCQkJPHRkIGNvbHNwYW49IjQiIGNsYXNzPSJyZWxvYWRMaW5r\nIj4JCQ0KCQkJCTxhIGhyZWY9Ii9pbXMvZGZpU3RhdGljQW56ZWlnZS5zdmM/\naGFsdGVzdGVsbGU9SGFja2VyYnL8Y2tlJnViYWhuPSZidXM9JnRyYW09Y2hl\nY2tlZCZzYmFobj1jaGVja2VkIj4NCgkJCQkJRmFocnRlbiBha3R1YWxpc2ll\ncmVuIA0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQk8L3Rh\nYmxlPg0KCQk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGZvb3RlclRh\nYmxlIj4NCgkJPHRyPg0KCQkJPHRkIGNsYXNzPSJmb290ZXIiPg0KCSAgICAJ\nPGEgaHJlZj0iaHR0cDovL3d3dy5tdmctbW9iaWwuZGUvaW1wcmVzc3VtLmh0\nbSIgdGFyZ2V0PSJfYmxhbmsiPkltcHJlc3N1bTwvYT4gDQoJCQk8L3RkPg0K\nCQk8L3RyPg0KCTwvdGFibGU+CQ0KPC9ib2R5Pg0KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 01:58:03 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:20:08 GMT"],"content-language":["en-US"],"cteonnt-length":["2879"],"keep-alive":["timeout=15, max=75"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b245525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["916"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjIwPC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJRWZm\nbmVycGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9z\ncGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1\nbW4iPjU8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9\nInJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+TjE2PC90\nZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlB\nbWFsaWVuYnVyZ3N0cmHfZQ0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4m\nbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJp\nbk1pbkNvbHVtbiI+MTk8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8\ndHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1u\nIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCUVmZm5lcnBsYXR6DQoJCQkJCTxzcGFuIGNsYXNzPSJzcGFjZXIi\nPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQgY2xhc3M9\nImluTWluQ29sdW1uIj4zNDwvdGQ+DQoJCQkJDQoJCQk8L3RyPg0KCQkNCgkJ\nCTx0ciBjbGFzcz0icm93RXZlbiI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29s\ndW1uIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVt\nbiI+DQoJCQkJCUFtYWxpZW5idXJnc3RyYd9lDQoJCQkJCTxzcGFuIGNsYXNz\nPSJzcGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8\ndGQgY2xhc3M9ImluTWluQ29sdW1uIj40OTwvdGQ+DQoJCQkJDQoJCQk8L3Ry\nPg0KCQkNCgkJDQoJCQ0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iNCIgY2xh\nc3M9InNCYWhuSGVhZGVyIj5TLUJhaG4gTSZ1dW1sO25jaGVuIChEYXRlbiBE\nQiBSZWdpbyBBRyk8L3RkPg0KCQk8L3RyPg0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPlM4PC90ZD4J\nCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlGbHVn\naGFmZW4gTfxuY2hlbg0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJz\ncDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1p\nbkNvbHVtbiI+MTM8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIg\nY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+\nUzE8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+DQoJ\nCQkJCUZsdWdoYWZlbiBN/G5jaGVuDQoJCQkJCTxzcGFuIGNsYXNzPSJzcGFj\nZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQgY2xh\nc3M9ImluTWluQ29sdW1uIj4yNTwvdGQ+DQoJCQkJDQoJCQk8L3RyPg0KCQkN\nCgkJDQoJCTx0cj4JCQkNCgkJCTx0ZCBjb2xzcGFuPSI0IiBjbGFzcz0icmVs\nb2FkTGluayI+CQkNCgkJCQk8YSBocmVmPSIvaW1zL2RmaVN0YXRpY0FuemVp\nZ2Uuc3ZjP2hhbHRlc3RlbGxlPUhhY2tlcmJy/GNrZSZ1YmFobj0mYnVzPSZ0\ncmFtPWNoZWNrZWQmc2JhaG49Y2hlY2tlZCI+DQoJCQkJCUZhaHJ0ZW4gYWt0\ndWFsaXNpZXJlbiANCgkJCQk8L2E+DQoJCQk8L3RkPg0KCQk8L3RyPg0KCQkN\nCgkJPC90YWJsZT4NCgkJPHRhYmxlIGNsYXNzPSJkZXBhcnR1cmVUYWJsZSBm\nb290ZXJUYWJsZSI+DQoJCTx0cj4NCgkJCTx0ZCBjbGFzcz0iZm9vdGVyIj4N\nCgkgICAgCTxhIGhyZWY9Imh0dHA6Ly93d3cubXZnLW1vYmlsLmRlL2ltcHJl\nc3N1bS5odG0iIHRhcmdldD0iX2JsYW5rIj5JbXByZXNzdW08L2E+IA0KCQkJ\nPC90ZD4NCgkJPC90cj4NCgk8L3RhYmxlPgkNCjwvYm9keT4NCjwvaHRtbD4=\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:20:08 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&s=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:59:45 GMT"],"content-language":["en-US"],"cteonnt-length":["2752"],"keep-alive":["timeout=15, max=67"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["870"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjU5PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJQW1h\nbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjEwPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRy\nIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4i\nPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4N\nCgkJCQkJRWZmbmVycGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjI1PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVt\nbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjM2PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1\nbW4iPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1u\nIj4NCgkJCQkJQW1hbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjQwPC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0i\nbGluZUNvbHVtbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlv\nbkNvbHVtbiI+DQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9\nImxpbmVDb2x1bW4iPjE3PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRp\nb25Db2x1bW4iPg0KCQkJCQlTY2h3YW5zZWVzdHJh32UNCgkJCQkJPHNwYW4g\nY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0K\nCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJ\nCTwvdHI+DQoJCQ0KCQkNCgkJDQoJCTx0cj4JCQkNCgkJCTx0ZCBjb2xzcGFu\nPSI0IiBjbGFzcz0icmVsb2FkTGluayI+CQkNCgkJCQk8YSBocmVmPSIvaW1z\nL2RmaVN0YXRpY0FuemVpZ2Uuc3ZjP2hhbHRlc3RlbGxlPUhhY2tlcmJy/GNr\nZSZ1YmFobj0mYnVzPSZ0cmFtPWNoZWNrZWQmc2JhaG49Ij4NCgkJCQkJRmFo\ncnRlbiBha3R1YWxpc2llcmVuIA0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCTwv\ndHI+DQoJCQ0KCQk8L3RhYmxlPg0KCQk8dGFibGUgY2xhc3M9ImRlcGFydHVy\nZVRhYmxlIGZvb3RlclRhYmxlIj4NCgkJPHRyPg0KCQkJPHRkIGNsYXNzPSJm\nb290ZXIiPg0KCSAgICAJPGEgaHJlZj0iaHR0cDovL3d3dy5tdmctbW9iaWwu\nZGUvaW1wcmVzc3VtLmh0bSIgdGFyZ2V0PSJfYmxhbmsiPkltcHJlc3N1bTwv\nYT4gDQoJCQk8L3RkPg0KCQk8L3RyPg0KCTwvdGFibGU+CQ0KPC9ib2R5Pg0K\nPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:59:45 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&sbahn=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:16:26 GMT"],"content-language":["en-US"],"cteonnt-length":["2646"],"keep-alive":["timeout=15, max=64"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["894"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjE2PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJRWZm\nbmVycGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9z\ncGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1\nbW4iPjg8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9\nInJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+TjE2PC90\nZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlB\nbWFsaWVuYnVyZ3N0cmHfZQ0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4m\nbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJp\nbk1pbkNvbHVtbiI+MjM8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8\ndHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1u\nIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCUVmZm5lcnBsYXR6DQoJCQkJCTxzcGFuIGNsYXNzPSJzcGFjZXIi\nPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQgY2xhc3M9\nImluTWluQ29sdW1uIj4zODwvdGQ+DQoJCQkJDQoJCQk8L3RyPg0KCQkNCgkJ\nCTx0ciBjbGFzcz0icm93RXZlbiI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29s\ndW1uIj5OMTY8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVt\nbiI+DQoJCQkJCUFtYWxpZW5idXJnc3RyYd9lDQoJCQkJCTxzcGFuIGNsYXNz\nPSJzcGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8\ndGQgY2xhc3M9ImluTWluQ29sdW1uIj41MzwvdGQ+DQoJCQkJDQoJCQk8L3Ry\nPg0KCQkNCgkJDQoJCQ0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iNCIgY2xh\nc3M9InNCYWhuSGVhZGVyIj5TLUJhaG4gTSZ1dW1sO25jaGVuIChEYXRlbiBE\nQiBSZWdpbyBBRyk8L3RkPg0KCQk8L3RyPg0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPlM4PC90ZD4J\nCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlGbHVn\naGFmZW4gTfxuY2hlbg0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJz\ncDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1p\nbkNvbHVtbiI+MTc8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQ0KCQk8\ndHI+CQkJDQoJCQk8dGQgY29sc3Bhbj0iNCIgY2xhc3M9InJlbG9hZExpbmsi\nPgkJDQoJCQkJPGEgaHJlZj0iL2ltcy9kZmlTdGF0aWNBbnplaWdlLnN2Yz9o\nYWx0ZXN0ZWxsZT1IYWNrZXJicvxja2UmdWJhaG49JmJ1cz0mdHJhbT1jaGVj\na2VkJnNiYWhuPWNoZWNrZWQiPg0KCQkJCQlGYWhydGVuIGFrdHVhbGlzaWVy\nZW4gDQoJCQkJPC9hPg0KCQkJPC90ZD4NCgkJPC90cj4NCgkJDQoJCTwvdGFi\nbGU+DQoJCTx0YWJsZSBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgZm9vdGVyVGFi\nbGUiPg0KCQk8dHI+DQoJCQk8dGQgY2xhc3M9ImZvb3RlciI+DQoJICAgIAk8\nYSBocmVmPSJodHRwOi8vd3d3Lm12Zy1tb2JpbC5kZS9pbXByZXNzdW0uaHRt\nIiB0YXJnZXQ9Il9ibGFuayI+SW1wcmVzc3VtPC9hPiANCgkJCTwvdGQ+DQoJ\nCTwvdHI+DQoJPC90YWJsZT4JDQo8L2JvZHk+DQo8L2h0bWw+\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:16:27 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Hackerbr%FCcke&tram=checked&s=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:59:45 GMT"],"content-language":["en-US"],"cteonnt-length":["2752"],"keep-alive":["timeout=15, max=68"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["870"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogSGFj\na2VyYnL8Y2tlPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPkhhY2tlcmJy/GNrZTwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjU5PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4xNjwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJQW1h\nbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5i\nc3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5N\naW5Db2x1bW4iPjEwPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRy\nIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4i\nPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4N\nCgkJCQkJRWZmbmVycGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjI1PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVt\nbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlvbkNvbHVtbiI+\nDQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjM2PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1\nbW4iPk4xNjwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1u\nIj4NCgkJCQkJQW1hbGllbmJ1cmdzdHJh32UNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjQwPC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0i\nbGluZUNvbHVtbiI+MTI8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFzcz0ic3RhdGlv\nbkNvbHVtbiI+DQoJCQkJCVJvbWFucGxhdHoNCgkJCQkJPHNwYW4gY2xhc3M9\nInNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0\nZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJCTwvdHI+\nDQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9\nImxpbmVDb2x1bW4iPjE3PC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRp\nb25Db2x1bW4iPg0KCQkJCQlTY2h3YW5zZWVzdHJh32UNCgkJCQkJPHNwYW4g\nY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0K\nCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjU2PC90ZD4NCgkJCQkNCgkJ\nCTwvdHI+DQoJCQ0KCQkNCgkJDQoJCTx0cj4JCQkNCgkJCTx0ZCBjb2xzcGFu\nPSI0IiBjbGFzcz0icmVsb2FkTGluayI+CQkNCgkJCQk8YSBocmVmPSIvaW1z\nL2RmaVN0YXRpY0FuemVpZ2Uuc3ZjP2hhbHRlc3RlbGxlPUhhY2tlcmJy/GNr\nZSZ1YmFobj0mYnVzPSZ0cmFtPWNoZWNrZWQmc2JhaG49Ij4NCgkJCQkJRmFo\ncnRlbiBha3R1YWxpc2llcmVuIA0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCTwv\ndHI+DQoJCQ0KCQk8L3RhYmxlPg0KCQk8dGFibGUgY2xhc3M9ImRlcGFydHVy\nZVRhYmxlIGZvb3RlclRhYmxlIj4NCgkJPHRyPg0KCQkJPHRkIGNsYXNzPSJm\nb290ZXIiPg0KCSAgICAJPGEgaHJlZj0iaHR0cDovL3d3dy5tdmctbW9iaWwu\nZGUvaW1wcmVzc3VtLmh0bSIgdGFyZ2V0PSJfYmxhbmsiPkltcHJlc3N1bTwv\nYT4gDQoJCQk8L3RkPg0KCQk8L3RyPg0KCTwvdGFibGU+CQ0KPC9ib2R5Pg0K\nPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:59:45 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Westfriedhof&ubahn=checked&tram=checked&bus=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 00:39:16 GMT"],"content-language":["en-US"],"cteonnt-length":["3490"],"keep-alive":["timeout=15, max=55"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b245525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["899"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogV2Vz\ndGZyaWVkaG9mPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPldlc3RmcmllZGhvZjwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAx\nOjM5PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4yMDwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJS2Fy\nbHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjI8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8\ndHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVt\nbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4i\nPg0KCQkJCQlNb29zYWNoIEJmLg0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2Vy\nIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNz\nPSJpbk1pbkNvbHVtbiI+MTI8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJ\nCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29s\ndW1uIj5VMTwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1u\nIj4NCgkJCQkJT2x5bXBpYSAtIEVpbmthdWZzemVudHJ1bQ0KCQkJCQk8c3Bh\nbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJ\nDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+MTg8L3RkPg0KCQkJCQ0K\nCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0\nZCBjbGFzcz0ibGluZUNvbHVtbiI+VTE8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFz\ncz0ic3RhdGlvbkNvbHVtbiI+DQoJCQkJCU1hbmdmYWxscGxhdHoNCgkJCQkJ\nPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+\nCQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjI0PC90ZD4NCgkJ\nCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJ\nCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQg\nY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlLYXJsc3BsYXR6IChTdGFj\naHVzKQ0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+\nDQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+\nMzI8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9InJv\nd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+TjIwPC90ZD4J\nCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlNb29z\nYWNoIEJmLg0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3Nw\nYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVt\nbiI+NDI8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9\nInJvd09kZCI+DQoJCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1uIj5VMTwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJT2x5\nbXBpYSAtIEVpbmthdWZzemVudHJ1bQ0KCQkJCQk8c3BhbiBjbGFzcz0ic3Bh\nY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNs\nYXNzPSJpbk1pbkNvbHVtbiI+NDg8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJ\nDQoJCQk8dHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGlu\nZUNvbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25D\nb2x1bW4iPg0KCQkJCQlLYXJsc3BsYXR6IChTdGFjaHVzKQ0KCQkJCQk8c3Bh\nbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJ\nDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+NjI8L3RkPg0KCQkJCQ0K\nCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRk\nIGNsYXNzPSJsaW5lQ29sdW1uIj5OMjA8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFz\ncz0ic3RhdGlvbkNvbHVtbiI+DQoJCQkJCU1vb3NhY2ggQmYuDQoJCQkJCTxz\ncGFuIGNsYXNzPSJzcGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJ\nCQkNCgkJCQk8dGQgY2xhc3M9ImluTWluQ29sdW1uIj43MjwvdGQ+DQoJCQkJ\nDQoJCQk8L3RyPg0KCQkNCgkJDQoJCQ0KCQk8dHI+CQkJDQoJCQk8dGQgY29s\nc3Bhbj0iNCIgY2xhc3M9InJlbG9hZExpbmsiPgkJDQoJCQkJPGEgaHJlZj0i\nL2ltcy9kZmlTdGF0aWNBbnplaWdlLnN2Yz9oYWx0ZXN0ZWxsZT1XZXN0ZnJp\nZWRob2YmdWJhaG49Y2hlY2tlZCZidXM9Y2hlY2tlZCZ0cmFtPWNoZWNrZWQm\nc2JhaG49Ij4NCgkJCQkJRmFocnRlbiBha3R1YWxpc2llcmVuIA0KCQkJCTwv\nYT4NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQk8L3RhYmxlPg0KCQk8dGFi\nbGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGZvb3RlclRhYmxlIj4NCgkJPHRy\nPg0KCQkJPHRkIGNsYXNzPSJmb290ZXIiPg0KCSAgICAJPGEgaHJlZj0iaHR0\ncDovL3d3dy5tdmctbW9iaWwuZGUvaW1wcmVzc3VtLmh0bSIgdGFyZ2V0PSJf\nYmxhbmsiPkltcHJlc3N1bTwvYT4gDQoJCQk8L3RkPg0KCQk8L3RyPg0KCTwv\ndGFibGU+CQ0KPC9ib2R5Pg0KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 00:39:16 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Westfriedhof&u=checked&tram=checked&bus=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:59:45 GMT"],"content-language":["en-US"],"cteonnt-length":["3229"],"keep-alive":["timeout=15, max=71"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["880"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogV2Vz\ndGZyaWVkaG9mPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPldlc3RmcmllZGhvZjwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjU5PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4yMDwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJS2Fy\nbHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjEyPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1\nbW4iPk4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1u\nIj4NCgkJCQkJTW9vc2FjaCBCZi4NCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNl\nciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFz\ncz0iaW5NaW5Db2x1bW4iPjIyPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNv\nbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlFaW5zdGVpbnN0cmHfZQ0KCQkJCQk8c3BhbiBjbGFzcz0i\nc3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRk\nIGNsYXNzPSJpbk1pbkNvbHVtbiI+NDI8L3RkPg0KCQkJCQ0KCQkJPC90cj4N\nCgkJDQoJCQk8dHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0i\nbGluZUNvbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRp\nb25Db2x1bW4iPg0KCQkJCQlNb29zYWNoIEJmLg0KCQkJCQk8c3BhbiBjbGFz\ncz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJ\nPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+NTI8L3RkPg0KCQkJCQ0KCQkJPC90\ncj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRkIGNsYXNz\nPSJsaW5lQ29sdW1uIj4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0\naW9uQ29sdW1uIj4NCgkJCQkJS2FybHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJ\nPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+\nCQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjY2PC90ZD4NCgkJ\nCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJ\nCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPjIwPC90ZD4JCQkNCgkJCQk8dGQg\nY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlNb29zYWNoIEJmLg0KCQkJ\nCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90\nZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+NzM8L3RkPg0K\nCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJ\nCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1uIj4yMDwvdGQ+CQkJDQoJCQkJPHRk\nIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJTW9vc2FjaCBCZi4NCgkJ\nCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwv\ndGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjc3PC90ZD4N\nCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4N\nCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPjIwPC90ZD4JCQkNCgkJCQk8\ndGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlLYXJsc3BsYXR6IChT\ndGFjaHVzKQ0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3Nw\nYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVt\nbiI+ODY8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJPHRy\nPgkJCQ0KCQkJPHRkIGNvbHNwYW49IjQiIGNsYXNzPSJyZWxvYWRMaW5rIj4J\nCQ0KCQkJCTxhIGhyZWY9Ii9pbXMvZGZpU3RhdGljQW56ZWlnZS5zdmM/aGFs\ndGVzdGVsbGU9V2VzdGZyaWVkaG9mJnViYWhuPSZidXM9Y2hlY2tlZCZ0cmFt\nPWNoZWNrZWQmc2JhaG49Ij4NCgkJCQkJRmFocnRlbiBha3R1YWxpc2llcmVu\nIA0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQk8L3RhYmxl\nPg0KCQk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGZvb3RlclRhYmxl\nIj4NCgkJPHRyPg0KCQkJPHRkIGNsYXNzPSJmb290ZXIiPg0KCSAgICAJPGEg\naHJlZj0iaHR0cDovL3d3dy5tdmctbW9iaWwuZGUvaW1wcmVzc3VtLmh0bSIg\ndGFyZ2V0PSJfYmxhbmsiPkltcHJlc3N1bTwvYT4gDQoJCQk8L3RkPg0KCQk8\nL3RyPg0KCTwvdGFibGU+CQ0KPC9ib2R5Pg0KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:59:45 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Westfriedhof&ubahn=checked&tram=checked&bus=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 00:53:20 GMT"],"content-language":["en-US"],"cteonnt-length":["3490"],"keep-alive":["timeout=15, max=93"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["916"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogV2Vz\ndGZyaWVkaG9mPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPldlc3RmcmllZGhvZjwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAx\nOjUzPC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPlUxPC90ZD4J\nCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlPbHlt\ncGlhIC0gRWlua2F1ZnN6ZW50cnVtDQoJCQkJCTxzcGFuIGNsYXNzPSJzcGFj\nZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQgY2xh\nc3M9ImluTWluQ29sdW1uIj40PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVD\nb2x1bW4iPlUxPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlNYW5nZmFsbHBsYXR6DQoJCQkJCTxzcGFuIGNsYXNzPSJz\ncGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQg\nY2xhc3M9ImluTWluQ29sdW1uIj4xMDwvdGQ+DQoJCQkJDQoJCQk8L3RyPg0K\nCQkNCgkJCTx0ciBjbGFzcz0icm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9Imxp\nbmVDb2x1bW4iPk4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9u\nQ29sdW1uIj4NCgkJCQkJS2FybHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJPHNw\nYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJ\nCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjE4PC90ZD4NCgkJCQkN\nCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8\ndGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNs\nYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJTW9vc2FjaCBCZi4NCgkJCQkJ\nPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+\nCQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjI4PC90ZD4NCgkJ\nCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJ\nCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+VTE8L3RkPgkJCQ0KCQkJCTx0ZCBj\nbGFzcz0ic3RhdGlvbkNvbHVtbiI+DQoJCQkJCU9seW1waWEgLSBFaW5rYXVm\nc3plbnRydW0NCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9z\ncGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1\nbW4iPjMzPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNz\nPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4yMDwv\ndGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJ\nS2FybHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNl\nciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFz\ncz0iaW5NaW5Db2x1bW4iPjQ4PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNv\nbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlNb29zYWNoIEJmLg0KCQkJCQk8c3BhbiBjbGFzcz0ic3Bh\nY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNs\nYXNzPSJpbk1pbkNvbHVtbiI+NTg8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJ\nDQoJCQk8dHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGlu\nZUNvbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25D\nb2x1bW4iPg0KCQkJCQlLYXJsc3BsYXR6IChTdGFjaHVzKQ0KCQkJCQk8c3Bh\nbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJ\nDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+Nzg8L3RkPg0KCQkJCQ0K\nCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRk\nIGNsYXNzPSJsaW5lQ29sdW1uIj5OMjA8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFz\ncz0ic3RhdGlvbkNvbHVtbiI+DQoJCQkJCU1vb3NhY2ggQmYuDQoJCQkJCTxz\ncGFuIGNsYXNzPSJzcGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJ\nCQkNCgkJCQk8dGQgY2xhc3M9ImluTWluQ29sdW1uIj44ODwvdGQ+DQoJCQkJ\nDQoJCQk8L3RyPg0KCQkNCgkJDQoJCQ0KCQk8dHI+CQkJDQoJCQk8dGQgY29s\nc3Bhbj0iNCIgY2xhc3M9InJlbG9hZExpbmsiPgkJDQoJCQkJPGEgaHJlZj0i\nL2ltcy9kZmlTdGF0aWNBbnplaWdlLnN2Yz9oYWx0ZXN0ZWxsZT1XZXN0ZnJp\nZWRob2YmdWJhaG49Y2hlY2tlZCZidXM9Y2hlY2tlZCZ0cmFtPWNoZWNrZWQm\nc2JhaG49Ij4NCgkJCQkJRmFocnRlbiBha3R1YWxpc2llcmVuIA0KCQkJCTwv\nYT4NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQk8L3RhYmxlPg0KCQk8dGFi\nbGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGZvb3RlclRhYmxlIj4NCgkJPHRy\nPg0KCQkJPHRkIGNsYXNzPSJmb290ZXIiPg0KCSAgICAJPGEgaHJlZj0iaHR0\ncDovL3d3dy5tdmctbW9iaWwuZGUvaW1wcmVzc3VtLmh0bSIgdGFyZ2V0PSJf\nYmxhbmsiPkltcHJlc3N1bTwvYT4gDQoJCQk8L3RkPg0KCQk8L3RyPg0KCTwv\ndGFibGU+CQ0KPC9ib2R5Pg0KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 00:53:20 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
    
        data/fixtures/vcr_cassettes/test_0004_should_provide_access_to_the_response_through_response.json
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Westfriedhof&ubahn=checked&tram=checked&bus=checked","body":{"encoding":"US-ASCII","string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 00:39:16 GMT"],"content-language":["en-US"],"cteonnt-length":["3490"],"keep-alive":["timeout=15, max=98"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b245525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["899"]},"body":{"encoding":"ASCII-8BIT","string":"\r\n\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n\t\r\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n\t<meta name=\"viewport\" content=\"width=340px\">\r\n\t<title>MVG-Live: Westfriedhof</title>\r\n\t<link type=\"text/css\" rel='stylesheet' href='css/size30/mvg/mvglive-mobile.css' media='all'>\r\n</head>\r\n<body>\r\n\t<div class=\"departureTable header logo\">\r\n\t\t<div class=\"logoLeft\">\r\n\t\t\t<img class=\"logoImgLeft\" src=\"images/size30/grafik/mvg/mobile-logo-left.jpg\" alt=\"MVG live\">\r\n\t\t</div>\r\n\t\t<div class=\"logoRight\">\r\n\t\t\t<img class=\"logoImgRight\" src=\"images/size30/grafik/mvg/mobile-logo-right.jpg\" alt=\"MVG live\">\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n\t\r\n\r\n\t\r\n\t<table class=\"departureTable departureView\">\r\n\t\t<tr>\r\n\t\t\t<td colspan=\"2\" class=\"headerStationColumn\">Westfriedhof</td>\r\n\t\t\t<td colspan=\"2\" class=\"serverTimeColumn\">01:39</td>\r\n\t\t</tr>\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t<tr class=\"rowOdd\">\r\n\t\t\t\t<td class=\"lineColumn\">N20</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tKarlsplatz (Stachus)\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">2</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowEven\">\r\n\t\t\t\t<td class=\"lineColumn\">N20</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tMoosach Bf.\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">12</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowOdd\">\r\n\t\t\t\t<td class=\"lineColumn\">U1</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tOlympia - Einkaufszentrum\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">18</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowEven\">\r\n\t\t\t\t<td class=\"lineColumn\">U1</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tMangfallplatz\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">24</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowOdd\">\r\n\t\t\t\t<td class=\"lineColumn\">N20</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tKarlsplatz (Stachus)\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">32</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowEven\">\r\n\t\t\t\t<td class=\"lineColumn\">N20</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tMoosach Bf.\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">42</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowOdd\">\r\n\t\t\t\t<td class=\"lineColumn\">U1</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tOlympia - Einkaufszentrum\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">48</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowEven\">\r\n\t\t\t\t<td class=\"lineColumn\">N20</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tKarlsplatz (Stachus)\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">62</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\t<tr class=\"rowOdd\">\r\n\t\t\t\t<td class=\"lineColumn\">N20</td>\t\t\t\r\n\t\t\t\t<td class=\"stationColumn\">\r\n\t\t\t\t\tMoosach Bf.\r\n\t\t\t\t\t<span class=\"spacer\"> </span>\r\n\t\t\t\t</td>\t\t\t\t\r\n\t\t\t\t<td class=\"inMinColumn\">72</td>\r\n\t\t\t\t\r\n\t\t\t</tr>\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t<tr>\t\t\t\r\n\t\t\t<td colspan=\"4\" class=\"reloadLink\">\t\t\r\n\t\t\t\t<a href=\"/ims/dfiStaticAnzeige.svc?haltestelle=Westfriedhof&ubahn=checked&bus=checked&tram=checked&sbahn=\">\r\n\t\t\t\t\tFahrten aktualisieren \r\n\t\t\t\t</a>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t\r\n\t\t</table>\r\n\t\t<table class=\"departureTable footerTable\">\r\n\t\t<tr>\r\n\t\t\t<td class=\"footer\">\r\n\t    \t<a href=\"http://www.mvg-mobil.de/impressum.htm\" target=\"_blank\">Impressum</a> \r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</table>\t\r\n</body>\r\n</html>"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 00:39:16 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"http_interactions":[{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Westfriedhof&ubahn=checked&tram=checked&bus=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 00:53:32 GMT"],"content-language":["en-US"],"cteonnt-length":["3490"],"keep-alive":["timeout=15, max=74"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["916"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogV2Vz\ndGZyaWVkaG9mPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPldlc3RmcmllZGhvZjwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAx\nOjUzPC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPlUxPC90ZD4J\nCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlPbHlt\ncGlhIC0gRWlua2F1ZnN6ZW50cnVtDQoJCQkJCTxzcGFuIGNsYXNzPSJzcGFj\nZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQgY2xh\nc3M9ImluTWluQ29sdW1uIj40PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVD\nb2x1bW4iPlUxPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlNYW5nZmFsbHBsYXR6DQoJCQkJCTxzcGFuIGNsYXNzPSJz\ncGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJCQkNCgkJCQk8dGQg\nY2xhc3M9ImluTWluQ29sdW1uIj4xMDwvdGQ+DQoJCQkJDQoJCQk8L3RyPg0K\nCQkNCgkJCTx0ciBjbGFzcz0icm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9Imxp\nbmVDb2x1bW4iPk4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9u\nQ29sdW1uIj4NCgkJCQkJS2FybHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJPHNw\nYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJ\nCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjE4PC90ZD4NCgkJCQkN\nCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8\ndGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNs\nYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJTW9vc2FjaCBCZi4NCgkJCQkJ\nPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+\nCQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjI4PC90ZD4NCgkJ\nCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJ\nCTx0ZCBjbGFzcz0ibGluZUNvbHVtbiI+VTE8L3RkPgkJCQ0KCQkJCTx0ZCBj\nbGFzcz0ic3RhdGlvbkNvbHVtbiI+DQoJCQkJCU9seW1waWEgLSBFaW5rYXVm\nc3plbnRydW0NCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9z\ncGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1\nbW4iPjMzPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNz\nPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4yMDwv\ndGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJ\nS2FybHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNl\nciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFz\ncz0iaW5NaW5Db2x1bW4iPjQ4PC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNv\nbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlNb29zYWNoIEJmLg0KCQkJCQk8c3BhbiBjbGFzcz0ic3Bh\nY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNs\nYXNzPSJpbk1pbkNvbHVtbiI+NTg8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJ\nDQoJCQk8dHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0ibGlu\nZUNvbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25D\nb2x1bW4iPg0KCQkJCQlLYXJsc3BsYXR6IChTdGFjaHVzKQ0KCQkJCQk8c3Bh\nbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJ\nDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+Nzg8L3RkPg0KCQkJCQ0K\nCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRk\nIGNsYXNzPSJsaW5lQ29sdW1uIj5OMjA8L3RkPgkJCQ0KCQkJCTx0ZCBjbGFz\ncz0ic3RhdGlvbkNvbHVtbiI+DQoJCQkJCU1vb3NhY2ggQmYuDQoJCQkJCTxz\ncGFuIGNsYXNzPSJzcGFjZXIiPiZuYnNwOzwvc3Bhbj4NCgkJCQk8L3RkPgkJ\nCQkNCgkJCQk8dGQgY2xhc3M9ImluTWluQ29sdW1uIj44ODwvdGQ+DQoJCQkJ\nDQoJCQk8L3RyPg0KCQkNCgkJDQoJCQ0KCQk8dHI+CQkJDQoJCQk8dGQgY29s\nc3Bhbj0iNCIgY2xhc3M9InJlbG9hZExpbmsiPgkJDQoJCQkJPGEgaHJlZj0i\nL2ltcy9kZmlTdGF0aWNBbnplaWdlLnN2Yz9oYWx0ZXN0ZWxsZT1XZXN0ZnJp\nZWRob2YmdWJhaG49Y2hlY2tlZCZidXM9Y2hlY2tlZCZ0cmFtPWNoZWNrZWQm\nc2JhaG49Ij4NCgkJCQkJRmFocnRlbiBha3R1YWxpc2llcmVuIA0KCQkJCTwv\nYT4NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQk8L3RhYmxlPg0KCQk8dGFi\nbGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGZvb3RlclRhYmxlIj4NCgkJPHRy\nPg0KCQkJPHRkIGNsYXNzPSJmb290ZXIiPg0KCSAgICAJPGEgaHJlZj0iaHR0\ncDovL3d3dy5tdmctbW9iaWwuZGUvaW1wcmVzc3VtLmh0bSIgdGFyZ2V0PSJf\nYmxhbmsiPkltcHJlc3N1bTwvYT4gDQoJCQk8L3RkPg0KCQk8L3RyPg0KCTwv\ndGFibGU+CQ0KPC9ib2R5Pg0KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 00:53:32 GMT"},{"request":{"method":"get","uri":"http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Westfriedhof&u=checked&tram=checked&bus=checked","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Content-Type":["text/html; charset=UTF-8"]}},"response":{"status":{"code":200,"message":null},"headers":{"date":["Sun, 18 Mar 2012 02:59:45 GMT"],"content-language":["en-US"],"cteonnt-length":["3229"],"keep-alive":["timeout=15, max=72"],"connection":["Keep-Alive"],"content-type":["text/html;charset=ISO-8859-1"],"server":["SWM Webserver"],"set-cookie":["NSC_MC_nwh-mjwf=ffffffffaf1812b345525d5f4f58455e445a4a423660;path=/;httponly"],"cache-control":["private"],"content-length":["880"]},"body":{"encoding":"ASCII-8BIT","base64_string":"DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0\nLjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o\ndG1sNC9sb29zZS5kdGQiPg0KPGh0bWw+DQo8aGVhZD4NCgkNCgk8bWV0YSBo\ndHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg\nY2hhcnNldD1JU08tODg1OS0xIj4NCgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg\nY29udGVudD0id2lkdGg9MzQwcHgiPg0KCTx0aXRsZT5NVkctTGl2ZTogV2Vz\ndGZyaWVkaG9mPC90aXRsZT4NCgk8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVs\nPSdzdHlsZXNoZWV0JyBocmVmPSdjc3Mvc2l6ZTMwL212Zy9tdmdsaXZlLW1v\nYmlsZS5jc3MnIG1lZGlhPSdhbGwnPg0KPC9oZWFkPg0KPGJvZHk+DQoJPGRp\ndiBjbGFzcz0iZGVwYXJ0dXJlVGFibGUgaGVhZGVyIGxvZ28iPg0KCQk8ZGl2\nIGNsYXNzPSJsb2dvTGVmdCI+DQoJCQk8aW1nIGNsYXNzPSJsb2dvSW1nTGVm\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\nbGVmdC5qcGciIGFsdD0iTVZHIGxpdmUiPg0KCQk8L2Rpdj4NCgkJPGRpdiBj\nbGFzcz0ibG9nb1JpZ2h0Ij4NCgkJCTxpbWcgY2xhc3M9ImxvZ29JbWdSaWdo\ndCIgc3JjPSJpbWFnZXMvc2l6ZTMwL2dyYWZpay9tdmcvbW9iaWxlLWxvZ28t\ncmlnaHQuanBnIiBhbHQ9Ik1WRyBsaXZlIj4NCgkJPC9kaXY+DQoJPC9kaXY+\nDQoJDQoJDQoNCgkNCgk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGRl\ncGFydHVyZVZpZXciPg0KCQk8dHI+DQoJCQk8dGQgY29sc3Bhbj0iMiIgY2xh\nc3M9ImhlYWRlclN0YXRpb25Db2x1bW4iPldlc3RmcmllZGhvZjwvdGQ+DQoJ\nCQk8dGQgY29sc3Bhbj0iMiIgY2xhc3M9InNlcnZlclRpbWVDb2x1bW4iPjAz\nOjU5PC90ZD4NCgkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJCTx0ciBjbGFzcz0i\ncm93T2RkIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPk4yMDwvdGQ+\nCQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJS2Fy\nbHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+\nJm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0i\naW5NaW5Db2x1bW4iPjEyPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJ\nPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1\nbW4iPk4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0aW9uQ29sdW1u\nIj4NCgkJCQkJTW9vc2FjaCBCZi4NCgkJCQkJPHNwYW4gY2xhc3M9InNwYWNl\nciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+CQkJCQ0KCQkJCTx0ZCBjbGFz\ncz0iaW5NaW5Db2x1bW4iPjIyPC90ZD4NCgkJCQkNCgkJCTwvdHI+DQoJCQ0K\nCQkJPHRyIGNsYXNzPSJyb3dPZGQiPg0KCQkJCTx0ZCBjbGFzcz0ibGluZUNv\nbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRpb25Db2x1\nbW4iPg0KCQkJCQlFaW5zdGVpbnN0cmHfZQ0KCQkJCQk8c3BhbiBjbGFzcz0i\nc3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRk\nIGNsYXNzPSJpbk1pbkNvbHVtbiI+NDI8L3RkPg0KCQkJCQ0KCQkJPC90cj4N\nCgkJDQoJCQk8dHIgY2xhc3M9InJvd0V2ZW4iPg0KCQkJCTx0ZCBjbGFzcz0i\nbGluZUNvbHVtbiI+TjIwPC90ZD4JCQkNCgkJCQk8dGQgY2xhc3M9InN0YXRp\nb25Db2x1bW4iPg0KCQkJCQlNb29zYWNoIEJmLg0KCQkJCQk8c3BhbiBjbGFz\ncz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJ\nPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+NTI8L3RkPg0KCQkJCQ0KCQkJPC90\ncj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJCQkJPHRkIGNsYXNz\nPSJsaW5lQ29sdW1uIj4yMDwvdGQ+CQkJDQoJCQkJPHRkIGNsYXNzPSJzdGF0\naW9uQ29sdW1uIj4NCgkJCQkJS2FybHNwbGF0eiAoU3RhY2h1cykNCgkJCQkJ\nPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwvdGQ+\nCQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjY2PC90ZD4NCgkJ\nCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4NCgkJ\nCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPjIwPC90ZD4JCQkNCgkJCQk8dGQg\nY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlNb29zYWNoIEJmLg0KCQkJ\nCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3NwYW4+DQoJCQkJPC90\nZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVtbiI+NzM8L3RkPg0K\nCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQk8dHIgY2xhc3M9InJvd09kZCI+DQoJ\nCQkJPHRkIGNsYXNzPSJsaW5lQ29sdW1uIj4yMDwvdGQ+CQkJDQoJCQkJPHRk\nIGNsYXNzPSJzdGF0aW9uQ29sdW1uIj4NCgkJCQkJTW9vc2FjaCBCZi4NCgkJ\nCQkJPHNwYW4gY2xhc3M9InNwYWNlciI+Jm5ic3A7PC9zcGFuPg0KCQkJCTwv\ndGQ+CQkJCQ0KCQkJCTx0ZCBjbGFzcz0iaW5NaW5Db2x1bW4iPjc3PC90ZD4N\nCgkJCQkNCgkJCTwvdHI+DQoJCQ0KCQkJPHRyIGNsYXNzPSJyb3dFdmVuIj4N\nCgkJCQk8dGQgY2xhc3M9ImxpbmVDb2x1bW4iPjIwPC90ZD4JCQkNCgkJCQk8\ndGQgY2xhc3M9InN0YXRpb25Db2x1bW4iPg0KCQkJCQlLYXJsc3BsYXR6IChT\ndGFjaHVzKQ0KCQkJCQk8c3BhbiBjbGFzcz0ic3BhY2VyIj4mbmJzcDs8L3Nw\nYW4+DQoJCQkJPC90ZD4JCQkJDQoJCQkJPHRkIGNsYXNzPSJpbk1pbkNvbHVt\nbiI+ODY8L3RkPg0KCQkJCQ0KCQkJPC90cj4NCgkJDQoJCQ0KCQkNCgkJPHRy\nPgkJCQ0KCQkJPHRkIGNvbHNwYW49IjQiIGNsYXNzPSJyZWxvYWRMaW5rIj4J\nCQ0KCQkJCTxhIGhyZWY9Ii9pbXMvZGZpU3RhdGljQW56ZWlnZS5zdmM/aGFs\ndGVzdGVsbGU9V2VzdGZyaWVkaG9mJnViYWhuPSZidXM9Y2hlY2tlZCZ0cmFt\nPWNoZWNrZWQmc2JhaG49Ij4NCgkJCQkJRmFocnRlbiBha3R1YWxpc2llcmVu\nIA0KCQkJCTwvYT4NCgkJCTwvdGQ+DQoJCTwvdHI+DQoJCQ0KCQk8L3RhYmxl\nPg0KCQk8dGFibGUgY2xhc3M9ImRlcGFydHVyZVRhYmxlIGZvb3RlclRhYmxl\nIj4NCgkJPHRyPg0KCQkJPHRkIGNsYXNzPSJmb290ZXIiPg0KCSAgICAJPGEg\naHJlZj0iaHR0cDovL3d3dy5tdmctbW9iaWwuZGUvaW1wcmVzc3VtLmh0bSIg\ndGFyZ2V0PSJfYmxhbmsiPkltcHJlc3N1bTwvYT4gDQoJCQk8L3RkPg0KCQk8\nL3RyPg0KCTwvdGFibGU+CQ0KPC9ib2R5Pg0KPC9odG1sPg==\n"},"http_version":null},"recorded_at":"Sun, 18 Mar 2012 02:59:45 GMT"}],"recorded_with":"VCR 2.0.0"}
         | 
    
        data/lib/mvg.rb
    ADDED
    
    
    
        data/lib/mvg/live.rb
    ADDED
    
    | @@ -0,0 +1,73 @@ | |
| 1 | 
            +
            # encoding: UTF-8
         | 
| 2 | 
            +
            require 'active_model'
         | 
| 3 | 
            +
            require 'mvg/live/version'
         | 
| 4 | 
            +
            require 'mvg/live/encoding'
         | 
| 5 | 
            +
            require 'mvg/live/http'
         | 
| 6 | 
            +
            require 'mvg/live/parser'
         | 
| 7 | 
            +
            require 'mvg/live/cli'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            module MVG
         | 
| 10 | 
            +
              class Live
         | 
| 11 | 
            +
                include ActiveModel::Validations
         | 
| 12 | 
            +
                include MVG::Live::Encoding
         | 
| 13 | 
            +
                include MVG::Live::HTTP
         | 
| 14 | 
            +
                include MVG::Live::Parser
         | 
| 15 | 
            +
                include MVG::Live::CLI
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                ALL_TRANSPORTS = [ :u, :bus, :tram, :s ]
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                validates :station, :presence => true
         | 
| 20 | 
            +
                validates :transports, :presence => true
         | 
| 21 | 
            +
                validate  :available_transports
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                attr_accessor :station
         | 
| 24 | 
            +
                attr_accessor :transports
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                attr_reader :response_obj
         | 
| 27 | 
            +
                attr_reader :result_display
         | 
| 28 | 
            +
                attr_reader :result_sorted
         | 
| 29 | 
            +
                attr_reader :server_time
         | 
| 30 | 
            +
                attr_reader :cli
         | 
| 31 | 
            +
                attr_reader :using_config_file
         | 
| 32 | 
            +
                attr_reader :station_unknown
         | 
| 33 | 
            +
                attr_reader :station_alternates
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                def initialize(*args)
         | 
| 36 | 
            +
                  @station    = args.shift
         | 
| 37 | 
            +
                  opts        = args.shift || {}
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  if opts[:load_user_defaults]
         | 
| 40 | 
            +
                    load_user_defaults
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  @transports = opts[:transports] || @transports || ALL_TRANSPORTS
         | 
| 44 | 
            +
                  @schema     = opts[:schema]     || 'http'
         | 
| 45 | 
            +
                  @host       = opts[:host]       || 'www.mvg-live.de'
         | 
| 46 | 
            +
                  @path       = opts[:path]       || '/ims/dfiStaticAuswahl.svc'
         | 
| 47 | 
            +
                  @encoding   = opts[:encoding]   || 'iso-8859-1' # MVG, srsly...
         | 
| 48 | 
            +
                  @cli        = opts[:cli]        || false
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                  @faraday_adapter = opts[:faraday_adapter] || Faraday::Adapter::NetHttp
         | 
| 51 | 
            +
                  @faraday_logger  = opts[:faraday_logger]
         | 
| 52 | 
            +
                  @server_time = "??:??"
         | 
| 53 | 
            +
                  self
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                def fetch
         | 
| 57 | 
            +
                  if valid?
         | 
| 58 | 
            +
                    retrieve
         | 
| 59 | 
            +
                    parse
         | 
| 60 | 
            +
                  else
         | 
| 61 | 
            +
                    raise ArgumentError, self.errors.full_messages.join("\n")
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                def available_transports
         | 
| 66 | 
            +
                  unsupported_transports = @transports.to_a - ALL_TRANSPORTS
         | 
| 67 | 
            +
                  if unsupported_transports.presence
         | 
| 68 | 
            +
                    errors.add :transports, "transport(s) #{unsupported_transports.to_s} is/are not available"
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
              end
         | 
| 73 | 
            +
            end
         | 
    
        data/lib/mvg/live/cli.rb
    ADDED
    
    | @@ -0,0 +1,118 @@ | |
| 1 | 
            +
            require 'json'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module MVG
         | 
| 4 | 
            +
              class Live
         | 
| 5 | 
            +
                module CLI
         | 
| 6 | 
            +
                  module ClassMethods
         | 
| 7 | 
            +
                    def fetch(*args)
         | 
| 8 | 
            +
                      MVG::Live.new(*args).fetch
         | 
| 9 | 
            +
                    end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                    def fetch_to_display(*args)
         | 
| 12 | 
            +
                      MVG::Live.new(*args).fetch_to_display
         | 
| 13 | 
            +
                    rescue ArgumentError => e
         | 
| 14 | 
            +
                      e.message
         | 
| 15 | 
            +
                    end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                    def fetch_to_json(*args)
         | 
| 18 | 
            +
                      MVG::Live.new(*args).fetch_to_json
         | 
| 19 | 
            +
                    end
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  def self.included(base)
         | 
| 23 | 
            +
                    base.extend(ClassMethods)
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 27 | 
            +
                  def fetch_to_display
         | 
| 28 | 
            +
                    fetch
         | 
| 29 | 
            +
                    to_display
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  def fetch_to_json
         | 
| 33 | 
            +
                    fetch
         | 
| 34 | 
            +
                    to_json
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  def to_display
         | 
| 38 | 
            +
                    txt = ""
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                    if @using_config_file
         | 
| 41 | 
            +
                      txt += "=[ " + sprintf("%42s", @using_config_file) + " ]=\n"
         | 
| 42 | 
            +
                    else
         | 
| 43 | 
            +
                      txt += "=" * 48 + "\n"
         | 
| 44 | 
            +
                    end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                    if @station_unknown
         | 
| 47 | 
            +
                      txt += '   /!\ Station unknown!  Did you mean...? /!\   ' + "\n"
         | 
| 48 | 
            +
                      txt += "=" * 48 + "\n"
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                      @station_alternates.each do |a|
         | 
| 51 | 
            +
                        txt += " - #{a}\n"
         | 
| 52 | 
            +
                      end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                    else
         | 
| 55 | 
            +
                      txt += "#{@station}: #{@transports.map(&:to_s).map(&:capitalize).join(", ")}\n"
         | 
| 56 | 
            +
                      txt += "=" * 38 + "[ #{@server_time} ]=\n"
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                      @result_sorted.each do |e|
         | 
| 59 | 
            +
                        txt += sprintf "%-4s| %-30s|%3d Minuten\n", e[:line], e[:destination], e[:minutes]
         | 
| 60 | 
            +
                      end
         | 
| 61 | 
            +
                    end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                    txt
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                  def to_json
         | 
| 67 | 
            +
                    response = {}
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                    response[:station]            = station
         | 
| 70 | 
            +
                    response[:server_time]        = server_time
         | 
| 71 | 
            +
                    response[:transports]         = transports
         | 
| 72 | 
            +
                    response[:using_config_file]  = using_config_file
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                    response[:result_sorted]      = result_sorted
         | 
| 75 | 
            +
                    response[:result_display]     = result_display
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                    response[:station_unknown]    = station_unknown
         | 
| 78 | 
            +
                    response[:station_alternates] = station_alternates
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                    response.to_json
         | 
| 81 | 
            +
                  end
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                  def load_user_defaults
         | 
| 84 | 
            +
                    file_locations = [
         | 
| 85 | 
            +
                      ENV['MVG_FILE'],
         | 
| 86 | 
            +
                      "#{ENV['PWD']}/.mvg",
         | 
| 87 | 
            +
                      "#{ENV['HOME']}/.mvg"
         | 
| 88 | 
            +
                    ]
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                    file_locations.each do |file|
         | 
| 91 | 
            +
                      if file && File.exists?(file)
         | 
| 92 | 
            +
                        data = JSON.parse File.read(file)
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                        if @station.empty? && data['default_station']
         | 
| 95 | 
            +
                          @station = data['default_station']
         | 
| 96 | 
            +
                        end
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                        @transports = data['default_transports'].map(&:downcase).map(&:to_sym) if data['default_transports']
         | 
| 99 | 
            +
                        @using_config_file = file
         | 
| 100 | 
            +
                        break
         | 
| 101 | 
            +
                      end
         | 
| 102 | 
            +
                    end
         | 
| 103 | 
            +
                  end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                  def cli_station_hacks_for(station)
         | 
| 106 | 
            +
                    case station
         | 
| 107 | 
            +
                    when 'Stachus', 'Karlsplatz'
         | 
| 108 | 
            +
                      'Karlsplatz (Stachus)'
         | 
| 109 | 
            +
                    when 'Moosach Bf', 'Moosach Bahnhof'
         | 
| 110 | 
            +
                      'Moosach Bf.'
         | 
| 111 | 
            +
                    else
         | 
| 112 | 
            +
                      station
         | 
| 113 | 
            +
                    end
         | 
| 114 | 
            +
                  end
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                end
         | 
| 117 | 
            +
              end
         | 
| 118 | 
            +
            end
         | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            if '1.9'.respond_to?(:encode)
         | 
| 2 | 
            +
              module MVG
         | 
| 3 | 
            +
                class Live
         | 
| 4 | 
            +
                  module Encoding
         | 
| 5 | 
            +
                    def to_utf8(string)
         | 
| 6 | 
            +
                      string.encode("UTF-8")
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                    def to_encoding(string)
         | 
| 10 | 
            +
                      string.encode @encoding
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            else
         | 
| 17 | 
            +
              # upgrade to 1.9.3 or gtfo. srsly!
         | 
| 18 | 
            +
              require 'iconv'
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              module MVG
         | 
| 21 | 
            +
                class Live
         | 
| 22 | 
            +
                  module Encoding
         | 
| 23 | 
            +
                    def to_utf8(string)
         | 
| 24 | 
            +
                      Iconv.iconv("utf8", @encoding, string).join
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    def to_encoding(string)
         | 
| 28 | 
            +
                      Iconv.iconv(@encoding, "utf8", string).join
         | 
| 29 | 
            +
                    end
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
            end
         | 
| @@ -0,0 +1,60 @@ | |
| 1 | 
            +
            require 'faraday'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module MVG
         | 
| 4 | 
            +
              class Live
         | 
| 5 | 
            +
                module HTTP
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  def connection
         | 
| 8 | 
            +
                    @conn ||= Faraday.new(:url => "#{@schema}://#{@host}" ) do |builder|
         | 
| 9 | 
            +
                      builder.use @faraday_adapter
         | 
| 10 | 
            +
                      builder.response :logger if @faraday_logger
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
                    @conn
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def retrieve
         | 
| 16 | 
            +
                    return unless valid?
         | 
| 17 | 
            +
                    @response_obj = nil
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    res = connection.get do |req|
         | 
| 20 | 
            +
                      req.url @path, build_request_params
         | 
| 21 | 
            +
                      req.headers['Content-Type'] = "text/html; charset=UTF-8"
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
                    @response_obj = res
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                private
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  def build_request_params
         | 
| 29 | 
            +
                    params = {}
         | 
| 30 | 
            +
                    params[:haltestelle] = station_to_mvg(@station)
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                    transports.each do |available_transport|
         | 
| 33 | 
            +
                      params[transport_to_mvg(available_transport)] = "checked" if @transports.include? available_transport
         | 
| 34 | 
            +
                    end
         | 
| 35 | 
            +
                    params
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  def station_to_mvg(station)
         | 
| 39 | 
            +
                    station = to_encoding(station)
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                    if @cli
         | 
| 42 | 
            +
                      cli_station_hacks_for(station)
         | 
| 43 | 
            +
                    else
         | 
| 44 | 
            +
                      station
         | 
| 45 | 
            +
                    end
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  def transport_to_mvg(transport)
         | 
| 49 | 
            +
                    case transport
         | 
| 50 | 
            +
                    when :u
         | 
| 51 | 
            +
                      "ubahn"
         | 
| 52 | 
            +
                    when :s
         | 
| 53 | 
            +
                      "sbahn"
         | 
| 54 | 
            +
                    else
         | 
| 55 | 
            +
                      transport
         | 
| 56 | 
            +
                    end
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
              end
         | 
| 60 | 
            +
            end
         | 
| @@ -0,0 +1,63 @@ | |
| 1 | 
            +
            require 'nokogiri'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module MVG
         | 
| 4 | 
            +
              class Live
         | 
| 5 | 
            +
                module Parser
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  def parse(args = {})
         | 
| 8 | 
            +
                    return unless @response_obj
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                    @doc = Nokogiri::HTML(@response_obj.body)
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                    # <table class="departureTable departureView">
         | 
| 13 | 
            +
                    #...
         | 
| 14 | 
            +
                    # <tr class="rowOdd">
         | 
| 15 | 
            +
                    #   <td class="lineColumn">N16</td>
         | 
| 16 | 
            +
                    #   <td class="stationColumn">
         | 
| 17 | 
            +
                    #     Effnerplatz
         | 
| 18 | 
            +
                    #     <span class="spacer"> </span>
         | 
| 19 | 
            +
                    #   </td>
         | 
| 20 | 
            +
                    #   <td class="inMinColumn">13</td>
         | 
| 21 | 
            +
                    # </tr>
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                    # <tr class="rowEven">
         | 
| 24 | 
            +
                    #   <td class="lineColumn">N16</td>
         | 
| 25 | 
            +
                    #   <td class="stationColumn">
         | 
| 26 | 
            +
                    #     Amalienburgstraße
         | 
| 27 | 
            +
                    #     <span class="spacer"> </span>
         | 
| 28 | 
            +
                    #   </td>
         | 
| 29 | 
            +
                    #   <td class="inMinColumn">28</td>
         | 
| 30 | 
            +
                    # </tr>
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                    # <tr>
         | 
| 33 | 
            +
                    # <td colspan="4" class="sBahnHeader">S-Bahn München (Daten DB Regio AG)</td>
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                    @server_time = @doc.xpath('//td[@class="serverTimeColumn"]/text()')
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                    results = []
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                    @doc.xpath('//table[@class="departureTable departureView"]/tr[@class="rowOdd" or @class="rowEven"]').each do |entry|
         | 
| 40 | 
            +
                      result = {}
         | 
| 41 | 
            +
                      result[:line]        = entry.at('td[@class="lineColumn"]/text()').to_s.strip
         | 
| 42 | 
            +
                      result[:destination] = to_utf8(entry.at('td[@class="stationColumn"]/text()').to_s.strip)
         | 
| 43 | 
            +
                      result[:minutes]     = entry.at('td[@class="inMinColumn"]/text()').to_s.to_i
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                      results << result
         | 
| 46 | 
            +
                    end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                    unless results.empty?
         | 
| 49 | 
            +
                      @result_display = results
         | 
| 50 | 
            +
                      @result_sorted  = results.sort_by { |i| i[:minutes] }
         | 
| 51 | 
            +
                      @result_sorted
         | 
| 52 | 
            +
                    else
         | 
| 53 | 
            +
                      @station_unknown = true
         | 
| 54 | 
            +
                      @station_alternates = []
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                      @doc.xpath('//table[@class="departureTable header"]//li/a/text()').each do |alt|
         | 
| 57 | 
            +
                        @station_alternates << to_utf8(alt.to_s.strip)
         | 
| 58 | 
            +
                      end
         | 
| 59 | 
            +
                    end
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
            end
         | 
    
        data/mvg-live.gemspec
    ADDED
    
    | @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
            $:.push File.expand_path("../lib", __FILE__)
         | 
| 3 | 
            +
            require "mvg/live/version"
         | 
| 4 | 
            +
            require "mvg/live" # remove me?
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |s|
         | 
| 7 | 
            +
              s.name        = "mvg-live"
         | 
| 8 | 
            +
              s.version     = MVG::Live::VERSION
         | 
| 9 | 
            +
              s.authors     = ["Roland Moriz"]
         | 
| 10 | 
            +
              s.email       = ["roland@moriz.de"]
         | 
| 11 | 
            +
              s.homepage    = ""
         | 
| 12 | 
            +
              s.summary     = %q{A CLI and ruby client for mvg-live.de}
         | 
| 13 | 
            +
              s.description = %q{A CLI and ruby client for mvg-live.de, the real-time interface to Munich's public transport}
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              s.rubyforge_project = "mvg-live"
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              s.files         = `git ls-files`.split("\n")
         | 
| 18 | 
            +
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         | 
| 19 | 
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 20 | 
            +
              s.require_paths = ["lib"]
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              #s.required_ruby_version = '>= 1.9.3'
         | 
| 23 | 
            +
              s.required_ruby_version = '>= 1.8.7'
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              s.add_development_dependency "rake"
         | 
| 26 | 
            +
              s.add_development_dependency "minitest"
         | 
| 27 | 
            +
              s.add_development_dependency "minitest-reporters"
         | 
| 28 | 
            +
              s.add_development_dependency "factory_girl", "~> 2.1.0"
         | 
| 29 | 
            +
              s.add_development_dependency "vcr", "~> 2.0.0"
         | 
| 30 | 
            +
              s.add_development_dependency "growl"
         | 
| 31 | 
            +
              s.add_development_dependency "guard"
         | 
| 32 | 
            +
              s.add_development_dependency "guard-minitest"
         | 
| 33 | 
            +
              s.add_development_dependency "pry"
         | 
| 34 | 
            +
             | 
| 35 | 
            +
              s.add_runtime_dependency "activemodel",   "~> 3.2.2"
         | 
| 36 | 
            +
              s.add_runtime_dependency "faraday",       "~> 0.7.6"
         | 
| 37 | 
            +
              s.add_runtime_dependency "nokogiri",      "~> 1.5.2"
         | 
| 38 | 
            +
              s.add_runtime_dependency "json"
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            end
         | 
    
        data/spec/factories.rb
    ADDED
    
    | @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            # encoding: UTF-8
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            FactoryGirl.define do
         | 
| 4 | 
            +
              factory :live  do
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              factory :westfriedhof, :class => MVG::Live do
         | 
| 8 | 
            +
                station "Westfriedhof"
         | 
| 9 | 
            +
                transports [ :u, :tram, :bus ]
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              factory :hackerbrücke, :class => MVG::Live do
         | 
| 13 | 
            +
                station "Hackerbrücke"
         | 
| 14 | 
            +
                transports [ :tram, :s ]
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              factory :goethe_institut, :class => MVG::Live do
         | 
| 18 | 
            +
                station "Goethe-Institut"
         | 
| 19 | 
            +
                transports [ :tram ]
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              factory :leonrodplatz, :class => MVG::Live do
         | 
| 23 | 
            +
                station "Leonrodplatz"
         | 
| 24 | 
            +
                transports [ :tram, :bus ]
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
            end
         | 
| @@ -0,0 +1,143 @@ | |
| 1 | 
            +
            # encoding: UTF-8
         | 
| 2 | 
            +
            require 'spec_helper'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            describe MVG::Live do
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              before do
         | 
| 7 | 
            +
                # https://github.com/myronmarston/vcr/wiki/Usage-with-MiniTest
         | 
| 8 | 
            +
                VCR.insert_cassette __name__
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              after do
         | 
| 12 | 
            +
                VCR.eject_cassette
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              describe "when initialized" do
         | 
| 16 | 
            +
                it "can be created with no arguments" do
         | 
| 17 | 
            +
                  mvglive = MVG::Live.new
         | 
| 18 | 
            +
                  mvglive.must_be_instance_of MVG::Live
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                it "can be created for a specific station" do
         | 
| 22 | 
            +
                  mvglive = MVG::Live.new 'Westfriedhof'
         | 
| 23 | 
            +
                  mvglive.station.must_match 'Westfriedhof'
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                it "can be created for a specific transports" do
         | 
| 27 | 
            +
                  transports = [ :u, :bus, :tram, :s ]
         | 
| 28 | 
            +
                  mvglive = MVG::Live.new 'Westfriedhof', :transports => transports
         | 
| 29 | 
            +
                  mvglive.transports.must_be_same_as transports
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              describe "validations" do
         | 
| 34 | 
            +
                it "should not valid without a station" do
         | 
| 35 | 
            +
                  mvglive = MVG::Live.new
         | 
| 36 | 
            +
                  mvglive.station = nil
         | 
| 37 | 
            +
                  mvglive.valid?.must_equal false
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                it "should be valid with a station and the default transports" do
         | 
| 41 | 
            +
                  mvglive = build(:westfriedhof)
         | 
| 42 | 
            +
                  mvglive.valid?.must_equal true
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                it "should not be valid with invalid transports" do
         | 
| 46 | 
            +
                  transports = [ :transrapid, :express_s_bahn_zum_flughafen ]
         | 
| 47 | 
            +
                  mvglive = MVG::Live.new 'Vom äh Hauptbahnof äh abfliegen', :transports  => transports
         | 
| 48 | 
            +
                  mvglive.valid?.must_equal false
         | 
| 49 | 
            +
                  mvglive.errors.keys.must_include :transports
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
              describe "HTTP" do
         | 
| 54 | 
            +
                it "should return a faraday connection object" do
         | 
| 55 | 
            +
                  mvglive = build(:westfriedhof)
         | 
| 56 | 
            +
                  mvglive.connection.must_be_instance_of Faraday::Connection
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                it "should point to the correct host" do
         | 
| 60 | 
            +
                  mvglive = build(:westfriedhof)
         | 
| 61 | 
            +
                  mvglive.connection.host.must_equal 'www.mvg-live.de'
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                it "should build the right query" do
         | 
| 65 | 
            +
                  mvglive = build(:westfriedhof)
         | 
| 66 | 
            +
                  mvglive.retrieve.env[:url].to_s.must_equal 'http://www.mvg-live.de/ims/dfiStaticAuswahl.svc?haltestelle=Westfriedhof&ubahn=checked&tram=checked&bus=checked'
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                it "should provide cached access to the response object through @response_obj" do
         | 
| 70 | 
            +
                  mvglive = build(:westfriedhof)
         | 
| 71 | 
            +
                  mvglive.retrieve
         | 
| 72 | 
            +
                  mvglive.response_obj.must_be_instance_of Faraday::Response
         | 
| 73 | 
            +
                end
         | 
| 74 | 
            +
              end
         | 
| 75 | 
            +
             | 
| 76 | 
            +
              describe "Parser" do
         | 
| 77 | 
            +
                describe "unknown station" do
         | 
| 78 | 
            +
                  it "should inform about incorrent stations and possible fits" do
         | 
| 79 | 
            +
                    @mvglive = MVG::Live.new 'Moosfeld'
         | 
| 80 | 
            +
                    @mvglive.fetch
         | 
| 81 | 
            +
                    @mvglive.station_unknown.must_equal true
         | 
| 82 | 
            +
                  end
         | 
| 83 | 
            +
                end
         | 
| 84 | 
            +
                
         | 
| 85 | 
            +
                describe "with S-Bahn" do
         | 
| 86 | 
            +
                  before do
         | 
| 87 | 
            +
                    @mvglive = build(:hackerbrücke)
         | 
| 88 | 
            +
                    @mvglive.retrieve
         | 
| 89 | 
            +
                    @mvglive.parse
         | 
| 90 | 
            +
                  end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                  describe "display" do
         | 
| 93 | 
            +
                    it "should have the correct entry size" do
         | 
| 94 | 
            +
                      @mvglive.result_display.must_be_instance_of Array
         | 
| 95 | 
            +
                      @mvglive.result_display.size.must_equal 7
         | 
| 96 | 
            +
                    end
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                    it "should have the correct order " do
         | 
| 99 | 
            +
                      @mvglive.result_display.map{ |e| [ e[:line], e[:destination], e[:minutes] ]}.must_equal [
         | 
| 100 | 
            +
                                                                                                                  ["N16", "Effnerplatz", 8],
         | 
| 101 | 
            +
                                                                                                                  ["N16", "Amalienburgstraße", 23],
         | 
| 102 | 
            +
                                                                                                                  ["N16", "Effnerplatz", 38],
         | 
| 103 | 
            +
                                                                                                                  ["N16", "Amalienburgstraße", 53],
         | 
| 104 | 
            +
                                                                                                                  ["S8", "Flughafen München", 17]
         | 
| 105 | 
            +
                                                                                                              ]
         | 
| 106 | 
            +
                    end
         | 
| 107 | 
            +
                  end
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                  describe "sorted" do
         | 
| 110 | 
            +
                    it "should have the correct entry size" do
         | 
| 111 | 
            +
                      @mvglive.result_sorted.must_be_instance_of Array
         | 
| 112 | 
            +
                      @mvglive.result_sorted.size.must_equal 7
         | 
| 113 | 
            +
                    end
         | 
| 114 | 
            +
             | 
| 115 | 
            +
                    it "should have the correct order" do
         | 
| 116 | 
            +
                      @mvglive.result_sorted.map{ |e| [ e[:line], e[:destination], e[:minutes] ]}.must_equal [
         | 
| 117 | 
            +
                                                                                                                ["N16", "Effnerplatz", 5],
         | 
| 118 | 
            +
                                                                                                                ["S8", "Flughafen München", 13],
         | 
| 119 | 
            +
                                                                                                                ["N16", "Amalienburgstraße", 19],
         | 
| 120 | 
            +
                                                                                                                ["S1", "Flughafen München", 25],
         | 
| 121 | 
            +
                                                                                                                ["N16", "Effnerplatz", 34],
         | 
| 122 | 
            +
                                                                                                                ["N16", "Amalienburgstraße", 49]
         | 
| 123 | 
            +
                                                                                                              ]
         | 
| 124 | 
            +
                    end
         | 
| 125 | 
            +
                  end
         | 
| 126 | 
            +
             | 
| 127 | 
            +
                  describe "both" do
         | 
| 128 | 
            +
                    it "should have the same number of entries" do
         | 
| 129 | 
            +
                      @mvglive.result_sorted.size.must_equal @mvglive.result_display.size
         | 
| 130 | 
            +
                    end
         | 
| 131 | 
            +
                  end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                end
         | 
| 134 | 
            +
              end
         | 
| 135 | 
            +
             | 
| 136 | 
            +
              describe "Output" do
         | 
| 137 | 
            +
                describe "JSON" do
         | 
| 138 | 
            +
             | 
| 139 | 
            +
             | 
| 140 | 
            +
                end
         | 
| 141 | 
            +
              end
         | 
| 142 | 
            +
             | 
| 143 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            require 'rubygems'
         | 
| 2 | 
            +
            require 'minitest/spec'
         | 
| 3 | 
            +
            require 'minitest/autorun'
         | 
| 4 | 
            +
            #require 'minitest/reporters'
         | 
| 5 | 
            +
            require 'mvg/live'
         | 
| 6 | 
            +
            require 'vcr'
         | 
| 7 | 
            +
            require 'factory_girl'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            #MiniTest::Unit.runner = MiniTest::SuiteRunner.new
         | 
| 10 | 
            +
            #MiniTest::Unit.runner.reporters << MiniTest::Reporters::ProgressReporter.new
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            class MiniTest::Spec
         | 
| 13 | 
            +
              include Factory::Syntax::Methods
         | 
| 14 | 
            +
              alias :method_name :__name__ if defined? :__name__
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            FactoryGirl.find_definitions
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            VCR.configure do |c|
         | 
| 20 | 
            +
              c.cassette_library_dir = 'fixtures/vcr_cassettes'
         | 
| 21 | 
            +
              c.hook_into :faraday
         | 
| 22 | 
            +
              c.default_cassette_options = { :serialize_with => :json, preserve_exact_body_bytes: true }
         | 
| 23 | 
            +
            end
         | 
| 24 | 
            +
             | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,221 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: mvg-live
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.1
         | 
| 5 | 
            +
              prerelease: 
         | 
| 6 | 
            +
            platform: ruby
         | 
| 7 | 
            +
            authors:
         | 
| 8 | 
            +
            - Roland Moriz
         | 
| 9 | 
            +
            autorequire: 
         | 
| 10 | 
            +
            bindir: bin
         | 
| 11 | 
            +
            cert_chain: []
         | 
| 12 | 
            +
            date: 2012-03-18 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: rake
         | 
| 16 | 
            +
              requirement: &70366493885720 !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                none: false
         | 
| 18 | 
            +
                requirements:
         | 
| 19 | 
            +
                - - ! '>='
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: '0'
         | 
| 22 | 
            +
              type: :development
         | 
| 23 | 
            +
              prerelease: false
         | 
| 24 | 
            +
              version_requirements: *70366493885720
         | 
| 25 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 26 | 
            +
              name: minitest
         | 
| 27 | 
            +
              requirement: &70366493885260 !ruby/object:Gem::Requirement
         | 
| 28 | 
            +
                none: false
         | 
| 29 | 
            +
                requirements:
         | 
| 30 | 
            +
                - - ! '>='
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: '0'
         | 
| 33 | 
            +
              type: :development
         | 
| 34 | 
            +
              prerelease: false
         | 
| 35 | 
            +
              version_requirements: *70366493885260
         | 
| 36 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 37 | 
            +
              name: minitest-reporters
         | 
| 38 | 
            +
              requirement: &70366493884840 !ruby/object:Gem::Requirement
         | 
| 39 | 
            +
                none: false
         | 
| 40 | 
            +
                requirements:
         | 
| 41 | 
            +
                - - ! '>='
         | 
| 42 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            +
                    version: '0'
         | 
| 44 | 
            +
              type: :development
         | 
| 45 | 
            +
              prerelease: false
         | 
| 46 | 
            +
              version_requirements: *70366493884840
         | 
| 47 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 48 | 
            +
              name: factory_girl
         | 
| 49 | 
            +
              requirement: &70366493925680 !ruby/object:Gem::Requirement
         | 
| 50 | 
            +
                none: false
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ~>
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: 2.1.0
         | 
| 55 | 
            +
              type: :development
         | 
| 56 | 
            +
              prerelease: false
         | 
| 57 | 
            +
              version_requirements: *70366493925680
         | 
| 58 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 59 | 
            +
              name: vcr
         | 
| 60 | 
            +
              requirement: &70366493933400 !ruby/object:Gem::Requirement
         | 
| 61 | 
            +
                none: false
         | 
| 62 | 
            +
                requirements:
         | 
| 63 | 
            +
                - - ~>
         | 
| 64 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            +
                    version: 2.0.0
         | 
| 66 | 
            +
              type: :development
         | 
| 67 | 
            +
              prerelease: false
         | 
| 68 | 
            +
              version_requirements: *70366493933400
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: growl
         | 
| 71 | 
            +
              requirement: &70366493932880 !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                none: false
         | 
| 73 | 
            +
                requirements:
         | 
| 74 | 
            +
                - - ! '>='
         | 
| 75 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 76 | 
            +
                    version: '0'
         | 
| 77 | 
            +
              type: :development
         | 
| 78 | 
            +
              prerelease: false
         | 
| 79 | 
            +
              version_requirements: *70366493932880
         | 
| 80 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 81 | 
            +
              name: guard
         | 
| 82 | 
            +
              requirement: &70366493932120 !ruby/object:Gem::Requirement
         | 
| 83 | 
            +
                none: false
         | 
| 84 | 
            +
                requirements:
         | 
| 85 | 
            +
                - - ! '>='
         | 
| 86 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 87 | 
            +
                    version: '0'
         | 
| 88 | 
            +
              type: :development
         | 
| 89 | 
            +
              prerelease: false
         | 
| 90 | 
            +
              version_requirements: *70366493932120
         | 
| 91 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 92 | 
            +
              name: guard-minitest
         | 
| 93 | 
            +
              requirement: &70366493931620 !ruby/object:Gem::Requirement
         | 
| 94 | 
            +
                none: false
         | 
| 95 | 
            +
                requirements:
         | 
| 96 | 
            +
                - - ! '>='
         | 
| 97 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 98 | 
            +
                    version: '0'
         | 
| 99 | 
            +
              type: :development
         | 
| 100 | 
            +
              prerelease: false
         | 
| 101 | 
            +
              version_requirements: *70366493931620
         | 
| 102 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 103 | 
            +
              name: pry
         | 
| 104 | 
            +
              requirement: &70366493931180 !ruby/object:Gem::Requirement
         | 
| 105 | 
            +
                none: false
         | 
| 106 | 
            +
                requirements:
         | 
| 107 | 
            +
                - - ! '>='
         | 
| 108 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            +
                    version: '0'
         | 
| 110 | 
            +
              type: :development
         | 
| 111 | 
            +
              prerelease: false
         | 
| 112 | 
            +
              version_requirements: *70366493931180
         | 
| 113 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 114 | 
            +
              name: activemodel
         | 
| 115 | 
            +
              requirement: &70366493930680 !ruby/object:Gem::Requirement
         | 
| 116 | 
            +
                none: false
         | 
| 117 | 
            +
                requirements:
         | 
| 118 | 
            +
                - - ~>
         | 
| 119 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 120 | 
            +
                    version: 3.2.2
         | 
| 121 | 
            +
              type: :runtime
         | 
| 122 | 
            +
              prerelease: false
         | 
| 123 | 
            +
              version_requirements: *70366493930680
         | 
| 124 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 125 | 
            +
              name: faraday
         | 
| 126 | 
            +
              requirement: &70366493930180 !ruby/object:Gem::Requirement
         | 
| 127 | 
            +
                none: false
         | 
| 128 | 
            +
                requirements:
         | 
| 129 | 
            +
                - - ~>
         | 
| 130 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            +
                    version: 0.7.6
         | 
| 132 | 
            +
              type: :runtime
         | 
| 133 | 
            +
              prerelease: false
         | 
| 134 | 
            +
              version_requirements: *70366493930180
         | 
| 135 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 136 | 
            +
              name: nokogiri
         | 
| 137 | 
            +
              requirement: &70366493929720 !ruby/object:Gem::Requirement
         | 
| 138 | 
            +
                none: false
         | 
| 139 | 
            +
                requirements:
         | 
| 140 | 
            +
                - - ~>
         | 
| 141 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 142 | 
            +
                    version: 1.5.2
         | 
| 143 | 
            +
              type: :runtime
         | 
| 144 | 
            +
              prerelease: false
         | 
| 145 | 
            +
              version_requirements: *70366493929720
         | 
| 146 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 147 | 
            +
              name: json
         | 
| 148 | 
            +
              requirement: &70366493929180 !ruby/object:Gem::Requirement
         | 
| 149 | 
            +
                none: false
         | 
| 150 | 
            +
                requirements:
         | 
| 151 | 
            +
                - - ! '>='
         | 
| 152 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 153 | 
            +
                    version: '0'
         | 
| 154 | 
            +
              type: :runtime
         | 
| 155 | 
            +
              prerelease: false
         | 
| 156 | 
            +
              version_requirements: *70366493929180
         | 
| 157 | 
            +
            description: A CLI and ruby client for mvg-live.de, the real-time interface to Munich's
         | 
| 158 | 
            +
              public transport
         | 
| 159 | 
            +
            email:
         | 
| 160 | 
            +
            - roland@moriz.de
         | 
| 161 | 
            +
            executables:
         | 
| 162 | 
            +
            - mvg
         | 
| 163 | 
            +
            - mvg_json
         | 
| 164 | 
            +
            extensions: []
         | 
| 165 | 
            +
            extra_rdoc_files: []
         | 
| 166 | 
            +
            files:
         | 
| 167 | 
            +
            - .gitignore
         | 
| 168 | 
            +
            - Gemfile
         | 
| 169 | 
            +
            - Guardfile
         | 
| 170 | 
            +
            - Rakefile
         | 
| 171 | 
            +
            - bin/mvg
         | 
| 172 | 
            +
            - bin/mvg_json
         | 
| 173 | 
            +
            - fixtures/vcr_cassettes/test_0001_should_have_the_correct_entry_size.json
         | 
| 174 | 
            +
            - fixtures/vcr_cassettes/test_0001_should_have_the_same_number_of_entries.json
         | 
| 175 | 
            +
            - fixtures/vcr_cassettes/test_0001_should_inform_about_incorrent_stations_and_possible_fits.json
         | 
| 176 | 
            +
            - fixtures/vcr_cassettes/test_0001_should_parse_the_response_and_return_a_usable_data_structure.json
         | 
| 177 | 
            +
            - fixtures/vcr_cassettes/test_0002_should_have_the_correct_order.json
         | 
| 178 | 
            +
            - fixtures/vcr_cassettes/test_0002_should_have_the_correct_order_.json
         | 
| 179 | 
            +
            - fixtures/vcr_cassettes/test_0003_should_build_the_right_query.json
         | 
| 180 | 
            +
            - fixtures/vcr_cassettes/test_0004_should_provide_access_to_the_response_object_through_response_obj.json
         | 
| 181 | 
            +
            - fixtures/vcr_cassettes/test_0004_should_provide_access_to_the_response_through_response.json
         | 
| 182 | 
            +
            - fixtures/vcr_cassettes/test_0004_should_provide_cached_access_to_the_response_object_through_response_obj.json
         | 
| 183 | 
            +
            - lib/mvg.rb
         | 
| 184 | 
            +
            - lib/mvg/live.rb
         | 
| 185 | 
            +
            - lib/mvg/live/cli.rb
         | 
| 186 | 
            +
            - lib/mvg/live/encoding.rb
         | 
| 187 | 
            +
            - lib/mvg/live/http.rb
         | 
| 188 | 
            +
            - lib/mvg/live/parser.rb
         | 
| 189 | 
            +
            - lib/mvg/live/version.rb
         | 
| 190 | 
            +
            - mvg-live.gemspec
         | 
| 191 | 
            +
            - spec/factories.rb
         | 
| 192 | 
            +
            - spec/mvg_live_spec.rb
         | 
| 193 | 
            +
            - spec/spec_helper.rb
         | 
| 194 | 
            +
            homepage: ''
         | 
| 195 | 
            +
            licenses: []
         | 
| 196 | 
            +
            post_install_message: 
         | 
| 197 | 
            +
            rdoc_options: []
         | 
| 198 | 
            +
            require_paths:
         | 
| 199 | 
            +
            - lib
         | 
| 200 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 201 | 
            +
              none: false
         | 
| 202 | 
            +
              requirements:
         | 
| 203 | 
            +
              - - ! '>='
         | 
| 204 | 
            +
                - !ruby/object:Gem::Version
         | 
| 205 | 
            +
                  version: 1.8.7
         | 
| 206 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 207 | 
            +
              none: false
         | 
| 208 | 
            +
              requirements:
         | 
| 209 | 
            +
              - - ! '>='
         | 
| 210 | 
            +
                - !ruby/object:Gem::Version
         | 
| 211 | 
            +
                  version: '0'
         | 
| 212 | 
            +
            requirements: []
         | 
| 213 | 
            +
            rubyforge_project: mvg-live
         | 
| 214 | 
            +
            rubygems_version: 1.8.17
         | 
| 215 | 
            +
            signing_key: 
         | 
| 216 | 
            +
            specification_version: 3
         | 
| 217 | 
            +
            summary: A CLI and ruby client for mvg-live.de
         | 
| 218 | 
            +
            test_files:
         | 
| 219 | 
            +
            - spec/factories.rb
         | 
| 220 | 
            +
            - spec/mvg_live_spec.rb
         | 
| 221 | 
            +
            - spec/spec_helper.rb
         |