Class: Tracker
- Inherits:
-
Object
- Object
- Tracker
- Defined in:
- lib/tracker.rb
Instance Method Summary collapse
- #add(params = {}) ⇒ Object
- #bootstrap(params = {}) ⇒ Object
- #close(params = {}) ⇒ Object
- #create(params = {}) ⇒ Object
- #delete(params = {}) ⇒ Object
- #list(params = {}) ⇒ Object
- #open(params = {}) ⇒ Object
- #remove(params = {}) ⇒ Object
- #search(params = {}) ⇒ Object
- #show(params = {}) ⇒ Object
- #update(params = {}) ⇒ Object
Instance Method Details
#add(params = {}) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/tracker.rb', line 68 def add(params = {}) find_ticket(params[:id]) do |ticket| ticket.comments.create(:message => params[:message]) "New comment was added to ticket ##{ticket.number}" end end |
#bootstrap(params = {}) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/tracker.rb', line 2 def bootstrap(params = {}) $stdout = StringIO.new ActiveRecord::Schema.define do create_table "tickets" do |t| t.column "keywords", :string t.column "message", :text t.column "state", :int, :default => 0 t.column "updated_at", :datetime end create_table "comments" do |t| t.column "ticket_id", :int t.column "position", :int t.column "message", :text end end result = "New database '#{Environment::DATABASE}' was created" rescue ActiveRecord::StatementInvalid => e result = "Could not create the database '#{Environment::DATABASE}' because it already exists" ensure $stdout = STDOUT return result end |
#close(params = {}) ⇒ Object
89 90 91 92 93 94 |
# File 'lib/tracker.rb', line 89 def close(params = {}) find_ticket(params[:id]) do |ticket| ticket.close "Closed ticket ##{ticket.number}" end end |
#create(params = {}) ⇒ Object
26 27 28 29 |
# File 'lib/tracker.rb', line 26 def create(params = {}) ticket = Ticket.create(params) "Created new ticket ##{ticket.number}" end |
#delete(params = {}) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/tracker.rb', line 61 def delete(params = {}) find_ticket(params[:id]) do |ticket| ticket.destroy "Ticket ##{ticket.number} was deleted" end end |
#list(params = {}) ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/tracker.rb', line 37 def list(params = {}) conditions = { :state => Ticket::OPEN }.merge(params) tickets = Ticket.with_scope(:find => { :conditions => conditions }) do Ticket.find(:all, :order => "updated_at DESC") end return list_tickets(tickets) end |
#open(params = {}) ⇒ Object
82 83 84 85 86 87 |
# File 'lib/tracker.rb', line 82 def open(params = {}) find_ticket(params[:id]) do |ticket| ticket.open "Opened ticket ##{ticket.number}" end end |
#remove(params = {}) ⇒ Object
75 76 77 78 79 80 |
# File 'lib/tracker.rb', line 75 def remove(params = {}) find_ticket(params[:id]) do |ticket| ticket.comments[params[:position] - 1].destroy "Comment ##{params[:position]} was removed from ticket ##{ticket.number}" end end |
#search(params = {}) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/tracker.rb', line 46 def search(params = {}) phrase = params.delete(:id) tickets = Ticket.search(phrase, params.merge(:order => "updated_at DESC")) return list_tickets(tickets) end |
#show(params = {}) ⇒ Object
31 32 33 34 35 |
# File 'lib/tracker.rb', line 31 def show(params = {}) find_ticket(params[:id]) do |ticket| show_ticket(ticket) end end |
#update(params = {}) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/tracker.rb', line 53 def update(params = {}) find_ticket(params[:id]) do |ticket| params.delete(:id) ticket.update_attributes!(params) "Ticket ##{ticket.number} was updated" end end |