@rbxts/abbreviate 3.0.0 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  ## Example Usage
9
9
  ```typescript
10
- import createAbbreviator from "@rbxts/abbreviate";
10
+ import Abbreviator from "@rbxts/abbreviate";
11
11
 
12
- const abbreviator = createAbbreviator();
12
+ const abbreviator = new Abbreviator();
13
13
  abbreviator.setSetting('suffixTable', ['k', 'm', 'b']);
14
14
  abbreviator.setSetting('decimalPlaces', 2);
15
15
 
@@ -30,7 +30,7 @@ The possible settings you can set are the following:
30
30
  |---|---|---|---|---|
31
31
  | suffixTable | Array\<string\> | Sets the suffix table to be used when using `numberToString` | [here](https://github.com/OverHash/Roblox-TS-Libraries/blob/master/abbreviate/init.lua#L1-L52) | <pre lang="ts">["k", "m", "b"] |
32
32
  | decimalPlaces | number | Sets the amount of decimal places a number may have when using `numberToString` | 2 | 4 |
33
- | removeDanglingZeroes | boolean | Removes any extra zeroes after a decimal place that are dangling after `numberToString` calls. E.g. `"52506.004"` => `"5.2506k"`
33
+ | stripTrailingZeroes | boolean | Removes any extra zeroes after a decimal place that are dangling after `numberToString` calls. E.g. `"52506.004"` => `"5.2506k"` | false | `true`
34
34
 
35
35
  ## Why make `Abbreviator` a class?
36
36
  You may want multiple abbreviators throughout your game with different settings, i.e. one module may want only 2 d.p. while another may want 0 d.p
@@ -39,9 +39,19 @@ The settings of this abbreviator is independent of other abbreviators.
39
39
 
40
40
  ## Changelog
41
41
 
42
+ ### 3.0.3
43
+ - Fixed `stripTrailingZeroes` incorrectly showing as `removeDanglingZeroes` in `README.md`
44
+
45
+ ### 3.0.2
46
+ - Added setting default and setting example for `stripTrailingZeroes`
47
+
48
+ ### 3.0.1
49
+ - Fixed `README.md` example being outdated
50
+ - Added `Scyfren` to contributors
51
+
42
52
  ### 3.0.0
43
53
  - Changed the method to create an abbreviator from `createAbbreviator()` to `abbreviator.new()` (`new Abbreviator()` in TypeScript)
44
- - Added option `removeDanglingZeroes`
54
+ - Added option `stripTrailingZeroes`
45
55
  - Fixed some bugs regarding settings changes
46
56
  - Slight speed improvements
47
57
 
@@ -85,3 +95,4 @@ The settings of this abbreviator is independent of other abbreviators.
85
95
  ## Credits
86
96
  [Kampfkarren](http://github.com/Kampfkarren/) - `numberToString` method
87
97
  [Corecii](https://github.com/Corecii) - Help with `numbersToSortedString`
98
+ [Scyfren](https://github.com/Scyfren) - Help with `stripTrailingZeroes`
package/package.json CHANGED
@@ -1,40 +1,39 @@
1
1
  {
2
- "name": "@rbxts/abbreviate",
3
- "version": "3.0.0",
4
- "description": "A lightweight number abbreviator",
5
- "main": "src/init.lua",
6
- "types": "src/index.d.ts",
7
- "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "https://github.com/OverHash/Roblox-TS-Libraries/tree/master/abbreviate"
13
- },
14
- "keywords": [
15
- "abbreviate",
16
- "roblox",
17
- "roblox-ts",
18
- "roblox-typescript",
19
- "number"
20
- ],
21
- "author": "OverHash",
22
- "license": "mpl-2.0",
23
- "bugs": {
24
- "url": "https://github.com/OverHash/Roblox-TS-Libraries/issues"
25
- },
26
- "homepage": "https://github.com/OverHash/Roblox-TS-Libraries/blob/master/abbreviate/README.md",
27
- "publishConfig": {
28
- "access": "public"
29
- },
30
- "files": [
31
- "src/init.lua",
32
- "src/index.d.ts",
33
-
34
- "src/commify.lua",
35
- "src/numbersToSortedString.lua",
36
- "src/numberToString.lua",
37
- "src/setSetting.lua",
38
- "src/stringToNumber.lua"
39
- ]
2
+ "name": "@rbxts/abbreviate",
3
+ "version": "3.0.4",
4
+ "description": "A lightweight number abbreviator",
5
+ "main": "src/init.lua",
6
+ "types": "src/index.d.ts",
7
+ "scripts": {
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/OverHash/Roblox-TS-Libraries/tree/master/abbreviate"
13
+ },
14
+ "keywords": [
15
+ "abbreviate",
16
+ "roblox",
17
+ "roblox-ts",
18
+ "roblox-typescript",
19
+ "number"
20
+ ],
21
+ "author": "OverHash",
22
+ "license": "mpl-2.0",
23
+ "bugs": {
24
+ "url": "https://github.com/OverHash/Roblox-TS-Libraries/issues"
25
+ },
26
+ "homepage": "https://github.com/OverHash/Roblox-TS-Libraries/blob/master/abbreviate/README.md",
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "files": [
31
+ "src/init.lua",
32
+ "src/index.d.ts",
33
+ "src/commify.lua",
34
+ "src/numbersToSortedString.lua",
35
+ "src/numberToString.lua",
36
+ "src/setSetting.lua",
37
+ "src/stringToNumber.lua"
38
+ ]
40
39
  }
package/src/commify.lua CHANGED
@@ -1,4 +1,4 @@
1
- function commify(self, number)
1
+ local function commify(self, number)
2
2
  assert(type(number) == 'number', 'Attempt to commify a non-number value')
3
3
 
4
4
  local formatted = tostring(number)
package/src/init.lua CHANGED
@@ -63,7 +63,7 @@ return {
63
63
  _suffixTable = DEFAULT_SUFFIX_TABLE,
64
64
  _decimalPlaces = 2,
65
65
  _stripTrailingZeroes = false,
66
-
66
+
67
67
  setSetting = setSetting,
68
68
  numberToString = numberToString,
69
69
  numbersToSortedString = numbersToSortedString,
@@ -1,10 +1,10 @@
1
1
  local function round(number, decimalPlaces, roundDown)
2
- number = number * 10^decimalPlaces
2
+ number = number * 10 ^ decimalPlaces
3
3
  if roundDown then
4
- return math.floor(number) / 10^decimalPlaces
4
+ return math.floor(number) / 10 ^ decimalPlaces
5
5
  else
6
- number = tonumber(tostring(number))
7
- -- cast to string and back to number to prevent floating point errors
6
+ number = tonumber(string.format("%.14g", number))
7
+ -- cast to string and back to number to give some epsilon for floating point numbers
8
8
  --[[ e.g.:
9
9
  local number = 1005 / 10^3 * 10^2 + 0.5 -- 101
10
10
  print(number, math.floor(number))
@@ -15,11 +15,11 @@ local function round(number, decimalPlaces, roundDown)
15
15
  print(number, math.floor(number))
16
16
  > 101 101
17
17
  ]]
18
- return math.floor(number + 0.5) / 10^decimalPlaces
18
+ return math.floor(number + 0.5) / 10 ^ decimalPlaces
19
19
  end
20
20
  end
21
21
 
22
- function numberToString(self, number, roundDown)
22
+ local function numberToString(self, number, roundDown)
23
23
  if type(number) ~= "number" then
24
24
  error('numberToString invalid parameter #1, expected number, got "nil"', 2)
25
25
  end
@@ -31,9 +31,9 @@ function numberToString(self, number, roundDown)
31
31
  if number < 1000 and number > -1000 then
32
32
  -- special case: we must manually abbreviate numbers between -1000 and 1000
33
33
  if not self._stripTrailingZeroes then
34
- return ("%."..self._decimalPlaces.."f"):format(number)
34
+ return ("%." .. self._decimalPlaces .. "f"):format(number)
35
35
  else
36
- number = round(number, self._decimalPlaces)
36
+ number = round(number, self._decimalPlaces, roundDown)
37
37
  return tostring(number)
38
38
  end
39
39
  end
@@ -54,7 +54,7 @@ function numberToString(self, number, roundDown)
54
54
  end
55
55
 
56
56
  if not self._stripTrailingZeroes then
57
- number = ("%."..self._decimalPlaces.."f"):format(number)
57
+ number = ("%." .. self._decimalPlaces .. "f"):format(number)
58
58
  end
59
59
 
60
60
  number = number .. unit
@@ -46,7 +46,7 @@ local function round(number, decimalPlaces, roundDown)
46
46
  end
47
47
  end
48
48
 
49
- function numbersToSortedString(self, numbers)
49
+ local function numbersToSortedString(self, numbers)
50
50
  if not (numbers and type(numbers) == 'table') then
51
51
  error('numbersToSortedString had invalid parameters.\nP1 - numbers: Array<number>', 2)
52
52
  end
@@ -90,7 +90,7 @@ function numbersToSortedString(self, numbers)
90
90
  local suffix = self._suffixTable[index]
91
91
 
92
92
  local prefixed
93
-
93
+
94
94
  if not self._stripTrailingZeroes then
95
95
  prefixed = string.format('%.'..self._decimalPlaces..'f', numberData.value / shortenedNumber)
96
96
  else
@@ -1,4 +1,4 @@
1
- function setSetting(self, settingName, settingValue)
1
+ local function setSetting(self, settingName, settingValue)
2
2
  if not (settingName and settingValue ~= nil and type(settingName) == 'string') then
3
3
  error('setSetting had invalid parameters.\nP1 - settingName: string\nP2 - settingValue: unknown', 2)
4
4
  end
@@ -1,4 +1,4 @@
1
- function stringToNumber(self, str)
1
+ local function stringToNumber(self, str)
2
2
  if not (str and type(str) == 'string') then
3
3
  error('stringToNumber had invalid parameters.\nP1 - string: string', 2)
4
4
  end