rubberband_flamethrower 0.5.1 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -5
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/rubberband_flamethrower.rb +2 -2
- data/lib/rubberband_flamethrower/data_generator.rb +10 -5
- data/lib/rubberband_flamethrower/flamethrower.rb +7 -5
- data/rubberband_flamethrower.gemspec +4 -4
- metadata +40 -15
data/README.md
CHANGED
@@ -95,13 +95,11 @@ The "generate_dataset" command can be used to create a set of documents for inse
|
|
95
95
|
|
96
96
|
flamethrower generate_dataset
|
97
97
|
|
98
|
-
This will generate a batch of 500 documents and store it in a local file called "dataset". You can configure the size of the dataset by providing
|
98
|
+
This will generate a batch of 500 documents and store it in a local file called "dataset". You can configure the size of the dataset or the filename of the dataset by providing additional parameters to the command.
|
99
99
|
|
100
|
-
To generate a dataset of 10,000 documents:
|
100
|
+
To generate a dataset of 10,000 documents in a file called dataset2:
|
101
101
|
|
102
|
-
flamethrower generate_dataset 10000
|
103
|
-
|
104
|
-
The dataset will always be written to a file named "dataset". If you want to generate multiple dataset files you will need to rename the first file before generating a second.
|
102
|
+
flamethrower generate_dataset 10000 "dataset2"
|
105
103
|
|
106
104
|
#### Load Dataset
|
107
105
|
|
@@ -111,6 +109,8 @@ The "load_dataset" command can be used much like the "fire" command only the dat
|
|
111
109
|
|
112
110
|
The command can be configured much like the "fire" command, but the first parameter accepted is not the number of documents to generate and insert but is instead the filename of the dataset. The parameters in order with their default values: (filename="dataset", starting_id=1, server_url="http://localhost:9200", index="twitter", type="tweet")
|
113
111
|
|
112
|
+
You do not have to use a dataset generated by this gem. You can create your own file. The file should contain the JSON documents you want to insert, separated by a \n character.
|
113
|
+
|
114
114
|
#### Help
|
115
115
|
|
116
116
|
The command with the argument "help" or without any arguments will display the help screen:
|
data/Rakefile
CHANGED
@@ -15,7 +15,7 @@ require 'jeweler'
|
|
15
15
|
Jeweler::Tasks.new do |gem|
|
16
16
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
17
|
gem.name = "rubberband_flamethrower"
|
18
|
-
gem.homepage = "http://github.com/
|
18
|
+
gem.homepage = "http://github.com/cloudspace/rubberband_flamethrower"
|
19
19
|
gem.license = "MIT"
|
20
20
|
gem.summary = %Q{Rapidly Insert Fake Data into Elastic Search}
|
21
21
|
gem.description = %Q{Use to quickly fill up some indicies in Elastic Search and to retrieve statistics about insertion rates}
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.3
|
@@ -42,10 +42,10 @@ module RubberbandFlamethrower
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
def self.generate_dataset(batch_size=500)
|
45
|
+
def self.generate_dataset(batch_size=500, filename="dataset", num_words=nil)
|
46
46
|
require File.dirname(__FILE__)+"/rubberband_flamethrower/data_generator.rb"
|
47
47
|
data = DataGenerator.new
|
48
|
-
data.generate_dataset(batch_size)
|
48
|
+
data.generate_dataset(batch_size, filename, num_words)
|
49
49
|
end
|
50
50
|
|
51
51
|
def self.load_dataset(filename="dataset", starting_id=1, server_url="http://localhost:9200", index="twitter", type="tweet")
|
@@ -42,6 +42,10 @@ module RubberbandFlamethrower
|
|
42
42
|
number_of_words = 6 + rand(10)
|
43
43
|
((number_of_words.times.map{word_list.sample}.join(" "))[0,139])+"."
|
44
44
|
end
|
45
|
+
|
46
|
+
def random_message(num_words)
|
47
|
+
num_words.times.map{word_list.sample}.join(" ")
|
48
|
+
end
|
45
49
|
|
46
50
|
# create a random value to be used as a username
|
47
51
|
# the return value is one random word, only letters and numbers allowed
|
@@ -59,14 +63,15 @@ module RubberbandFlamethrower
|
|
59
63
|
# generate a JSON object that contains a message, username, and post_date
|
60
64
|
# intended to be passed as insert data to an elastic search server
|
61
65
|
# @return [JSON]
|
62
|
-
def generate_random_insert_data
|
63
|
-
|
66
|
+
def generate_random_insert_data(num_words)
|
67
|
+
(num_words = 6 + rand(10)) if num_words.nil? || num_words.empty?
|
68
|
+
{message: "#{random_message(num_words.to_i)}", username: "#{random_username}", post_date: "#{current_timestamp}"}.to_json
|
64
69
|
end
|
65
70
|
|
66
|
-
def generate_dataset(batch_size)
|
67
|
-
File.open(
|
71
|
+
def generate_dataset(batch_size, filename, num_words=nil)
|
72
|
+
File.open(filename, 'w') do |file|
|
68
73
|
batch_size.to_i.times do |i|
|
69
|
-
file.write(generate_random_insert_data+"\n")
|
74
|
+
file.write(generate_random_insert_data(num_words)+"\n")
|
70
75
|
end
|
71
76
|
end
|
72
77
|
end
|
@@ -55,11 +55,13 @@ module RubberbandFlamethrower
|
|
55
55
|
id = starting_id.to_i
|
56
56
|
# loop through lines in the file and insert each line, each line is a document from the data generator
|
57
57
|
IO.foreach(filename) do |line|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
unless line.empty?
|
59
|
+
(puts insert_data) if printing_level == 2
|
60
|
+
response = HTTParty.put("#{server_url}/#{index}/#{type}/#{id}", body: line)
|
61
|
+
(puts response.body) if printing_level == 2
|
62
|
+
(print ".") if printing_level == 1
|
63
|
+
id = id + 1
|
64
|
+
end
|
63
65
|
end
|
64
66
|
end
|
65
67
|
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "rubberband_flamethrower"
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Orr"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-05-24"
|
13
13
|
s.description = "Use to quickly fill up some indicies in Elastic Search and to retrieve statistics about insertion rates"
|
14
14
|
s.email = "michael@cloudspace.com"
|
15
15
|
s.executables = ["flamethrower"]
|
@@ -43,10 +43,10 @@ Gem::Specification.new do |s|
|
|
43
43
|
"lib/rubberband_flamethrower/words/american-words.95",
|
44
44
|
"rubberband_flamethrower.gemspec"
|
45
45
|
]
|
46
|
-
s.homepage = "http://github.com/
|
46
|
+
s.homepage = "http://github.com/cloudspace/rubberband_flamethrower"
|
47
47
|
s.licenses = ["MIT"]
|
48
48
|
s.require_paths = ["lib"]
|
49
|
-
s.rubygems_version = "1.8.
|
49
|
+
s.rubygems_version = "1.8.24"
|
50
50
|
s.summary = "Rapidly Insert Fake Data into Elastic Search"
|
51
51
|
|
52
52
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubberband_flamethrower
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 0.10.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.10.2
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: activesupport
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 3.2.13
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.2.13
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rdoc
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '3.12'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.12'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: bundler
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 1.3.0
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.3.0
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: jeweler
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
@@ -65,7 +85,12 @@ dependencies:
|
|
65
85
|
version: 1.8.4
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.8.4
|
69
94
|
description: Use to quickly fill up some indicies in Elastic Search and to retrieve
|
70
95
|
statistics about insertion rates
|
71
96
|
email: michael@cloudspace.com
|
@@ -100,7 +125,7 @@ files:
|
|
100
125
|
- lib/rubberband_flamethrower/words/american-words.80
|
101
126
|
- lib/rubberband_flamethrower/words/american-words.95
|
102
127
|
- rubberband_flamethrower.gemspec
|
103
|
-
homepage: http://github.com/
|
128
|
+
homepage: http://github.com/cloudspace/rubberband_flamethrower
|
104
129
|
licenses:
|
105
130
|
- MIT
|
106
131
|
post_install_message:
|
@@ -115,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
140
|
version: '0'
|
116
141
|
segments:
|
117
142
|
- 0
|
118
|
-
hash:
|
143
|
+
hash: 1218046806156970718
|
119
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
145
|
none: false
|
121
146
|
requirements:
|
@@ -124,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
149
|
version: '0'
|
125
150
|
requirements: []
|
126
151
|
rubyforge_project:
|
127
|
-
rubygems_version: 1.8.
|
152
|
+
rubygems_version: 1.8.24
|
128
153
|
signing_key:
|
129
154
|
specification_version: 3
|
130
155
|
summary: Rapidly Insert Fake Data into Elastic Search
|