commit 8af98ae5f4d0b1e99a8f041d3c38d023e2b3c13d
parent 4ceb8398b7709314f053e1feb604afa527d4f700
Author: Michal Sapka <msapka@gmail.com>
Date: Wed, 4 Nov 2015 23:26:39 +0100
stops are objects with lines
Diffstat:
4 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/lib/mpk_krakow_rb.rb b/lib/mpk_krakow_rb.rb
@@ -1,7 +1,11 @@
+# encoding: utf-8
+
+require 'ostruct'
require 'open-uri'
require 'nokogiri'
-require "mpk_krakow_rb/version"
-require "mpk_krakow_rb/stops.rb"
+require 'mpk_krakow_rb/version'
+require 'mpk_krakow_rb/stops.rb'
+require 'mpk_krakow_rb/stop.rb'
module MpkKrakowRb
# Your code goes here...
diff --git a/lib/mpk_krakow_rb/stop.rb b/lib/mpk_krakow_rb/stop.rb
@@ -0,0 +1,30 @@
+module MpkKrakowRb
+ class Stop
+ attr_accessor :id, :name
+
+ def initialize(id:, name:)
+ @id = id
+ @name =name
+ @url = "http://rozklady.mpk.krakow.pl/aktualne/p/p#{id}.htm"
+ end
+
+ def lines
+ @lines ||= get_lines
+ end
+
+ def get_lines
+ lines = []
+ @doc = Nokogiri::HTML(open(@url))
+ @doc.
+ to_s.
+ scan(/>(\d*)\s/).
+ map{ |i| i.first.to_i }.
+ reject(&:zero?).
+ uniq.
+ each do |line|
+ lines << line
+ end
+ lines
+ end
+ end
+end
diff --git a/spec/stop_spec.rb b/spec/stop_spec.rb
@@ -0,0 +1,9 @@
+require "spec_helper"
+
+describe MpkKrakowRb::Stop do
+ let(:stop) { MpkKrakowRb::Stop.new(id: "0782", name: "Agatowa") }
+
+ it 'gets lines' do
+ expect(stop.lines.count).not_to eq(0)
+ end
+end
diff --git a/spec/stops_spec.rb b/spec/stops_spec.rb
@@ -5,4 +5,8 @@ describe MpkKrakowRb::Stops do
it "returns stops" do
expect(stops.count).not_to eq(0)
end
+
+ it "stops are of a Stop class" do
+ expect(stops.first.class).to eq(MpkKrakowRb::Stop)
+ end
end