Skip to content

Instantly share code, notes, and snippets.

@cfvonner
cfvonner / test.cfm
Last active July 19, 2022 23:53
ColdFusion Anonymous Function
<cfscript>
add = function( x, y ) { return x + y; };
</cfscript>
@cfvonner
cfvonner / actor.cfc
Created October 1, 2018 16:16
FW/1 API Problems
component name="Actor REST Endpoint" accessors="true" output="false" {
// FW/1 will use its dependency injection framework (DI/1) to find and
// inject the components defined below as properties
property fw;
property actorService;
property movieToActorService;
public void function default( rc ){
var q = actorService.getAll();
@cfvonner
cfvonner / Iterator.cfc
Created September 12, 2018 23:43 — forked from aliaspooryorik/Iterator.cfc
Iterator based on the IBO pattern
component {
function init(required query data){
setQuery(arguments.data);
return this;
}
/* ---------------------------- PUBLIC ---------------------------- */
/* --- Iterator methods ---------------------------- */
@cfvonner
cfvonner / assetService.cfc
Last active September 10, 2018 18:13
Testing a service with dependencies
component displayname="GIS Plant Asset Service" extends="app.model.services.baseService" accessors="true" {
property assetGateway;
public array function list() {
return populateBeans( "assetBean", assetGateway.select() );
}
public array function getByAssetID ( required string assetid ) {
var data = assetGateway.select( { assetid : assetid } );
@cfvonner
cfvonner / gist:768152dce8345c3b758b709b400f5023
Created November 13, 2017 23:33
VSCode ShellLauncher Configuration with CommandBox
// Configure multiple shells
"shellLauncher.shells.windows": [
{
"shell": "C:\\Windows\\System32\\cmd.exe",
"args": [
""
],
"label": "cmd shell"
},
{
component displayname="Base Service" accessors="true" output="false" {
property beanFactory;
public function init() {
return this;
}
private function populate ( any bean, struct properties, any beanFactory ) {
writeLog( text="#GetMetaData( this ).name#-->#getFunctionCalledName()#() arguments: #SerializeJSON( arguments )#", file="GISReports.local.dev", type="information" );
@cfvonner
cfvonner / trycf-gist.cfm
Last active April 27, 2017 16:19 — forked from anonymous/trycf-gist.cfm
Using Closures to create an "object-like" struct
<p>Using closures, it is possible to create an "object-like" struct with cfml and not using any components. It allows you to do encapsulation, have methods, do chaining, etc. It's api is pretty much identical to an object, except that you use a function to create it (instead of new). ACF10+ and Lucee 4.5+</p>
<cfscript>
function make (required numeric input) {
var value = input;
var o = {
add: function (required numeric input) {
value += input;
return o;
@cfvonner
cfvonner / box.json
Created March 29, 2017 20:00 — forked from elpete/box.json
ForgeBox deploys in one command
{
"scripts":{
"postVersion":"package set location='user/repo#v`package version`'",
"onRelease":"publish",
"postPublish":"!git push && !git push --tags"
},
}
@cfvonner
cfvonner / len-test.cfm
Last active September 18, 2016 13:43 — forked from anonymous/trycf-gist.cfm
No ColdFusion Len Member Function on Java numbers
<cfscript>
myNumber = 10;
writeOutput( myNumber.len() );
//This will throw a "The len method was not found"
myJavaNumber = JavaCast( "int", myNumber );
writeOutput( myJavaNumber.len() );
//This will throw a "The len method was not found"
myQueryNumber = queryNew( "id", "integer", {id: 16} ).id;
@cfvonner
cfvonner / AboutMocks.cfc
Created June 30, 2012 00:38
First cut of my Mocking Koan
/**
* @mxunit:decorators mxunit.framework.decorators.OrderedTestDecorator
*/
component extends="Koans.BaseKoan" {
public void function beforeTests() {
variables.person = createObject( 'component','components.Person' ).init( 'Malcolm','Reynolds',CreateDate(2486,9,20));
}
public void function testSaveAsMock() {