<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FCarn%2FTextSnippets</id>
	<title>Module:Sandbox/Carn/TextSnippets - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FCarn%2FTextSnippets"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Carn/TextSnippets&amp;action=history"/>
	<updated>2026-06-19T07:20:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Carn/TextSnippets&amp;diff=145252&amp;oldid=prev</id>
		<title>imported&gt;Carn at 07:08, 21 June 2021</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Carn/TextSnippets&amp;diff=145252&amp;oldid=prev"/>
		<updated>2021-06-21T07:08:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[ easy text joining&lt;br /&gt;
TODO: &lt;br /&gt;
	remake from step-by-step conversion to text in conversion to text only at the end of operations (string creation isn&amp;#039;t cheap for lua)&lt;br /&gt;
	object types, conditions and order&lt;br /&gt;
	pattern string formatting (easier for users)&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local snippet = {[&amp;quot;__index&amp;quot;] = {[&amp;quot;text&amp;quot;] = &amp;quot;&amp;quot;, [&amp;quot;a&amp;quot;] = 1.5, [&amp;quot;z&amp;quot;] = 1.5}}&lt;br /&gt;
--[[&amp;quot;a&amp;quot; + &amp;quot;z&amp;quot; = is there space or not&lt;br /&gt;
	 	0	1	2	3&lt;br /&gt;
	0	-	-	-	+&lt;br /&gt;
	1	-	-	+	+&lt;br /&gt;
	2	-	+	+	+&lt;br /&gt;
	3	+	+	+	+&lt;br /&gt;
]]--&lt;br /&gt;
&lt;br /&gt;
function snippet:dress (var)&lt;br /&gt;
  if not self or type(self) ~= &amp;quot;table&amp;quot; then return end -- todo: обработка ошибки&lt;br /&gt;
  -- в случае если на входе уже объект нужного класса, возвращаем его же&lt;br /&gt;
  if type(var) == &amp;quot;table&amp;quot; and getmetatable(var) == self then&lt;br /&gt;
    return var&lt;br /&gt;
  end&lt;br /&gt;
  var = var or {}&lt;br /&gt;
  if type(var) ~= &amp;quot;table&amp;quot; and (type(var) == &amp;quot;string&amp;quot; or type(var) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
    local text = var&lt;br /&gt;
    var = {[&amp;quot;text&amp;quot;]=text}&lt;br /&gt;
  elseif type(var) ~= &amp;quot;table&amp;quot; then return end -- обработчик ошибок без входящего параметра status и без создания замыканий сюда бы&lt;br /&gt;
  setmetatable(var,self)&lt;br /&gt;
  return var&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function snippet.__eq (pre, aft)&lt;br /&gt;
    return pre.text == aft.value and pre.a == aft.a and pre.z == aft.z&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function snippet.__add (pre,aft)&lt;br /&gt;
  pre=snippet:dress(pre)&lt;br /&gt;
  aft=snippet:dress(aft)&lt;br /&gt;
  if pre == empty or pre.text == &amp;quot;&amp;quot; then return aft end&lt;br /&gt;
  if aft == empty or aft.text == &amp;quot;&amp;quot; then return pre end&lt;br /&gt;
  local sill = pre.z + aft.a&lt;br /&gt;
  local output = {&lt;br /&gt;
      [&amp;quot;text&amp;quot;] = pre.text .. ((sill &amp;gt; 2) and &amp;quot; &amp;quot; or &amp;quot;&amp;quot;) .. aft.text, &lt;br /&gt;
      [&amp;quot;a&amp;quot;] = pre.a, &lt;br /&gt;
      [&amp;quot;z&amp;quot;] = aft.z&lt;br /&gt;
    }&lt;br /&gt;
  return snippet:dress(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function snippet.__tostring (table)&lt;br /&gt;
  if type(table) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    return table.text&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return snippet&lt;/div&gt;</summary>
		<author><name>imported&gt;Carn</name></author>
	</entry>
</feed>