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 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 an additional parameter to the command.
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/imightbeinatree/rubberband_flamethrower"
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
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
- {message: "#{random_tweet}", username: "#{random_username}", post_date: "#{current_timestamp}"}.to_json
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("dataset", 'w') do |file|
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
- (puts insert_data) if printing_level == 2
59
- response = HTTParty.put("#{server_url}/#{index}/#{type}/#{id}", body: line)
60
- (puts response.body) if printing_level == 2
61
- (print ".") if printing_level == 1
62
- id = id + 1
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.1"
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-04-18"
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/imightbeinatree/rubberband_flamethrower"
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.11"
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.1
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-04-18 00:00:00.000000000 Z
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: &12013880 !ruby/object:Gem::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: *12013880
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: &12026700 !ruby/object:Gem::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: *12026700
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: &12024060 !ruby/object:Gem::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: *12024060
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: &12021660 !ruby/object:Gem::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: *12021660
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: &12116420 !ruby/object:Gem::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: *12116420
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/imightbeinatree/rubberband_flamethrower
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: 1992718283200154027
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.11
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