Skip to content

Instantly share code, notes, and snippets.

View andrzejkrzywda's full-sized avatar

Andrzej Krzywda andrzejkrzywda

View GitHub Profile
class PicturesController < ApplicationController
def index
if confirm_params_or_redirect(params)
redirect_to root_path(:view => @view, :filter => @filter) and return
end
Picture.find(@view, @filter)
end
@andrzejkrzywda
andrzejkrzywda / gist:a3306ac5779a87aff255
Created December 12, 2014 21:04
Integration test for a scaffolded Post(title, content) which goes through all the pages. No validations
require 'test_helper'
class MainTest < ActionDispatch::IntegrationTest
def test_main
#index looks ok
get '/'
assert_tag(:a, child: "New Post")
assert_select("a[href=/posts/new]")
def create
begin
PublishBlogPost.new.call(post_id)
rescue BlogPostNotFound
redirect_to foo
rescue AlreadyPublished
flash[:error] = already_plublished_message
render :foo
end
end
# CUSTOM EXCEPTIONS
class CallAlreadyInProgress < StandardError
end
class Dialer
def call(number)
raise CallAlreadyInProgress.new if call_already_in_progress?
end
end
def create
if issue_id.present?
log_time_on_issue
else
log_time_on_project
end
end
def log_time_on_project
log_time(nil, project_id) { do_log_time_on_project }
def create
CreateTimeEntryService.new(self).call()
end
class CreateTimeEntryService < SimpleDelegator
def initialize(parent)
super(parent)
end
def call
def create
@time_entry ||= TimeEntry.new(:project => @project, :issue => @issue, :user => User.current, :spent_on => User.current.today)
@time_entry.safe_attributes = params[:time_entry]
call_hook(:controller_timelog_edit_before_save, { :params => params, :time_entry => @time_entry })
if @time_entry.save
respond_to do |format|
format.html {
flash[:notice] = l(:notice_successful_create)
class IssuesController < ApplicationController
default_search_scope :issues
before_filter :find_issue, :only => [:show, :edit, :update]
before_filter :find_issues, :only => [:bulk_edit, :bulk_update, :destroy]
before_filter :find_project, :only => [:new, :create, :update_form]
before_filter :authorize, :except => [:index]
before_filter :find_optional_project, :only => [:index]
before_filter :check_for_default_issue_status, :only => [:new, :create]
before_filter :build_new_issue_from_params, :only => [:new, :create, :update_form]
@andrzejkrzywda
andrzejkrzywda / 0_reuse_code.js
Created January 12, 2014 13:12
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
class Company
def initialize
@employees = []
@roles = {}
end
def delegate(from_employee, task, to_employee)
raise TargetEmployeerDoesntHaveTheRequiredRole if ! has_role?(to_employee, task.required_role)
from_employee.remove_task(task)
to_employee.add_task(task)