gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

README.markdown (3078B)


      1 # Humane Units [![Build Status](https://travis-ci.org/dustin/go-humanize.svg?branch=master)](https://travis-ci.org/dustin/go-humanize) [![GoDoc](https://godoc.org/github.com/dustin/go-humanize?status.svg)](https://godoc.org/github.com/dustin/go-humanize)
      2 
      3 Just a few functions for helping humanize times and sizes.
      4 
      5 `go get` it as `github.com/dustin/go-humanize`, import it as
      6 `"github.com/dustin/go-humanize"`, use it as `humanize`.
      7 
      8 See [godoc](https://pkg.go.dev/github.com/dustin/go-humanize) for
      9 complete documentation.
     10 
     11 ## Sizes
     12 
     13 This lets you take numbers like `82854982` and convert them to useful
     14 strings like, `83 MB` or `79 MiB` (whichever you prefer).
     15 
     16 Example:
     17 
     18 ```go
     19 fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB.
     20 ```
     21 
     22 ## Times
     23 
     24 This lets you take a `time.Time` and spit it out in relative terms.
     25 For example, `12 seconds ago` or `3 days from now`.
     26 
     27 Example:
     28 
     29 ```go
     30 fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance)) // This was touched 7 hours ago.
     31 ```
     32 
     33 Thanks to Kyle Lemons for the time implementation from an IRC
     34 conversation one day. It's pretty neat.
     35 
     36 ## Ordinals
     37 
     38 From a [mailing list discussion][odisc] where a user wanted to be able
     39 to label ordinals.
     40 
     41     0 -> 0th
     42     1 -> 1st
     43     2 -> 2nd
     44     3 -> 3rd
     45     4 -> 4th
     46     [...]
     47 
     48 Example:
     49 
     50 ```go
     51 fmt.Printf("You're my %s best friend.", humanize.Ordinal(193)) // You are my 193rd best friend.
     52 ```
     53 
     54 ## Commas
     55 
     56 Want to shove commas into numbers? Be my guest.
     57 
     58     0 -> 0
     59     100 -> 100
     60     1000 -> 1,000
     61     1000000000 -> 1,000,000,000
     62     -100000 -> -100,000
     63 
     64 Example:
     65 
     66 ```go
     67 fmt.Printf("You owe $%s.\n", humanize.Comma(6582491)) // You owe $6,582,491.
     68 ```
     69 
     70 ## Ftoa
     71 
     72 Nicer float64 formatter that removes trailing zeros.
     73 
     74 ```go
     75 fmt.Printf("%f", 2.24)                // 2.240000
     76 fmt.Printf("%s", humanize.Ftoa(2.24)) // 2.24
     77 fmt.Printf("%f", 2.0)                 // 2.000000
     78 fmt.Printf("%s", humanize.Ftoa(2.0))  // 2
     79 ```
     80 
     81 ## SI notation
     82 
     83 Format numbers with [SI notation][sinotation].
     84 
     85 Example:
     86 
     87 ```go
     88 humanize.SI(0.00000000223, "M") // 2.23 nM
     89 ```
     90 
     91 ## English-specific functions
     92 
     93 The following functions are in the `humanize/english` subpackage.
     94 
     95 ### Plurals
     96 
     97 Simple English pluralization
     98 
     99 ```go
    100 english.PluralWord(1, "object", "") // object
    101 english.PluralWord(42, "object", "") // objects
    102 english.PluralWord(2, "bus", "") // buses
    103 english.PluralWord(99, "locus", "loci") // loci
    104 
    105 english.Plural(1, "object", "") // 1 object
    106 english.Plural(42, "object", "") // 42 objects
    107 english.Plural(2, "bus", "") // 2 buses
    108 english.Plural(99, "locus", "loci") // 99 loci
    109 ```
    110 
    111 ### Word series
    112 
    113 Format comma-separated words lists with conjuctions:
    114 
    115 ```go
    116 english.WordSeries([]string{"foo"}, "and") // foo
    117 english.WordSeries([]string{"foo", "bar"}, "and") // foo and bar
    118 english.WordSeries([]string{"foo", "bar", "baz"}, "and") // foo, bar and baz
    119 
    120 english.OxfordWordSeries([]string{"foo", "bar", "baz"}, "and") // foo, bar, and baz
    121 ```
    122 
    123 [odisc]: https://groups.google.com/d/topic/golang-nuts/l8NhI74jl-4/discussion
    124 [sinotation]: http://en.wikipedia.org/wiki/Metric_prefix