rubberband_flamethrower 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.4.0
@@ -12,6 +12,8 @@ command = args.shift.strip rescue 'help'
12
12
  case command
13
13
  when "fire"
14
14
  RubberbandFlamethrower.fire(*args)
15
+ when "auto"
16
+ RubberbandFlamethrower.auto(*args)
15
17
  else
16
18
  RubberbandFlamethrower.help
17
19
  end
@@ -7,12 +7,28 @@ module RubberbandFlamethrower
7
7
  require File.dirname(__FILE__)+"/rubberband_flamethrower/flamethrower.rb"
8
8
  flamethrower = Flamethrower.new
9
9
  time = Benchmark.measure do
10
- flamethrower.fire(how_many, starting_id, server_url, index, type)
10
+ flamethrower.fire(how_many, starting_id, server_url, index, type, 1)
11
11
  end
12
+ puts "\nFinished Inserting #{how_many} documents into Elastic Search."
12
13
  puts " user system total real"
13
14
  puts time
14
15
  end
15
16
 
17
+ def self.auto(how_many_batches=3, per_batch=5000, starting_id=1, server_url="http://localhost:9200", index="twitter", type="tweet")
18
+ require "active_support/core_ext"
19
+ require 'httparty'
20
+ require "benchmark"
21
+ require File.dirname(__FILE__)+"/rubberband_flamethrower/data_generator.rb"
22
+ require File.dirname(__FILE__)+"/rubberband_flamethrower/flamethrower.rb"
23
+ flamethrower = Flamethrower.new
24
+ Benchmark.bm(8) do |x|
25
+ how_many_batches.to_i.times do |i|
26
+ x.report("set #{i+1}:") { flamethrower.fire(per_batch, starting_id, server_url, index, type) }
27
+ starting_id = starting_id.to_i + per_batch.to_i
28
+ end
29
+ end
30
+ end
31
+
16
32
  def self.help
17
33
  puts "Flamethrower Commands Available:\n\nflamethrower #display this help message\nflamethrower fire #sends a batch to the elastic search server"
18
34
  end
@@ -1,9 +1,10 @@
1
1
  # This class is designed to insert objects created with the DataGenerator class into Elastic Search
2
2
  module RubberbandFlamethrower
3
3
  class Flamethrower
4
- def fire(how_many, starting_id, server_url, index, type)
4
+ def fire(how_many, starting_id, server_url, index, type, printing_level=0)
5
5
 
6
- $stdout.sync = true
6
+
7
+ ($stdout.sync = true) if printing_level == 1
7
8
 
8
9
  # a unique ID must be provided for each document stored in Elastic Search
9
10
  id = starting_id.to_i
@@ -15,17 +16,16 @@ module RubberbandFlamethrower
15
16
 
16
17
  # generate a piece of random data to insert that approxiamates a tweet
17
18
  insert_data = data.generate_random_insert_data
18
- #puts insert_data
19
+ (puts insert_data) if printing_level == 2
19
20
 
20
21
  # insert the random data into local elastic search index "twitter" as type "tweet" with set id
21
22
  response = HTTParty.put("#{server_url}/#{index}/#{type}/#{id}", body: insert_data)
22
- #puts response.body
23
- print "."
23
+ (puts response.body) if printing_level == 2
24
+ (print ".") if printing_level == 1
24
25
 
25
26
  #increment the insert id
26
27
  id = id + 1
27
28
  end
28
- puts "\n\nFinished Inserting #{how_many} documents into Elastic Search."
29
29
  end
30
30
 
31
31
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "rubberband_flamethrower"
8
- s.version = "0.3.1"
8
+ s.version = "0.4.0"
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-08"
12
+ s.date = "2013-04-09"
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"]
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.3.1
4
+ version: 0.4.0
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-08 00:00:00.000000000 Z
12
+ date: 2013-04-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &13986480 !ruby/object:Gem::Requirement
16
+ requirement: &17477820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.10.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *13986480
24
+ version_requirements: *17477820
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &13985980 !ruby/object:Gem::Requirement
27
+ requirement: &17477280 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.2.13
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *13985980
35
+ version_requirements: *17477280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rdoc
38
- requirement: &13985500 !ruby/object:Gem::Requirement
38
+ requirement: &17476800 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.12'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *13985500
46
+ version_requirements: *17476800
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &13985000 !ruby/object:Gem::Requirement
49
+ requirement: &17476280 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.3.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *13985000
57
+ version_requirements: *17476280
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &13984520 !ruby/object:Gem::Requirement
60
+ requirement: &17475800 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 1.8.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *13984520
68
+ version_requirements: *17475800
69
69
  description: Use to quickly fill up some indicies in Elastic Search and to retrieve
70
70
  statistics about insertion rates
71
71
  email: michael@cloudspace.com
@@ -117,7 +117,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
117
  version: '0'
118
118
  segments:
119
119
  - 0
120
- hash: -629124849433174154
120
+ hash: 3868063792966642724
121
121
  required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  none: false
123
123
  requirements: