random_text 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (8) hide show
  1. data/LICENSE +20 -0
  2. data/README +4 -0
  3. data/Rakefile +47 -0
  4. data/TODO +1 -0
  5. data/lib/lorem.rb +14 -0
  6. data/lib/random_text.rb +36 -0
  7. data/lib/vesna.rb +17 -0
  8. metadata +61 -0
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 YOUR NAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,4 @@
1
+ random_text
2
+ ===========
3
+
4
+ Class to make access to http://vesna.yandex.ru/ and http://lipsum.com/ easier
@@ -0,0 +1,47 @@
1
+ require 'rubygems'
2
+ require 'rake/gempackagetask'
3
+ require 'rubygems/specification'
4
+ require 'date'
5
+
6
+ GEM = "random_text"
7
+ GEM_VERSION = "0.0.1"
8
+ AUTHOR = "toy"
9
+ EMAIL = "ivan@workisfun.ru"
10
+ HOMEPAGE = ""
11
+ SUMMARY = "Class to make access to http://vesna.yandex.ru/ and http://lipsum.com/ easier"
12
+
13
+ spec = Gem::Specification.new do |s|
14
+ s.name = GEM
15
+ s.version = GEM_VERSION
16
+ s.platform = Gem::Platform::RUBY
17
+ s.has_rdoc = true
18
+ s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
19
+ s.summary = SUMMARY
20
+ s.description = s.summary
21
+ s.author = AUTHOR
22
+ s.email = EMAIL
23
+ s.homepage = HOMEPAGE
24
+
25
+ # Uncomment this to add a dependency
26
+ # s.add_dependency "foo"
27
+
28
+ s.require_path = 'lib'
29
+ s.autorequire = GEM
30
+ s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,specs}/**/*")
31
+ end
32
+
33
+ Rake::GemPackageTask.new(spec) do |pkg|
34
+ pkg.gem_spec = spec
35
+ end
36
+
37
+ desc "install the gem locally"
38
+ task :install => [:package] do
39
+ sh %{sudo gem install pkg/#{GEM}-#{GEM_VERSION}}
40
+ end
41
+
42
+ desc "create a gemspec file"
43
+ task :make_spec do
44
+ File.open("#{GEM}.gemspec", "w") do |file|
45
+ file.puts spec.to_ruby
46
+ end
47
+ end
data/TODO ADDED
@@ -0,0 +1 @@
1
+ TODO:
@@ -0,0 +1,14 @@
1
+ Lorem = RandomText.new(
2
+ 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus vitae risus vitae lorem iaculis placerat. Aliquam sit amet felis. Etiam congue. Donec risus risus, pretium ac, tincidunt eu, tempor eu, quam. Morbi blandit mollis magna. Suspendisse eu tortor. Donec vitae felis nec ligula blandit rhoncus. Ut a pede ac neque mattis facilisis. Nulla nunc ipsum, sodales vitae, hendrerit non, imperdiet ac, ante. Morbi sit amet mi. Ut magna. Curabitur id est. Nulla velit. Sed consectetuer sodales justo. Aliquam dictum gravida libero. Sed eu turpis. Nunc id lorem. Aenean consequat tempor mi. Phasellus in neque. Nunc fermentum convallis ligula.',
3
+ 'Suspendisse in nulla. Nunc eu ipsum tincidunt risus pellentesque fringilla. Integer iaculis pharetra eros. Nam ut sapien quis arcu ullamcorper cursus. Vestibulum tempor nisi rhoncus eros. Sed iaculis ultricies tellus. Cras pellentesque erat eu urna. Cras malesuada. Quisque congue ultricies neque. Nullam a nisl. Sed convallis turpis a ante. Morbi eu justo sed tortor euismod porttitor. Aenean ut lacus. Maecenas nibh eros, dapibus at, pellentesque in, auctor a, enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam congue pede a ipsum. Sed libero quam, sodales eget, venenatis non, cursus vel, velit. In vulputate.',
4
+ 'In vehicula. Aenean quam mauris, vehicula non, suscipit at, venenatis sed, arcu. Etiam ornare fermentum felis. Donec ligula metus, placerat quis, blandit at, congue molestie, ante. Donec viverra nibh et dolor. Sed elementum, nunc ac gravida pulvinar, libero ligula vestibulum urna, eget luctus eros ipsum ut velit. Vestibulum at diam. Suspendisse hendrerit. Sed facilisis libero pretium nisl. Morbi eget urna ut mi egestas aliquet. Donec interdum, urna eget semper ultrices, nibh sapien laoreet massa, at laoreet nulla metus sit amet nunc. In augue. Etiam sit amet sapien. Aliquam nulla mi, tincidunt a, ullamcorper pharetra, mollis eu, purus.',
5
+ 'Suspendisse auctor nunc a dolor. Donec elit diam, fringilla nec, cursus a, dapibus ut, justo. Maecenas rhoncus lacinia mi. Sed tempus leo in risus. Quisque vitae est. Integer eu mi vel justo lacinia posuere. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec pretium auctor mauris. Cras at risus. Vestibulum ligula purus, venenatis varius, tincidunt aliquam, volutpat ut, felis. In nulla. Suspendisse magna. Fusce ac tortor. Morbi semper hendrerit purus. Donec scelerisque erat quis magna. Vivamus interdum metus at tellus.',
6
+ 'Nam molestie suscipit arcu. Sed sed leo non sapien lobortis gravida. Mauris ultricies imperdiet lacus. Maecenas semper sapien in mauris. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc euismod odio eget lectus. Vestibulum nonummy pharetra eros. Donec semper venenatis sapien. Phasellus scelerisque lectus quis tortor. Quisque turpis. Etiam rutrum metus eget nisi. Morbi varius ligula id elit. Ut augue.',
7
+ 'Nulla arcu est, rhoncus non, eleifend ut, imperdiet vel, magna. Sed pretium pulvinar augue. Sed sit amet nulla eget lacus viverra sollicitudin. Nulla facilisi. Proin sed ipsum vel lacus faucibus dignissim. Nulla purus. Nullam sapien elit, elementum eget, consequat vitae, vehicula cursus, pede. Sed quis leo. Praesent tincidunt convallis ligula. Sed purus eros, malesuada eget, posuere a, convallis suscipit, tellus. Proin tincidunt. Suspendisse leo. Suspendisse risus nisi, hendrerit in, ullamcorper id, porta in, pede. Maecenas lectus mi, congue vitae, ullamcorper vitae, bibendum sit amet, dui. Ut volutpat, nibh scelerisque malesuada bibendum, ipsum felis elementum lacus, nec pretium libero neque ut elit. Duis enim. Fusce arcu nulla, sodales eget, rhoncus sed, fermentum a, erat. Donec vitae mi.',
8
+ 'Duis sed nunc a justo egestas tincidunt. Morbi elit. Morbi venenatis fermentum erat. Cras purus orci, imperdiet a, sodales vel, aliquet at, quam. Etiam erat diam, ornare a, nonummy ut, accumsan non, felis. Fusce dignissim. Ut in ligula vitae risus varius viverra. Aenean elit diam, dapibus et, imperdiet in, suscipit at, felis. Curabitur vitae nunc ac mauris tincidunt posuere. Morbi id tortor. Nam sagittis. Sed dolor. Nulla imperdiet magna et lectus. Vivamus sapien diam, condimentum at, ultricies nec, vestibulum sit amet, pede. Nunc non orci vel magna lacinia sodales. In ac nunc vel mauris pharetra pharetra.',
9
+ 'Integer quis orci. Nam ultrices, magna nec ullamcorper tincidunt, enim massa semper arcu, sit amet malesuada velit nibh a enim. Phasellus molestie neque eget lorem semper convallis. Duis eget leo. Maecenas commodo vehicula nisi. In viverra massa sed justo. Vestibulum quis velit. Nunc id nulla. Ut eget sem. Nullam congue placerat ante. Mauris ut leo. Cras semper dolor at odio. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.',
10
+ 'Vivamus quis velit. Aliquam erat volutpat. Praesent malesuada tincidunt purus. Vestibulum quis pede. Praesent luctus, nunc in eleifend fermentum, risus lacus tristique mi, ac mollis metus mi at lectus. Proin tortor. Phasellus erat. Duis cursus nunc non metus. Vivamus hendrerit neque eu felis. Sed interdum metus a enim. Aliquam aliquet vehicula erat. Vivamus tortor neque, ornare ac, cursus id, nonummy ultricies, turpis. Proin tempor nonummy tellus. Praesent metus neque, accumsan eu, tempor sed, porta facilisis, pede. Cras nec nisl in turpis porta congue.',
11
+ 'Maecenas sollicitudin feugiat urna. Maecenas tellus. Vestibulum semper, lacus in blandit blandit, neque lectus ullamcorper nulla, at viverra elit justo ac lacus. Proin gravida enim non neque ultricies dictum. In vulputate mattis lacus. In mollis nibh a lacus. Aenean a ipsum. Vivamus egestas adipiscing eros. Cras gravida suscipit risus. Maecenas varius sagittis velit. Phasellus rhoncus risus. Nunc quis urna at neque convallis hendrerit. Mauris metus. Integer eleifend eros nec nunc venenatis ultrices. Curabitur placerat. Nam eros dui, semper vitae, tincidunt quis, tincidunt eu, risus. Ut in pede a neque condimentum feugiat. Maecenas dictum tortor non neque.',
12
+ 'Cras pulvinar rhoncus quam. Nam euismod massa sed urna. Suspendisse molestie gravida nulla. Sed imperdiet, nulla quis blandit accumsan, libero velit lobortis felis, sit amet consectetuer elit tellus vitae urna. Nunc rhoncus euismod urna. Donec a pede. Morbi viverra. Vivamus faucibus ipsum sit amet velit. Aenean est urna, posuere cursus, fringilla et, vestibulum eget, erat. Quisque accumsan turpis congue ipsum. Nam lectus purus, blandit eu, hendrerit sed, varius nec, lectus. Quisque bibendum sodales purus. Nulla at nulla eget arcu imperdiet aliquam. Nullam vitae quam. Nam at lorem.',
13
+ 'Nulla tempus. Nullam non lorem. Sed non arcu. Pellentesque sit amet arcu. Praesent eu ligula. Donec sagittis, lacus ac laoreet commodo, nisl risus cursus libero, ac aliquam ipsum erat sed ante. Etiam consequat, sapien vel dapibus lobortis, orci turpis sollicitudin quam, ac porttitor magna diam nec massa. Aenean aliquam, nisl eu imperdiet gravida, eros nisi facilisis velit, eget interdum libero sem ut eros. Sed magna. Sed vitae odio. Praesent augue. Proin volutpat. Maecenas urna quam, accumsan sit amet, sodales vitae, commodo sed, purus. Donec hendrerit. Suspendisse congue. Fusce diam metus, laoreet in, mattis ut, ullamcorper ac, urna. In eget lacus. Sed mollis iaculis pede.'
14
+ )
@@ -0,0 +1,36 @@
1
+ require 'rubygems'
2
+ require 'activesupport'
3
+
4
+ class RandomText
5
+ class Randomized
6
+ def initialize(data)
7
+ @list = data
8
+ end
9
+ def get
10
+ s = @list.slice!(rand(@list.length))
11
+ @list << s
12
+ s
13
+ end
14
+ end
15
+
16
+ def initialize(*args)
17
+ data = [*args].flatten.join(' ')
18
+ @words = Randomized.new(data.scan(/\w{4,}/).collect{ |w| w.chars.downcase.to_s }.uniq.map(&:chars))
19
+ @sentences = Randomized.new(data.scan(/\S[^.]*\./m).uniq)
20
+ end
21
+
22
+ def word
23
+ @words.get
24
+ end
25
+
26
+ def sentence
27
+ @sentences.get
28
+ end
29
+
30
+ def sentences(n)
31
+ Array.new(n){ sentence }.join(' ')
32
+ end
33
+ end
34
+
35
+ require 'lorem'
36
+ require 'vesna'
@@ -0,0 +1,17 @@
1
+ Vesna = RandomText.new(
2
+ 'Угол тангажа слабопроницаем. Моцзы, Сюнъцзы и другие считали, что познание текста недоступно притягивает конфликт, это обозначено Ли Россом как фундаментальная ошибка атрибуции, которая прослеживается во многих экспериментах. Тем не менее, мышление пространственно неоднородно. Когда речь идет о галактиках, социализация вызывает квант, не говоря уже о том, что рок-н-ролл мертв. Тело транслирует контрпример, образуя кристаллы кубической формы.',
3
+ 'Линза подчеркивает диссонансный анжамбеман, как и предполагалось. Метаязык рассматривается эксцентриситет, хотя в официозе принято обратное. Мезоморфная фаза притягивает гравитационный код почти так же, как в резонаторе газового лазера. Ударение, согласно традиционным представлениям, противоречиво нивелирует сангвиник, в итоге приходим к логическому противоречию.',
4
+ 'Плазменное образование, как принято считать, стабилизирует газообразный доминантсептаккорд, переходя в другую систему координат. Классическое уравнение движения ненаблюдаемо. Неравенство Бернулли параллельно. Пламя, как принято считать, восстанавливает аккорд, поскольку изоморфная кристаллизация с перманганатом рубидия невозможна.',
5
+ 'Комбинаторное приращение поразительно. Коагуляция творит контраст по мере распространения использования фтористого этилена. Выразительное однородно притягивает флегматик, в итоге возможно появление обратной связи и самовозбуждение системы. Эклиптика традиционно представляет собой лазерный двойной интеграл, также необходимо сказать о сочетании метода апроприации художественных стилей прошлого с авангардистскими стратегиями. Рефракция, в первом приближении, приводит щелочной монтаж, изменяя привычную реальность.',
6
+ 'Трехчастная фактурная форма вероятна. Волна доступна. Классицизм выстраивает прецизионный классицизм, не учитывая мнения авторитетов. Гедонизм проецирует ионный гедонизм, основываясь на ограничениях, наложенных на систему.',
7
+ 'Восприятие сотворчества, так или иначе, притягивает раствор, чем и объясняется его отравляющее действие. Показательный пример – серпантинная волна требует большего внимания к анализу ошибок, которые даёт прецессионный ортогональный определитель при любом агрегатном состоянии среды взаимодействия. Интеграл от функции, имеющий конечный разрыв отталкивает суггестивный ассоцианизм, однозначно указывает наличие спин-орбитального взаимодействия. Идея (пафос), не вдаваясь в подробности, выбирает нонаккорд в том случае, когда процессы дициклизации невозможны.',
8
+ 'Несимметричный димер социально просветляет закон внешнего мира, что нельзя сказать о нередко манерных эпитетах. Апогей исключен по определению. Очевидно проверяется, что вещество иллюстрирует неизменный полиряд, как и предполагалось. Мишень влияет на составляющие гироскопического момента больше, чем подвес, что неправильно при большой интенсивности диссипативных сил. Крещендирующее хождение, обобщая изложенное, просветляет глубокий сарос, переходя в другую систему координат.',
9
+ 'Выпадение естественно варьирует вибрирующий аккорд, чем и объясняется его отравляющее действие. Тело начинает разрыв, тем не менее как только ортодоксальность окончательно возобладает, даже эта маленькая лазейка будет закрыта. Фишка, как бы это ни казалось симбиотичным, возможна. Гегельянство монотонно окисляет ускоряющийся электрон – север вверху, восток слева. Единственной космической субстанцией Гумбольдт считал материю, наделенную внутренней активностью, несмотря на это апогей неустойчив.',
10
+ 'Хтонический миф специфицирует интеграл от функции, обращающейся в бесконечность в изолированной точке, хотя в официозе принято обратное. Страсть опасна. Полнолуние, даже при наличии сильных аттракторов, представляет собой токсичный гироскопический стабилизатоор, и здесь мы видим ту самую каноническую секвенцию с разнонаправленным шагом отдельных звеньев. Большая Медведица многопланово решает полином, и это неудивительно, если вспомнить квантовый характер явления.',
11
+ 'Объект, очевидно, неравномерен. Успокоитель качки, по определению, эллиптично гасит гештальт, даже если пока мы не можем наблюсти это непосредственно. При погружении в жидкий кислород тело порождает и обеспечивает гироинтегратор, учитывая опасность, которую представляли собой писания Дюринга для не окрепшего еще немецкого рабочего движения.',
12
+ 'Окрестность точки имитирует деструктивный Наибольший Общий Делитель (НОД), основываясь на предыдущих вычислениях. Противостояние образует сет, в частности, "тюремные психозы", индуцируемые при различных психопатологических типологиях. Соединение решает определенный фотоиндуцированный энергетический перенос, здесь описывается централизующий процесс или создание нового центра личности. Угол тангажа, по определению, решает вращательный популяционный индекс, но не рифмами. Свойство, следуя пионерской работе Эдвина Хаббла, имитирует нонаккорд, а время ожидания ответа составило бы 80 миллиардов лет.',
13
+ 'Гибридизация, после осторожного анализа, трансформирует тетрахорд в том случае, когда процессы переизлучения спонтанны. Весьма существенно следующее: соединение пространственно расщепляет индивидуальный надир, как и предсказывает теория о бесполезном знании. Атомный радиус, несмотря на внешние воздействия, теоретически возможен. Ролевое поведение представляет собой романтизм, и это придает ему свое звучание, свой характер. Комета преобразует конкретный гамма-квант, таким образом постепенно смыкается с сюжетом. Ввиду непрерывности функции f ( x ), слово принимает во внимание ямб, поэтому никого не удивляет, что в финале порок наказан.',
14
+ 'Зеркало подчеркивает вращательный гравитационный парадокс, отрицая очевидное. Отношение к современности растворимо ударяет мелодический экстремум функции, ломая рамки привычных представлений. Линеаризация, и это особенно заметно у Чарли Паркера или Джона Колтрейна, имитирует из ряда вон выходящий синтез, что вызвало развитие функционализма и сравнительно-психологических исследований поведения. Нечетная функция зависима. Как было показано выше, восприятие известно. Орбита дает импрессионизм, однако сами песни забываются очень быстро.',
15
+ 'Стоит отметить, что противостояние использует деструктивный закон, а после исполнения Утесовым роли Потехина в "Веселых ребятах" слава артиста стала всенародной. Темная материя, следовательно, фактурна. Согласно теории устойчивости движения стилистическая игра ингибирует белок, используя имеющиеся в этом случае первые интегралы. Начало координат, на первый взгляд, активно. Кластерное вибрато, следуя пионерской работе Эдвина Хаббла, тривиально. Наряду с этим иносказательность образа традиционно иллюстрирует онтогенез, Гоббс одним из первых осветил эту проблему с позиций психологии.',
16
+ 'Ошибка, следовательно, дает микрохроматический интервал, и здесь в качестве модуса конструктивных элементов используется ряд каких-либо единых длительностей. Если основание движется с постоянным ускорением, психосоматика изоморфна времени. Фотоиндуцированный энергетический перенос разъедает интеграл Фурье, хотя это довольно часто напоминает песни Джима Моррисона и Патти Смит. Вещество отличительно заканчивает классический реализм, поскольку любое другое поведение нарушало бы изотропность пространства. Брахикаталектический стих, в соответствии с модифицированным уравнением Эйлера, колеблет громкостной прогрессийный период, не учитывая мнения авторитетов.'
17
+ )
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: random_text
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - toy
8
+ autorequire: random_text
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-08-31 00:00:00 +04:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Class to make access to http://vesna.yandex.ru/ and http://lipsum.com/ easier
17
+ email: ivan@workisfun.ru
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ - LICENSE
25
+ - TODO
26
+ files:
27
+ - LICENSE
28
+ - README
29
+ - Rakefile
30
+ - TODO
31
+ - lib/lorem.rb
32
+ - lib/random_text.rb
33
+ - lib/vesna.rb
34
+ has_rdoc: true
35
+ homepage: ""
36
+ post_install_message:
37
+ rdoc_options: []
38
+
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ version:
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: "0"
52
+ version:
53
+ requirements: []
54
+
55
+ rubyforge_project:
56
+ rubygems_version: 1.2.0
57
+ signing_key:
58
+ specification_version: 2
59
+ summary: Class to make access to http://vesna.yandex.ru/ and http://lipsum.com/ easier
60
+ test_files: []
61
+