This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class UrlBuilder : IDynamicMetaObjectProvider | |
{ | |
/// <summary> | |
/// Usage: UrlBuilder.Build(url, key1: value1, key2: value2) | |
/// </summary> | |
/// <remarks> | |
/// values will be converted to strings via "ToString()". Any url-encoding must happen before | |
/// this method is called. Pass null as the value at runtime in order to omit the parameter | |
/// entirely. Use String.Empty for query parameters which should be present but have no value. | |
/// If url is a string, the result will be a string. If it is a System.Uri, the result will |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class StringFormat : IDynamicMetaObjectProvider | |
{ | |
/// <summary> | |
/// Usage: StringFormat.Format(formatString, key1: value1, key2: value2) | |
/// or StringFormat.Format(formatProvider, formatString, key1: value1, key2: value2) | |
/// </summary> | |
public static readonly dynamic Format = new StringFormat(); | |
private StringFormat() | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
Source = Table.FromColumns({Lines.FromBinary(Web.Contents("http://www.aer.ca/data/WELLS/SPUDTHU.TXT"),null,null,1252)}), | |
Header = List.First(List.Select(Source[Column1], each Text.StartsWith(_, "--"))), | |
Positions = Text.PositionOf(Header, " ", -1), | |
Length = Text.Length(Header), | |
Lengths = List.Generate( | |
() => 0, | |
(i) => i <= List.Count(Positions), | |
(i) => i + 1, | |
(i) => |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
Source = Text.FromBinary(File.Contents("D:\testdata\tweet.json")), | |
Eol = Text.PositionOf(Source, "#(lf)"), | |
Skipped = Text.Range(Source, Eol + 1), | |
Tweets = Json.Document(Skipped) | |
in | |
Tweets |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
Value.WaitFor = (producer as function, interval as function, optional count as number) as any => | |
let | |
list = List.Generate( | |
() => {0, null}, | |
(state) => state{0} <> null and (count = null or state{0} < count), | |
(state) => if state{1} <> null | |
then {null, state{1}} | |
else {1 + state{0}, Function.InvokeAfter(() => producer(state{0}), interval(state{0}))}, | |
(state) => state{1}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
data = Table.FromColumns({{1, 2, 3, 4, 5}, {"Left", "Right", "Center", "Left", "Right"}}), | |
filter = Table.FromColumns({{"Right", "Center"}}), | |
filterValues = filter[Column1], | |
filtered = Table.SelectRows(data, each List.Contains(filterValues, [Column2])) | |
in | |
filtered |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
EnforceTypes = (table as table, schema as table) as table => | |
let | |
map = (t) => if t = type list or t = type record or t = type any then null else t, | |
mapped = Table.TransformColumns(schema, {"Value", map}), | |
omitted = Table.SelectRows(mapped, each [Value] <> null), | |
transforms = Table.ToRows(omitted), | |
changedType = Table.TransformColumnTypes(table, transforms) | |
in | |
changedType, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
ByteToHex = (i as number) as text => | |
let | |
chars = "0123456789abcdef", | |
low = Text.Range(chars, Number.Mod(i, 16), 1), | |
high = Text.Range(chars, Number.RoundDown(i / 16), 1) | |
in high & low, | |
Json.EscapeChar = (text as text) as text => | |
if text = """" or text = "\" or text = "/" then "\" & text | |
else if Character.ToNumber(text) < 32 then "\u00" & ByteToHex(Character.ToNumber(text)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
Web.MultiPartPost = (url as text, parts as record) as binary => | |
let | |
unique = Text.NewGuid(), | |
boundary = "--" & unique, | |
crlf = "#(cr)#(lf)", | |
item = (name, value) => | |
let | |
filename = Value.Metadata(value)[name]?, | |
contentType = Value.Metadata(value)[type]?, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
Value.FixType = (value, optional depth) => | |
let | |
nextDepth = if depth = null then 3 else depth - 1, | |
result = if depth = 0 then null | |
else if value is type then TextType(value) | |
else if value is table then Table.TransformColumns(value, {}, @Value.FixType) | |
else if value is list then List.Transform(value, each @Value.FixType(_, nextDepth)) | |
else if value is record then | |
Record.FromList(List.Transform(Record.ToList(value), each @Value.FixType(_, nextDepth)), Record.FieldNames(value)) |
OlderNewer