LoremKnight 3.3.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4eb0137b412ba14e08b6f271bcc8083943b9a822
4
- data.tar.gz: c946145d07a559454f201584a171836545cc839c
3
+ metadata.gz: d24f51e39fb08306f8ed9b31bb0ac7da4626f4e9
4
+ data.tar.gz: 9545b1a6e22e66a45b927058b4f0ca6d42ddb2b4
5
5
  SHA512:
6
- metadata.gz: a196ee3edb0dde0a48c124fdc63a851cb6b96bd08cdcc6a179a9a1469988719aa16a833a26f1ed8834952ca7481019344044d25b823373bde239ce7e19818ddc
7
- data.tar.gz: 010f31fba1f68ad4baab25c4cd8b9d3850f36de30493e5eee581b977d6d1ca59f3d996f13cc0ac147ea5db24bacbb64f7c5de24db26d8018511141279289a324
6
+ metadata.gz: b3b5b7e5f16f152c70168159f2ec2b33c656bc9023d6042ef917eaf81284d70c2e7fbe3f0d8bddb9027c8aa4e52e13b09be500a3d3adeb8393b3735afc0e69ab
7
+ data.tar.gz: 4421766b95587ecdc11eaea882cb7fb67bff22b8d48d452189a9a25a632d420dd2bc7a3d4b6271a14ff998a1ff6fd579ff6e37029fa561ef2bafc7ec930d2958
@@ -4,4 +4,4 @@ rvm:
4
4
  install:
5
5
  - bundle install
6
6
  script:
7
- - bundle exec rspec spec/lorem_test.rb
7
+ - bundle exec rspec spec/lorem-knight/lorem_test.rb
data/Gemfile CHANGED
@@ -1,2 +1,3 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
+
2
3
  gemspec
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- LoremKnight (3.2.0)
4
+ LoremKnight (3.4.0)
5
5
  clipboard
6
6
  ffi
7
7
  rainbow
8
- thor
8
+ thor (~> 0.19)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -13,7 +13,10 @@ GEM
13
13
  clipboard (1.1.1)
14
14
  diff-lcs (1.3)
15
15
  ffi (1.9.18)
16
- rainbow (2.2.1)
16
+ ffi (1.9.18-java)
17
+ rainbow (2.2.2)
18
+ rake
19
+ rake (12.0.0)
17
20
  rspec (3.5.0)
18
21
  rspec-core (~> 3.5.0)
19
22
  rspec-expectations (~> 3.5.0)
@@ -27,15 +30,16 @@ GEM
27
30
  diff-lcs (>= 1.2.0, < 2.0)
28
31
  rspec-support (~> 3.5.0)
29
32
  rspec-support (3.5.0)
30
- thor (0.19.4)
33
+ thor (0.20.0)
31
34
 
32
35
  PLATFORMS
36
+ java
33
37
  ruby
34
38
 
35
39
  DEPENDENCIES
36
40
  LoremKnight!
37
41
  bundler (~> 1.6)
38
- rspec
42
+ rspec (~> 3)
39
43
 
40
44
  BUNDLED WITH
