Sha256: 4f0731796100a8152c665556549532f6d6760d27e77428aadcc88525541ac063

Contents?: true

Size: 929 Bytes

Versions: 1

Compression:

Stored size: 929 Bytes

Contents

# City model
class EventsNearby::City
	attr_accessor :name, :state, :events
	@@all = []

	def initialize(name, state)
		@name = name
		@state = state
		@events = []
		@@all << self
	end

	# Adds new event to city array
	def add_event(event)
		self.events << event unless self.events.include?(event)
	end

	def self.all
		@@all
	end

	# Find city if city and state combination exist already
	def self.find_by(name, state)
		self.all.detect{|city| city.name == name && city.state == state}
	end

	# Parse user city input and return name of city and state
	def self.parse_city_input(city_input)
		data = city_input.split(/[\s,]+/)

		if city_input.include?(",")
				state = data.last.gsub(/[^0-9A-Za-z]/, '').upcase
				city_array = data.first data.size - 1
		else
				city_array = data
		end

		name = city_array.collect do |item|
				item.gsub(/[^0-9A-Za-z]/, '').capitalize
		end.join(" ")

		{name: name, state: state}
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
events_nearby-0.1.1 lib/events_nearby/city.rb