intertext
Version:
Services for Recurrent Text-related Tasks
116 lines (95 loc) • 4.62 kB
text/coffeescript
'use strict'
############################################################################################################
CND = require 'cnd'
rpr = CND.rpr
badge = 'INTERTEXT'
log = CND.get_logger 'plain', badge
info = CND.get_logger 'info', badge
whisper = CND.get_logger 'whisper', badge
alert = CND.get_logger 'alert', badge
debug = CND.get_logger 'debug', badge
warn = CND.get_logger 'warn', badge
help = CND.get_logger 'help', badge
urge = CND.get_logger 'urge', badge
echo = CND.echo.bind CND
#...........................................................................................................
FS = require 'fs'
PATH = require 'path'
Multimix = require 'multimix'
{ assign
jr } = CND
@types = require './types'
{ isa
validate
cast
type_of } = @types
Multimix = require 'multimix'
{ inspect } = require 'util'
###
#...........................................................................................................
_format = require 'number-format.js'
format_float = ( x ) -> _format '#,##0.000', x
format_integer = ( x ) -> _format '#,##0.', x
format_as_percentage = ( x ) -> _format '#,##0.00', x * 100
###
#-----------------------------------------------------------------------------------------------------------
class Htmlish extends Multimix
@include require './htmlish'
#-----------------------------------------------------------------------------------------------------------
class Cupofhtml extends Multimix
@include require './cupofhtml'
#-----------------------------------------------------------------------------------------------------------
class Hyph extends Multimix
@include require './hyphenation'
#-----------------------------------------------------------------------------------------------------------
class Ucd extends Multimix
@include require './ucd'
#-----------------------------------------------------------------------------------------------------------
class Patterns extends Multimix
@include require './_patterns'
#-----------------------------------------------------------------------------------------------------------
class Tbl extends Multimix
@include require './tabulate'
#-----------------------------------------------------------------------------------------------------------
@get_terminal_size = -> ( require '../dependencies/sindre-sorhus-term-size.js' )()
#-----------------------------------------------------------------------------------------------------------
@rpr = ( P... ) ->
return ( ( inspect x, @rpr_settings ) for x in P ).join ' '
#-----------------------------------------------------------------------------------------------------------
@camelize = ( text ) ->
### thx to https://github.com/lodash/lodash/blob/master/camelCase.js ###
words = text.split '-'
for idx in [ 1 ... words.length ] by +1
word = words[ idx ]
continue if word is ''
words[ idx ] = word[ 0 ].toUpperCase() + word[ 1 .. ]
return words.join ''
#===========================================================================================================
#
#-----------------------------------------------------------------------------------------------------------
MAIN = @
class Intertext extends Multimix
@include MAIN, { overwrite: false, }
# @extend MAIN, { overwrite: false, }
#---------------------------------------------------------------------------------------------------------
constructor: ( target = null ) ->
super()
@HTMLISH = new Htmlish()
@CUPOFHTML = new Cupofhtml()
@HYPH = new Hyph()
@UCD = new Ucd()
@_PATTERNS = new Patterns()
@TBL = new Tbl()
@DIFF = require './diff'
@RE = require './re'
@rpr_settings =
depth: Infinity
maxArrayLength: Infinity
breakLength: Infinity
compact: true
@export target if target?
return @
module.exports = INTERTEXT = new Intertext()
############################################################################################################
if module is require.main then do =>
null