diff --git a/app/controllers/toilets_controller.rb b/app/controllers/toilets_controller.rb index 8ab35df..4ed9a4b 100644 --- a/app/controllers/toilets_controller.rb +++ b/app/controllers/toilets_controller.rb @@ -1,10 +1,14 @@ class ToiletsController < ApplicationController def index - @toilets = Toilet.all + @toilets = Toilet.all_to_json respond_to do |format| format.json { render :json => @toilets } end end + def show + @toilet = Toilet.all.detect{|toilet| toilet["lat_long"] == params["id"]} + end + end diff --git a/app/models/toilet.rb b/app/models/toilet.rb index f8b3d74..84f8822 100644 --- a/app/models/toilet.rb +++ b/app/models/toilet.rb @@ -1,6 +1,6 @@ class Toilet - def self.all + def self.all_to_json YAML.load(File.read("#{RAILS_ROOT}/db/toilets.yml")).map do |toilet| result = {} result["latitude"] = toilet["lat_long"].split(",").first.to_f @@ -9,4 +9,8 @@ def self.all end end + def self.all + YAML.load(File.read("#{RAILS_ROOT}/db/toilets.yml")) + end + end \ No newline at end of file diff --git a/app/views/toilets/show.html.haml b/app/views/toilets/show.html.haml new file mode 100644 index 0000000..1aacaff --- /dev/null +++ b/app/views/toilets/show.html.haml @@ -0,0 +1 @@ +Aqui vai ficar bem feito \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index a734df2..45c49db 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -30,7 +30,7 @@ # admin.resources :products # end - map.resources :toilets, :only => ["index"] + map.resources :toilets, :only => ["index", "show"] # You can have the root of your site routed with map.root -- just remember to delete public/index.html. # map.root :controller => "toilets" diff --git a/db/toilets.yml b/db/toilets.yml index 52dd334..b83a7d1 100644 --- a/db/toilets.yml +++ b/db/toilets.yml @@ -1,5 +1,7 @@ - lat_long: "-30.059140,-51.175904" + description: "Descrição do banheiro" - lat_long: "30.059047,-51.173013" + description: "Descrição do banheiro2" - lat_long: "-30.06031,-51.173646" -- lat_long: "-30.06031,-51.173646" + description: "Descrição do banheiro3" - lat_long: "-30.055973,-51.174898" \ No newline at end of file diff --git a/spec/controllers/toilets_controller_spec.rb b/spec/controllers/toilets_controller_spec.rb index 6296ffa..3ee1492 100644 --- a/spec/controllers/toilets_controller_spec.rb +++ b/spec/controllers/toilets_controller_spec.rb @@ -9,9 +9,18 @@ end it "should assign @toilets" do - assigns(:toilets).should == [{"latitude"=>-30.05914, "longitude"=>-51.175904}, {"latitude"=>30.059047, "longitude"=>-51.173013}, {"latitude"=>-30.06031, "longitude"=>-51.173646}, {"latitude"=>-30.06031, "longitude"=>-51.173646}, {"latitude"=>-30.055973, "longitude"=>-51.174898}] + assigns(:toilets).should == [{"latitude"=>-30.05914, "longitude"=>-51.175904}, {"latitude"=>30.059047, "longitude"=>-51.173013}, {"latitude"=>-30.06031, "longitude"=>-51.173646}, {"latitude"=>-30.055973, "longitude"=>-51.174898}] end end + describe "show" do + + it "should return toilet from lat_long" do + get :show, :id => "-30.059140,-51.175904" + assigns(:toilet).should == {"lat_long"=>"-30.059140,-51.175904", "description" => "Descrição do banheiro"} + end + + end + end diff --git a/spec/models/toilet_spec.rb b/spec/models/toilet_spec.rb index d8a011e..5111f10 100644 --- a/spec/models/toilet_spec.rb +++ b/spec/models/toilet_spec.rb @@ -5,7 +5,15 @@ describe ".all" do it "should return all toilets" do - Toilet.all.should == [{"latitude"=>-30.05914, "longitude"=>-51.175904}, {"latitude"=>30.059047, "longitude"=>-51.173013}, {"latitude"=>-30.06031, "longitude"=>-51.173646}, {"latitude"=>-30.06031, "longitude"=>-51.173646}, {"latitude"=>-30.055973, "longitude"=>-51.174898}] + Toilet.all.should == [{"lat_long"=>"-30.059140,-51.175904", "description"=>"Descrição do banheiro"}, {"lat_long"=>"30.059047,-51.173013", "description"=>"Descrição do banheiro2"}, {"lat_long"=>"-30.06031,-51.173646", "description"=>"Descrição do banheiro3"}, {"lat_long"=>"-30.055973,-51.174898"}] + end + + end + + describe ".all_to_json" do + + it "should return all toilets" do + Toilet.all_to_json.should == [{"latitude"=>-30.05914, "longitude"=>-51.175904}, {"latitude"=>30.059047, "longitude"=>-51.173013}, {"latitude"=>-30.06031, "longitude"=>-51.173646}, {"latitude"=>-30.055973, "longitude"=>-51.174898}] end end