41
- 1.14.6
45
+ 1.16.2
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 guga katsiashvili
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,17 +1,104 @@
1
+ LoremKnight
2
+ =================
3
+
4
+ Generate Lorem from georgian poem "The Knight in the Panther's Skin" quickly in Terminal! ( see wiki for more )
5
+
6
+ ![LoremKnight shota](http://www.picz.ge/img/s3/1610/11/c/cec3d5d8af8c.jpg)
7
+
8
+
9
+ ## Setup
10
+
11
+ 1. Install `gem install LoremKnight`.
12
+ 2. Linux: You will need the xclip or xsel program. On debian/ubuntu this is: `sudo apt-get install xclip` for Terminal auto copy/paste support
13
+
14
+
15
+ ## Usage
16
+ ----------
17
+
18
+ _From Terminal_
19
+
20
+
21
+ **Type in terminal :**
22
+
23
+ generate Paragraphs - `LoremKnight p QUANTITY (from 1 to infinity :d )`
24
+
25
+ generate Sentences - `LoremKnight s QUANTITY`
26
+
27
+ generate Words - `LoremKnight QUANTITY`
28
+
29
+ generate Html lists - `LoremKnight l QUANTITY`
30
+
31
+ **Additionally** add `--pre` and of any command , generated lorem will start with "რომელმან შექმნა სამყარო"
32
+
33
+
34
+ ----------
35
+
36
+
37
+ **_From Ruby Code_**
38
+
39
+ ***Getters***
40
+
41
+ function | What it does
42
+ ---------|-------------
43
+ Tiger.getSentence(n) | returns lorem sentences
44
+ Tiger.getWords(n) | returns words
45
+ Tiger.getParagraph(n) | returns paragraphs
46
+ Tiger.getList(n) | returns Lists
47
+
48
+ ***Setters***
49
+
50
+ function | What it does
51
+ ---------|-------------
52
+ Tiger.setSentenceSize(int n)| changes number of words in sentences , default is 7
53
+ Tiger.setParagraphSize(int n) | changes number of words in paragraph, default is 70
54
+ Tiger.setListSize(int n) | changes number of lists generated on each, default is 5
55
+ Tiger.setWordMaximumLength(int n) | changes max length of words generated , default is 25
56
+ Tiger.setContentType(String type'html' or 'raw') | sets content type html or raw
57
+ Tiger.hasPreSentence(boolean n) | indicates whether have preSentence or not ('რომელმან შექმნა სამყარო')
58
+
59
+ ***Example Code***
60
+
61
+
62
+ class loremGenerator
63
+ Tiger.setSentenceSize(10) // changing default size of sentences generated
64
+ Tiger.setContentType('HTML') // setting content type to html , so it will generate lorem with html tags
65
+ Tiger.hasPreSentence(true) // indicating that every sentence or paragraph or list will start with presentence : ''რომელმან შექმნა სამყარო'
66
+
67
+ def self.generateLorem(type,howMuch)
68
+ case(type)
69
+ when 'list'
70
+ puts "#{Tiger.getList(howMuch)}"
71
+ when 'paragraph'
72
+ puts "#{Tiger.getParagraph(howMuch)}"
73
+ when 'sentence'
74
+ puts "#{Tiger.getSentence(howMuch)}"
75
+ when 'words'
76
+ puts "#{Tiger.getWords(howMuch)}"
77
+ else
78
+ puts "wrong type"
79
+ end
80
+ end
81
+ end
82
+
83
+ # Than you can simply
84
+
85
+ tiger = loremGenerator.new
86
+ tiger.generateLorem('paragraph',3) // will output 3 paragraph lorems :)
87
+
88
+ ----------
89
+
90
+
91
+ ### _From Anywhere using Api_
92
+ Visit [LoremKnight Api doc here ](http://www.loremknight.me/api)
93
+ ## Development
94
+
95
+ dependencies used :
96
+ * Thor - for terminal support
97
+ * clipboard & ffi - for automatic copy/paste from terminal
98
+ * rainbow - for cheerfulness and colorfulness
99
+
1
100
  <a href="https://badge.fury.io/rb/LoremKnight"><img src="https://badge.fury.io/rb/LoremKnight.svg" alt="Gem Version" height="18"></a>
2
- <h1 style = " font:normal 1em Georgia,"Times New Roman",Times,serif;"> Lorem Knight </h1>
3
- <br>
4
- <h4 style = " font-family: Copperplate,"Copperplate Gothic Light",fantasy;
5
- "> <em> Ruby gem , generating lorem from georgia poem "The Knight in the Panther's Skin" </em> </h4>
6
- <br>
7
- <img src = "http://www.picz.ge/img/s3/1610/11/c/cec3d5d8af8c.jpg" />
8
- <hr>
9
- <h3> Gettings started </h3>
10
- <ul>
11
- <li> require 'tiger' </li>
12
- <li> or gem 'LoremKnight', '~> 0.0.0' </li>
13
- <li> Tiger.generate(sentence,words,filename) </li>
14
- </ul>
15
- <footer>
16
- <h4> <a href = "https://rubygems.org/gems/LoremKnight">you can checkout gem on RubyGems.org </a> </h4>
17
- </footer>
101
+
102
+ [![Build Status](https://travis-ci.org/gugakatsi/LoremKnight.svg?branch=master)](https://travis-ci.org/gugakatsi/LoremKnight)
103
+
104
+ [![Dependency Status](https://gemnasium.com/badges/github.com/gugakatsi/LoremKnight.svg)](https://gemnasium.com/github.com/gugakatsi/LoremKnight)
data/Rakefile CHANGED
File without changes
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
  $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
3
+ require "lorem-knight/cli"
3
4
 
4
- require 'cli'
5
- Terminal::Knight.start(ARGV)
5
+ LoremKnight::CLI.start
@@ -0,0 +1,7 @@
1
+ module LoremKnight
2
+ require 'lorem-knight/version'
3
+ require 'lorem-knight/about'
4
+ require 'lorem-knight/panther'
5
+ require 'lorem-knight/cli'
6
+ # This is your gem's load point. Require your components here.
7
+ end
@@ -0,0 +1,3 @@
1
+ module LoremKnight
2
+ ABOUT = "Ruby gem , generating lorem ( Directly from your terminal )from georgian poem 'The Knight in the Panther's Skin'. http://www.loremknight.me/"
3
+ end
@@ -0,0 +1,68 @@
1
+ require 'thor'
2
+ require 'lorem-knight'
3
+ require 'rainbow'
4
+ require 'rainbow/ext/string'
5
+ require 'clipboard'
6
+
7
+ #trap("SIGINT") { exit! }
8
+
9
+ module LoremKnight
10
+ def self.show_and_copy(lorem)
11
+ puts "#{lorem}".color("#DCE35F")
12
+ Clipboard.copy(lorem)
13
+ end
14
+
15
+ def self.configure_lorem(options, panther)
16
+ panther.set_content_type(options[:html] ? 'html' : 'raw')
17
+ panther.has_pre_sentence = options[:pre]
18
+ end
19
+
20
+ class CLI < Thor
21
+ include Thor::Actions
22
+
23
+ @@panther = LoremKnight::Panther.new
24
+ map %w(-v --version) => :version
25
+ map %w(-i --about) => :about
26
+
27
+ desc 'version', 'lorem-knight version'
28
+ def version
29
+ puts LoremKnight::VERSION
30
+ end
31
+
32
+ desc 'about', 'about LoremKnight'
33
+ def about
34
+ puts LoremKnight::ABOUT
35
+ end
36
+
37
+ desc "s quantity", "generates LoremKnight sentences"
38
+ option :pre, :type => :boolean
39
+ option :html, :type => :boolean
40
+ def s(quantity)
41
+ LoremKnight::configure_lorem(options, @@panther)
42
+ LoremKnight::show_and_copy(@@panther.get_sentence(quantity.to_i))
43
+ end
44
+
45
+ desc "p quantity", "generates LoremKnight paragraphs"
46
+ option :pre, :type => :boolean
47
+ option :html, :type => :boolean
48
+ def p(quantity)
49
+ LoremKnight::configure_lorem(options, @@panther)
50
+ LoremKnight::show_and_copy(@@panther.get_paragraph(quantity.to_i))
51
+ end
52
+
53
+ desc "w quantity", "generates LoremKnight words"
54
+ option :pre, :type => :boolean
55
+ option :html, :type => :boolean
56
+ def w(quantity)
57
+ LoremKnight::configure_lorem(options, @@panther)
58
+ LoremKnight::show_and_copy(@@panther.get_words(quantity.to_i))
59
+ end
60
+
61
+ desc "l quantity", "generates LoremKnight html <ul> - s"
62
+ option :pre, :type => :boolean
63
+ def l(quantity)
64
+ LoremKnight::configure_lorem(options, @@panther)
65
+ LoremKnight::show_and_copy(@@panther.get_list(quantity.to_i))
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,97 @@
1
+ $source_location = File.dirname(__FILE__)
2
+
3
+ module LoremKnight
4
+ class Panther
5
+ attr_accessor :paragraph_size
6
+ attr_accessor :sentence_size
7
+ attr_accessor :list_size
8
+ attr_accessor :word_length
9
+ attr_accessor :has_pre_sentence
10
+
11
+ def initialize
12
+ #
13
+ source = File.open("#{$source_location}/raw/words.txt", "r+")
14
+ @content = source.sysread(source.size).split(" ")
15
+
16
+ # initialize default lorem config vars
17
+ @paragraph_size = 70
18
+ @sentence_size = 7
19
+ @list_size = 5
20
+ @word_length = 20
21
+ @list_standart_size = 10
22
+
23
+ @content_type = "RAW"
24
+ @has_pre_sentence = false
25
+ end
26
+
27
+ def get_sentence(quantity)
28
+ generate_lorem(quantity, @sentence_size)
29
+ end
30
+
31
+ def get_paragraph(quantity)
32
+ generate_lorem(quantity, @paragraph_size)
33
+ end
34
+
35
+ def get_list(quantity)
36
+ lists = ""
37
+ quantity.to_i.times { lists += generate_list }
38
+ return lists
39
+ end
40
+
41
+ def get_words(quantity)
42
+ words = ""
43
+ word_array = words.split(" ")
44
+
45
+ while word_array.length < quantity.to_i do
46
+ pending_word = @content[rand(@content.size)]
47
+ words += pending_word.length <= @word_length ? pending_word + " " : ""
48
+ word_array = words.split(" ")
49
+ end
50
+ return words.force_encoding('UTF-8')
51
+ end
52
+
53
+ def set_content_type(type)
54
+ case(type.to_s)
55
+ when "html"
56
+ @content_type = "text/html"
57
+ when "raw"
58
+ @content_type = "RAW"
59
+ else
60
+ @content_type = "RAW"
61
+ end
62
+ end
63
+
64
+ def generate_lorem(quantity, length, prefix = '')
65
+ pre_sentence = @has_pre_sentence == true ? "რომელმან შექმნა სამყარო" : ""
66
+ lorem = @content_type == 'text/html' ? "<p> #{pre_sentence} " : "#{pre_sentence} "
67
+
68
+ quantity.times do |i|
69
+ length.times do
70
+ lorem += (@content[rand(@content.size)] + " ").force_encoding('UTF-8')
71
+ end
72
+ case(@content_type)
73
+ when "text/html"
74
+ lorem += i != quantity - 1 ? " </p> <p> #{pre_sentence} " : " </p>"
75
+ when "RAW"
76
+ lorem += i != quantity - 1 ? "\n #{pre_sentence} " : ""
77
+ end
78
+ end
79
+ return lorem.force_encoding('UTF-8')
80
+ end
81
+
82
+ def generate_list
83
+ pre_sentence = @has_pre_sentence == true ? "რომელმან შექმნა სამყარო" : ""
84
+ list = "<ul><li>"
85
+ randomSize = rand(20)
86
+
87
+ @list_standart_size.times do |x|
88
+ list += " #{pre_sentence}"
89
+ randomSize.times do |y|
90
+ list += y != randomSize-1 ? " #{@content[rand(@content.size-1)]}" : " #{@content[rand(@content.size-1)]}</li>"
91
+ end
92
+ list += x != @list_standart_size-1 ? "<li>" : "</ul>"
93
+ end
94
+ return list.force_encoding('UTF-8')
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,3 @@
1
+ module LoremKnight
2
+ VERSION = '3.4.0'
3
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+ require File.expand_path("../lib/lorem-knight/version", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ #Metadata
6
+ s.name = "LoremKnight"
7
+ s.version = LoremKnight::VERSION
8
+ s.authors = ["guga katsiashvili"]
9
+ s.email = ["guga.katsiashvili@gmail.com"]
10
+ s.homepage = "http://www.loremknight.me/"
11
+ s.summary = %q{Ruby gem , generating lorem ( Directly from your terminal )from georgian poem "The Knight in the Panther's Skin" http://www.loremknight.me/ Edit}
12
+ s.description = %q{Ruby gem , generating lorem ( Directly from your terminal )from georgian poem "The Knight in the Panther's Skin" http://www.loremknight.me/ Edit}
13
+ s.licenses = ['MIT']
14
+ s.post_install_message = "LoremKnight succesfully installed , feel free to use with terminal"
15
+
16
+ #Manifest
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ['lib']
21
+
22
+ s.add_runtime_dependency 'thor', '~> 0.19'
23
+ s.add_dependency 'rainbow'
24
+ s.add_dependency 'clipboard'
25
+ s.add_dependency 'ffi'
26
+
27
+ s.add_development_dependency 'rspec', '~> 3'
28
+ s.add_development_dependency "bundler", "~> 1.6"
29
+ end
Binary file
@@ -0,0 +1,40 @@
1
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
2
+ require 'lorem-knight/panther.rb'
3
+
4
+ describe LoremKnight::Panther do
5
+
6
+ subject { LoremKnight::Panther.new }
7
+ let(:panther) { subject }
8
+
9
+ before do
10
+ panther.word_length = 20;
11
+ panther.sentence_size = 10;
12
+ panther.paragraph_size = 80;
13
+ end
14
+
15
+ describe "LoremKnight w 10 maxW 10" do
16
+ it "Test if lorem outputs 10 words with max length of 10 xD" do
17
+ expect(panther.get_words(10).chomp.length).to be <= 10*10
18
+ end
19
+ end
20
+
21
+ describe "setStandartSentenceSize(size)" do
22
+ it "tests if setters works : sentence" do
23
+ expect(panther.get_sentence(1).split(" ").length).to be == 10
24
+ end
25
+ end
26
+
27
+ describe "setStandartSentenceSize(size)" do
28
+ it "tests if setters works : paragraph" do
29
+ expect(panther.get_paragraph(1).split(" ").length).to be == 80
30
+ end
31
+ end
32
+
33
+ describe "hasPreSentence(true)" do
34
+ it "test if every sentence starts with romelman sheqmna samyaro" do
35
+ panther.has_pre_sentence = true;
36
+ expect(panther.get_sentence(1).chomp).to start_with('რომელმან შექმნა სამყარო')
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,2 @@
1
+ require 'rspec'
2
+ require 'lorem-knight'
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: LoremKnight
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - Guga katsiashvili
7
+ - guga katsiashvili
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-16 00:00:00.000000000 Z
11
+ date: 2018-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.19'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '0.19'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rainbow
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,58 +67,64 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
70
+ name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.6'
75
+ version: '3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.6'
82
+ version: '3'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '1.6'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
97
- description: 'lorem generating words from georgian epic poem : The Knight in the Panther''s
98
- Skin,now with Terminal support,offline mode <3'
99
- email: guga.katsiashvili@gmail.com
96
+ version: '1.6'
97
+ description: Ruby gem , generating lorem ( Directly from your terminal )from georgian
98
+ poem "The Knight in the Panther's Skin" http://www.loremknight.me/ Edit
99
+ email:
100
+ - guga.katsiashvili@gmail.com
100
101
  executables:
101
- - LoremKnight
102
+ - lorem-knight
102
103
  extensions: []
103
104
  extra_rdoc_files: []
104
105
  files:
105
106
  - ".travis.yml"
106
- - 0.6.9
107
107
  - Gemfile
108
108
  - Gemfile.lock
109
+ - LICENSE
109
110
  - README.md
110
111
  - Rakefile
111
- - Tiger.gemspec
112
- - bin/LoremKnight
113
- - lib/cli.rb
114
- - lib/tiger.rb
115
- - lib/words.txt
116
- - spec/lorem_test.rb
112
+ - bin/lorem-knight
113
+ - lib/lorem-knight.rb
114
+ - lib/lorem-knight/about.rb
115
+ - lib/lorem-knight/cli.rb
116
+ - lib/lorem-knight/panther.rb
117
+ - lib/lorem-knight/raw/words.txt
118
+ - lib/lorem-knight/version.rb
119
+ - lorem-knight.gemspec
120
+ - pkg/LoremKnight-3.4.0.gem
121
+ - spec/lorem-knight/lorem_test.rb
122
+ - spec/spec_helper.rb
117
123
  homepage: http://www.loremknight.me/
118
124
  licenses:
119
125
  - MIT
120
126
  metadata: {}
121
- post_install_message:
127
+ post_install_message: LoremKnight succesfully installed , feel free to use with terminal
122
128
  rdoc_options: []
123
129
  require_paths:
124
130
  - lib
@@ -134,8 +140,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
140
  version: '0'
135
141
  requirements: []
136
142
  rubyforge_project:
137
- rubygems_version: 2.4.8
143
+ rubygems_version: 2.6.14
138
144
  signing_key:
139
145
  specification_version: 4
140
- summary: The Knight in the Panther's Skin!
146
+ summary: Ruby gem , generating lorem ( Directly from your terminal )from georgian
147
+ poem "The Knight in the Panther's Skin" http://www.loremknight.me/ Edit
141
148
  test_files: []
data/0.6.9 DELETED
@@ -1,4 +0,0 @@
1
- Successfully installed LoremKnight-1.6.9
2
- Parsing documentation for LoremKnight-1.6.9
3
- Done installing documentation for LoremKnight after 0 seconds
4
- 1 gem installed
@@ -1,25 +0,0 @@
1
-
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
-
5
- Gem::Specification.new do |s|
6
- s.name = 'LoremKnight'
7
- s.version = '3.3.0'
8
- s.date = '2017-04-16'
9
- s.summary = "The Knight in the Panther's Skin!"
10
- s.description = "lorem generating words from georgian epic poem : The Knight in the Panther's Skin,now with Terminal support,offline mode <3"
11
- s.authors = ["Guga katsiashvili"]
12
- s.email = 'guga.katsiashvili@gmail.com'
13
- s.files = `git ls-files -z`.split("\x0")
14
- s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
15
- s.homepage =
16
- 'http://www.loremknight.me/'
17
- s.license = 'MIT'
18
- s.add_dependency 'thor'
19
- s.add_dependency 'rainbow'
20
- s.add_dependency 'clipboard'
21
- s.add_dependency 'ffi'
22
- s.add_development_dependency "bundler", "~> 1.6"
23
- s.add_development_dependency "rspec"
24
- s.require_paths = ["lib"]
25
- end
data/lib/cli.rb DELETED
@@ -1,55 +0,0 @@
1
- require 'thor'
2
- require 'tiger.rb'
3
- require 'rainbow'
4
- require 'rainbow/ext/string'
5
- require 'clipboard'
6
-
7
- module Terminal
8
- def self.showAndCopy(lorem)
9
- puts "#{lorem}".color("#DCE35F")
10
- Clipboard.copy(lorem)
11
- end
12
-
13
- class Knight < Thor
14
- desc "s NUMBER","generates LoremKnight sentences"
15
- option :pre,:type => :boolean
16
- option :html,:type => :boolean
17
-
18
- def s(number)
19
- Tiger.setContentType(options[:html] ? 'html' : 'raw')
20
- Tiger.hasPreSentence(options[:pre])
21
- lorem = Tiger.getSentence(number.to_i)
22
- Terminal::showAndCopy(lorem)
23
- end
24
-
25
- desc "p NUMBER","generates LoremKnight paragraphs"
26
- option :pre,:type => :boolean
27
- option :html,:type => :boolean
28
-
29
- def p(number)
30
- Tiger.setContentType(options[:html] ? 'html' : 'raw')
31
- Tiger.hasPreSentence(options[:pre])
32
- lorem = Tiger.getParagraph(number.to_i)
33
- Terminal::showAndCopy(lorem)
34
- end
35
-
36
- desc "w NUMBER","generates LoremKnight words"
37
- option :pre,:type => :boolean
38
- option :html,:type => :boolean
39
-
40
- def w(number)
41
- Tiger.hasPreSentence(options[:pre])
42
- lorem = Tiger.getWords(number.to_i)
43
- Terminal::showAndCopy(lorem)
44
- end
45
-
46
- desc "l NUMBER","generates LoremKnight lists <html>"
47
- option :pre,:type => :boolean
48
-
49
- def l(number)
50
- Tiger.hasPreSentence(options[:pre])
51
- lorem = Tiger.getList(number.to_i)
52
- Terminal::showAndCopy(lorem)
53
- end
54
- end
55
- end
@@ -1,112 +0,0 @@
1
- $source_location = File.dirname(__FILE__)
2
- require 'open-uri'
3
-
4
- class Tiger
5
-
6
- @content = ""
7
- @paragraphStandartSize = 70;
8
- @sentenceStandartSize = 7;
9
- @listStandartSize = 5;
10
- @wordLength = 20;
11
-
12
- @contentType = "RAW"
13
- @hasPreSentence = false
14
-
15
- source = File.open("#{$source_location}/words.txt","r+")
16
- @content = source.sysread(source.size).split(" ")
17
-
18
- def self.getSentence(sentenceN)
19
- lorem(sentenceN,@sentenceStandartSize,'')
20
- end
21
-
22
- def self.getParagraph(paragraphN)
23
- lorem(paragraphN,@paragraphStandartSize,'')
24
- end
25
-
26
- def self.getList(listN)
27
- lists = ""
28
- listN.to_i.times do
29
- lists += generateList
30
- end
31
- return lists
32
- end
33
-
34
- def self.getWords(wordN)
35
- @words = ""
36
- @wordArray = @words.split(" ")
37
-
38
- while @wordArray.length < wordN.to_i do
39
- pendingWord = @content[rand(@content.size)]
40
- @words += pendingWord.length <= @wordLength ? pendingWord+" " : ""
41
- @wordArray = @words.split(" ")
42
- end
43
- return @words.force_encoding('UTF-8');
44
- end
45
-
46
- def self.setSentenceSize(size)
47
- @sentenceStandartSize = size.to_i > 0 ? size.to_i : @sentenceStandartSize;
48
- end
49
-
50
- def self.setParagraphSize(size)
51
- @paragraphStandartSize = size.to_i > 0 ? size.to_i : @paragraphStandartSize;
52
- end
53
-
54
- def self.setListSize(size)
55
- @listStandartSize = size.to_i > 0 ? size.to_i : @listStandartSize;
56
- end
57
-
58
- def self.setWordMaximumLength(length)
59
- @wordLength = length.to_i > 0 ? length.to_i : @wordLength;
60
- end
61
-
62
- def self.setContentType(type)
63
- case(type.to_s)
64
- when "html"
65
- @contentType = "text/html"
66
- when "raw"
67
- @contentType = "RAW"
68
- else
69
- @contentType = "RAW"
70
- end
71
- end
72
-
73
- def self.hasPreSentence(has)
74
- @hasPreSentence = has
75
- end
76
- end
77
-
78
- def lorem(header,body,startWith = '')
79
- @preSentence = @hasPreSentence == true ? "რომელმან შექმნა სამყარო" : ""
80
- @sentence = @contentType == 'text/html' ? "<p> #{@preSentence} " : " #{@preSentence} "
81
-
82
- header.times do |x|
83
- body.times do
84
- randomWord = @content[rand(@content.size)].force_encoding('UTF-8')
85
- @sentence += randomWord+" "
86
- end
87
- if @contentType == 'text/html'
88
- @sentence += x != header - 1 ? " </p> <br> <br> <p> #{@preSentence} " : " </p> <br> "
89
- elsif @contentType == 'RAW'
90
- @sentence += x != header-1 ? " \n \n #{@preSentence} " : " \n "
91
- end
92
- end
93
- return @sentence.force_encoding('UTF-8')
94
- end
95
-
96
- def generateList
97
- @preSentence = @hasPreSentence == true ? "რომელმან შექმნა სამყარო" : ""
98
-
99
- list = "<ul><li>"
100
- randomSize = rand(20) #setRandBound
101
-
102
- @listStandartSize.times do |x|
103
- list += " #{@preSentence}"
104
- randomSize.times do |y|
105
- list += y != randomSize-1 ? " #{@content[rand(@content.size-1)]}" : " #{@content[rand(@content.size-1)]}</li>"
106
- end
107
- list += x != @listStandartSize-1 ? "<li>" : "</ul><br><br>"
108
- end
109
-
110
- return list.force_encoding('UTF-8')
111
-
112
- end
@@ -1,36 +0,0 @@
1
- $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
2
- require 'tiger.rb'
3
-
4
- describe Tiger do
5
- before do
6
- Tiger.setWordMaximumLength(20);
7
- Tiger.setSentenceSize(10);
8
- Tiger.setParagraphSize(80);
9
- end
10
-
11
- describe "LoremKnight w 10 maxW 10" do
12
- it "Test if lorem outputs 10 words with max length of 10 xD" do
13
- expect(Tiger.getWords(10).chomp.length).to be <= 10*10
14
- end
15
- end
16
-
17
- describe "setStandartSentenceSize(size)" do
18
- it "tests if setters works : sentence" do
19
- expect(Tiger.getSentence(1).split(" ").length).to be == 10
20
- end
21
- end
22
-
23
- describe "setStandartSentenceSize(size)" do
24
- it "tests if setters works : paragraph" do
25
- expect(Tiger.getParagraph(1).split(" ").length).to be == 80
26
- end
27
- end
28
-
29
- describe "hasPreSentence(true)" do
30
- it "test if every sentence starts with romelman sheqmna samyaro" do
31
- Tiger.hasPreSentence(true);
32
- expect(Tiger.getSentence(1).chomp).to start_with(' რომელმან შექმნა სამყარო')
33
- end
34
- end
35
-
36
- end