Skip to content

Instantly share code, notes, and snippets.

View Willianvdv's full-sized avatar
🚩

Willian van der Velde Willianvdv

🚩
View GitHub Profile
$('body').on('click', '.js-observe-me', function(){
alert("Wow! Nice click!");
});
@Willianvdv
Willianvdv / gist:8280899
Last active January 2, 2016 09:09
Extendable products controller
module Spree
module Admin
class ProductController < Spree::Admin::ResourceController
include ActiveSupport::Callbacks
define_callbacks :load_collection
set_callback :load_collection, :after, :paginate_collection
def index
respond_with(@collection)
Spree::Admin::ProductController.class_eval do
set_callback :load_collection, :after, :funky_filter
private
def funky_filter
@collection = @collection.where(name: 'peter')
end
end
@Willianvdv
Willianvdv / gist:8403243
Created January 13, 2014 16:30
Spree require_master_price crash
>> Spree.version
=> "2.1.4.beta"
>> Spree::Config[:require_master_price] = true
>> attr = {:name=>"The Other Product", :price=>19.99, :shipping_category_id=>1, :product_properties_attributes=>[{:property_name=>"fabric", :value=>"cotton"}]}
>> pr = Spree::Product.new attr
>> pr.save!
RuntimeError: No master variant found to infer price
@Willianvdv
Willianvdv / gist:8403295
Created January 13, 2014 16:33
Sql log for RuntimeError: No master variant found to infer price
(0.2ms) BEGIN
(0.8ms) SELECT COUNT(*) FROM "spree_products" WHERE ("spree_products".deleted_at IS NULL) AND (spree_products.permalink LIKE 'the-other-product%')
Spree::Product Load (0.8ms) SELECT "spree_products".* FROM "spree_products" WHERE ("spree_products".deleted_at IS NULL) AND (spree_products.permalink LIKE 'the-other-product%')
Spree::Product::Translation Load (0.4ms) SELECT "spree_product_translations".* FROM "spree_product_translations" WHERE "spree_product_translations"."spree_product_id" = $1 [["spree_product_id", 303]]
SQL (0.5ms) INSERT INTO "spree_products" ("created_at", "name", "permalink", "shipping_category_id", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["created_at", Mon, 13 Jan 2014 16:29:00 UTC +00:00], ["name", "The Other Product"], ["permalink", "the-other-product-1"], ["shipping_category_id", 1], ["updated_at", Mon, 13 Jan 2014 16:29:00 UTC +00:00]]
SQL (0.4ms) INSERT INTO "spree_product_properties" ("created_at", "product_id", "property_id", "upd
@Willianvdv
Willianvdv / gist:8403390
Created January 13, 2014 16:37
SQL log with require_master_price set to true
(0.2ms) BEGIN
(0.8ms) SELECT COUNT(*) FROM "spree_products" WHERE ("spree_products".deleted_at IS NULL) AND (spree_products.permalink LIKE 'the-other-product%')
Spree::Product Load (0.8ms) SELECT "spree_products".* FROM "spree_products" WHERE ("spree_products".deleted_at IS NULL) AND (spree_products.permalink LIKE 'the-other-product%')
Spree::Product::Translation Load (0.3ms) SELECT "spree_product_translations".* FROM "spree_product_translations" WHERE "spree_product_translations"."spree_product_id" = $1 [["spree_product_id", 303]]
SQL (0.7ms) INSERT INTO "spree_products" ("created_at", "name", "permalink", "shipping_category_id", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["created_at", Mon, 13 Jan 2014 16:37:20 UTC +00:00], ["name", "The Other Product"], ["permalink", "the-other-product-1"], ["shipping_category_id", 1], ["updated_at", Mon, 13 Jan 2014 16:37:20 UTC +00:00]]
SQL (0.5ms) INSERT INTO "spree_product_properties" ("created_at", "product_id", "property_id", "upd
@Willianvdv
Willianvdv / exact_online_client.rb
Last active August 29, 2015 13:55
Exact api spul
require 'base64'
require 'rest_client'
class ExactOnlineClient
def xml_call topic, data=nil
if not @cookies
# Brutal login technique (as documented (-; )
url = "https://start.exactonline.nl/docs/XMLDivisions.aspx"
response = RestClient.post url, {"_UserName_" => username, "_Password_" => password}
@cookies = response.cookies
@Willianvdv
Willianvdv / gist:8729043
Last active August 29, 2015 13:55
Phanton4Steven
/**
* Dit script wordt aangeroepen om een server side versie van de opgevraagde pagina op te leveren.
* Hiervoor wordt gebruikt gemaakt van de headless browser phantomjs.
*
* Alle relative #! urls (zoals bv #!/veilingen/376/kavels/428) worden eerst omgezet naar een absolute
* URL zodat er geen links ontstaan zoals:
*
* https://onlineveilingmeester.nl/seo/?_escaped_fragment_=/kavels?categorie=108#!/veilingen/376/kavels/428
*/
1.9.3-p327 :006 > class TaskBuilder
1.9.3-p327 :007?> include ActiveModel::Validations
1.9.3-p327 :008?> end
=> TaskBuilder
1.9.3-p327 :009 > class TaskBuilder
1.9.3-p327 :010?> include ActiveModel::Model
1.9.3-p327 :011?> end
=> TaskBuilder
1.9.3-p327 :012 > TaskBuilder.new
=> #<TaskBuilder:0x007fdd7a1400a0>
@Willianvdv
Willianvdv / gist:9170914
Last active August 29, 2015 13:56
Make a extension 2-2 compatible

Update a Spree 2-1 extention to 2-2

Update gemspec

Update gemspec. Since 2-2 stable isn't on rubygems yet I add spree to my Gemfile. gem 'spree', github: 'spree/spree', branch: '2-2-stable'

Assets

Move assets to their new location