Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <cfcomponent output="false">
- <cfscript>
- this.COUNTUP = 1;
- this.COUNTDOWN = 0;
- instance = StructNew();
- instance.delimiter = "";
- instance.direction = 1;
- instance.endNum = 0;
- instance.startNum = 0;
- </cfscript>
- <cffunction name="init" output="false" access="public">
- <cfargument name="startNum" required="true" />
- <cfargument name="endNum" required="true" />
- <cfargument name="direction" default="-1" />
- <cfscript>
- setStartNum(arguments.startNum);
- setEndNum(arguments.endNum);
- if (arguments.direction EQ -1) {
- if (arguments.startNum LTE arguments.endNum) {
- setCountUp();
- } else {
- setCountDown();
- }
- } else {
- setDirection(arguments.direction);
- }
- </cfscript>
- <cfreturn this />
- </cffunction>
- <cffunction name="run" output="false" access="public">
- <cfscript>
- var output = "";
- var i = 0;
- var start = getStartNum();
- var end = getEndNum();
- var doAbs = false;
- if (getEndNum() LTE getStartNum()) {
- start = start * -1;
- end = end * -1;
- }
- for (i=start; i LTE end; i++) {
- output &= IIf(doAbs, Abs(i), i);
- if (hasDelimiter() AND i LT end) {
- output &= getDelimiter();
- }
- }
- </cfscript>
- <cfreturn output />
- </cffunction>
- <!--- Getters/Setters --->
- <cffunction name="getDirection" output="false" access="public">
- <cfreturn instance.direction />
- </cffunction>
- <cffunction name="setDirection" output="false" access="public">
- <cfargument name="direction" required="true" />
- <cfset instance.direction = arguments.direction />
- </cffunction>
- <cffunction name="getEndNum" output="false" access="public">
- <cfreturn instance.endNum />
- </cffunction>
- <cffunction name="setEndNum" output="false" access="public">
- <cfargument name="endNum" required="true" />
- <cfset instance.endNum = arguments.endNum />
- </cffunction>
- <cffunction name="hasDelimiter" output="false" access="public">
- <cfreturn StructKeyExists(instance, "delimiter") AND Len(instance.delimiter) GT 0 />
- </cffunction>
- <cffunction name="getDelimiter" output="false" access="public">
- <cfreturn instance.delimiter />
- </cffunction>
- <cffunction name="setDelimiter" output="false" access="public">
- <cfargument name="delimiter" required="true" />
- <cfset instance.delimiter = arguments.delimiter />
- </cffunction>
- <cffunction name="getStartNum" output="false" access="public">
- <cfreturn instance.startNum />
- </cffunction>
- <cffunction name="setStartNum" output="false" access="public">
- <cfargument name="startNum" required="true" />
- <cfset instance.startNum = arguments.startNum />
- </cffunction>
- <cffunction name="setCountUp" output="false" access="public">
- <cfset setDirection(this.COUNTUP) />
- </cffunction>
- <cffunction name="setCountDown" output="false" access="public">
- <cfset setDirection(this.COUNTDOWN) />
- </cffunction>
- </cfcomponent>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement