personal_faker 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/README.md +15 -5
- data/lib/personal_faker.rb +12 -0
- data/lib/personal_faker/version.rb +1 -1
- data/personal_faker-0.1.0.gem +0 -0
- metadata +2 -2
- data/lib/personal_faker/base.rb +0 -74
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f5477b9fb514ba53528e19fdef9cfed53b455f0
|
4
|
+
data.tar.gz: 8b5cad58a21810d83b3e52fe6b35e831d0c127af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2551088a9444b8e9071ae1ec7a40d83ff9472009891a6546177043106dfa1a645a36343a19ee88ce3a8aaa7dd1f8d6b439c137d9dc7faee41e3e7e23d03f9a54
|
7
|
+
data.tar.gz: 7455eb2479f8dbe03540425d8581e705f005e7eb10e0a7145084f244b12e6d11c7b5c42e0f97972864a29050fe24d995dbff8a960410fb73f4da3aee6ea8494d
|
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# PersonalFaker
|
2
2
|
|
3
|
-
|
3
|
+
This gem allows you to create fake sentences, questions, etc based on
|
4
|
+
a famous text of your choosing.
|
4
5
|
|
5
|
-
|
6
|
+
On initialization, a table is created that matches each word in the text with the frequencies of words that come after it. The algorithm then loops through one word at a time, picking randomnly a word that comes after it in the text. If no word comes after it (i.e. the end of the text is reached, a random word from the text is chosen).
|
6
7
|
|
7
8
|
## Installation
|
8
9
|
|
@@ -22,7 +23,17 @@ Or install it yourself as:
|
|
22
23
|
|
23
24
|
## Usage
|
24
25
|
|
25
|
-
|
26
|
+
Initialize the faker with your chosen text
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
my_faker = PersonalFaker::Base.new('macbeth')
|
30
|
+
```
|
31
|
+
|
32
|
+
Then you can create sentences that are based on the text
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
title = my_faker.sentence
|
36
|
+
```
|
26
37
|
|
27
38
|
## Development
|
28
39
|
|
@@ -32,8 +43,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
43
|
|
33
44
|
## Contributing
|
34
45
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
36
|
-
|
46
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/sliuu/personal_faker. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
|
37
47
|
|
38
48
|
## License
|
39
49
|
|
data/lib/personal_faker.rb
CHANGED
@@ -72,5 +72,17 @@ module PersonalFaker
|
|
72
72
|
end
|
73
73
|
sentence = sentence + "?"
|
74
74
|
end
|
75
|
+
|
76
|
+
def word
|
77
|
+
word = table.keys.sample
|
78
|
+
end
|
79
|
+
|
80
|
+
def text_phrase(count)
|
81
|
+
phrase = sentence
|
82
|
+
(count - 1).times do
|
83
|
+
phrase << " " + sentence
|
84
|
+
end
|
85
|
+
phrase
|
86
|
+
end
|
75
87
|
end
|
76
88
|
end
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: personal_faker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephanie Liu
|
@@ -87,13 +87,13 @@ files:
|
|
87
87
|
- lib/.DS_Store
|
88
88
|
- lib/personal_faker.rb
|
89
89
|
- lib/personal_faker/.DS_Store
|
90
|
-
- lib/personal_faker/base.rb
|
91
90
|
- lib/personal_faker/texts/dr-seuss.rtf
|
92
91
|
- lib/personal_faker/texts/macbeth.rtf
|
93
92
|
- lib/personal_faker/texts/pride-and-prejudice.rtf
|
94
93
|
- lib/personal_faker/texts/simple_text.rtf
|
95
94
|
- lib/personal_faker/version.rb
|
96
95
|
- personal_faker-0.0.4.gem
|
96
|
+
- personal_faker-0.1.0.gem
|
97
97
|
- personal_faker.gemspec
|
98
98
|
homepage: https://github.com/sliuu/personal_faker
|
99
99
|
licenses:
|
data/lib/personal_faker/base.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
module PersonalFaker
|
2
|
-
class Base
|
3
|
-
attr_accessor :table
|
4
|
-
attr_accessor :text
|
5
|
-
attr_accessor :file
|
6
|
-
|
7
|
-
def initialize(choose_text)
|
8
|
-
if choose_text == 'dr-seuss'
|
9
|
-
@file = 'lib/personal_faker/texts/dr-seuss.rtf'
|
10
|
-
elsif choose_text == 'pride-and-prejudice'
|
11
|
-
@file = 'lib/personal_faker/texts/pride-and-prejudice.rtf'
|
12
|
-
elsif choose_text == 'macbeth'
|
13
|
-
@file = 'lib/personal_faker/texts/macbeth.rtf'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def text
|
18
|
-
return @text unless @text.nil?
|
19
|
-
@text = File.open(@file, "r").read
|
20
|
-
@text.gsub!("\n", ' ')
|
21
|
-
@text.gsub!("\\", '')
|
22
|
-
@text.gsub!('"', '')
|
23
|
-
@text.gsub!(' ', ' ')
|
24
|
-
@text.gsub!(/[_.,!?;:]/, '')
|
25
|
-
@text.downcase!
|
26
|
-
@text.gsub!(' i ', ' I ')
|
27
|
-
end
|
28
|
-
|
29
|
-
def table
|
30
|
-
return @table unless @table.nil?
|
31
|
-
position = 0
|
32
|
-
position_of_second_word = text.index(' ', 1)
|
33
|
-
table = {}
|
34
|
-
until position_of_second_word.nil? || text.index(' ', position_of_second_word + 1).nil? do
|
35
|
-
position_of_second_word += 1
|
36
|
-
word = text[position..(position_of_second_word - 2)]
|
37
|
-
second_word = text[position_of_second_word..(text.index(' ', position_of_second_word)-1)]
|
38
|
-
table[word] ||= []
|
39
|
-
table[word] << second_word
|
40
|
-
position = position_of_second_word
|
41
|
-
position_of_second_word = text.index(' ', position + 1)
|
42
|
-
end
|
43
|
-
@table = table
|
44
|
-
end
|
45
|
-
|
46
|
-
def sentence
|
47
|
-
word = table.keys.sample.capitalize
|
48
|
-
sentence = word
|
49
|
-
10.times do
|
50
|
-
if table[word]
|
51
|
-
word = table[word].sample
|
52
|
-
else
|
53
|
-
word = table.keys.sample
|
54
|
-
end
|
55
|
-
sentence = sentence + " " + word
|
56
|
-
end
|
57
|
-
sentence = sentence + "."
|
58
|
-
end
|
59
|
-
|
60
|
-
def question
|
61
|
-
word = table.keys.sample.capitalize
|
62
|
-
sentence = word
|
63
|
-
10.times do
|
64
|
-
if table[word]
|
65
|
-
word = table[word].sample
|
66
|
-
else
|
67
|
-
word = table.keys.sample
|
68
|
-
end
|
69
|
-
sentence = sentence + " " + word
|
70
|
-
end
|
71
|
-
sentence = sentence + "?"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|