Skip to content

Instantly share code, notes, and snippets.

View batasrki's full-sized avatar

Srdjan Pejic batasrki

  • S-Squared Design & Development
  • Toronto, ON
View GitHub Profile
@batasrki
batasrki / category_query.rb
Created November 7, 2011 17:57
Map/Reduce inside a Ripple document
def record_ids_containing_category(category)
function = <<-eos
function(values) {
var data = Riak.mapValuesJson(values)[0];
if(data.category === '#{category}') {
return [values.key];
}
else {
return [];
}
@batasrki
batasrki / job_preset_fields_spec.rb
Created October 2, 2011 22:42
Example model preset fields spec
describe Job do
before :each do
@mock_job_category = JobCategory.create!({:name => "Tester"})
@mock_client = mock_model(Client, {:name => "Test Client"})
@job = Job.new(:name => "test job", :client => @mock_client, :category => @mock_job_category)
end
describe "preset fields" do
def mock_job_category(stubs={})
@batasrki
batasrki / jobs_controller_create.rb
Created October 2, 2011 22:25
Example controller usage
module Admin
class JobsController < BaseController
def create
@job = Job.new(params[:job])
@job.step = @job.category.steps.first
if @job.save
# Add default PMs
@job.preset_fields
@batasrki
batasrki / job_preset_fields.rb
Created October 2, 2011 21:50
Example model preset fields
class Job < ActiveRecord::Base
def preset_fields
if category.name == "Repair" || category.name == "Maintenance"
quote_sections.create!(:description => "Labour", :amount => 0)
quote_sections.create!(:description => "Materials", :amount => 0)
quote_sections.create!(:description => "Travel", :amount => 0)
quote_sections.create!(:description => "Courier", :amount => 0)
end
category.base_projects.each do |bp|
@batasrki
batasrki / jobs_controller_search.rb
Created September 26, 2011 23:39
Example search call
class JobsController < ApplicationController
def index
#blah blah
Job.search(gen_dyn_search(params[:search],["jobs.name","jobs.id","jobs.clientpo"]),
params[:page], @cond, @join)
end
end
@batasrki
batasrki / job_search.rb
Created September 26, 2011 23:23
Example model search
class Job < ActiveRecord::Base
def self.search(search, page=1, cond, join)
condition = (cond) ? " AND #{cond}" : ""
if join
paginate :per_page => 10, :page => page, :joins => join,
:order => 'jobs.name', :conditions => "(#{search})#{condition}"
else
paginate :per_page => 10, :page => page,
:order => 'name', :conditions => "(#{search})#{condition}"
end
@batasrki
batasrki / weird_method.rb
Created September 26, 2011 23:41
Weirdly named method
module Util
def gen_dyn_search(str, search_list)
return "true" if str.blank?
terms = str.split(/\s/)
sql = ""
terms.each do |term|
sql += (sql!="")? " AND (" : "("
inner_sql = ""
search_list.each do |item|
inner_sql += (inner_sql!="")? " OR " : ""
@batasrki
batasrki / job_search_spec.rb
Created September 26, 2011 23:44
Example model search spec
describe Job do
before :each do
@mock_client = mock_model(Client, {:name => "Test Client"})
@job = Job.new(:name => "test job", :client => @mock_client,
:category => @mock_job_category)
end
describe "search" do
before :each do
@category = JobCategory.create!(:name => "Testing search")
@batasrki
batasrki / job_display_v2.rb
Created September 25, 2011 22:58
Example model display method -- better
class Job < ActiveRecord::Base
def display_name
"#{I18n.t('web-app-theme.job', :default => 'Job')}#: #{leading_zeros(self.id, 5)} / #{self.category.name} : #{self.name}"
end
def display_shortname
if self.name
"#{self.name}(#{self.category.name})"
else
"#{I18n.t('web-app-theme.job', :default => 'Job')}#: #{leading_zeros(self.id, 5)}"
@batasrki
batasrki / job_display.rb
Created September 25, 2011 22:47
Example model display method
class Job < ActiveRecord::Base
def display_name
I18n.t("web-app-theme.job", :default => "Job")+"#: "+leading_zeros(self.id, 5)+" / "+self.category.name+" : "+self.name
end
def display_shortname
if self.name
self.name+"("+self.category.name+")"
else
I18n.t("web-app-theme.job", :default => "Job")+"#: "+leading_zeros(self.id, 5)