nezu 0.4.13

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.
Files changed (64) hide show
  1. data/.document +5 -0
  2. data/.gitignore +13 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +77 -0
  5. data/README.md +14 -0
  6. data/Rakefile +53 -0
  7. data/VERSION +1 -0
  8. data/bin/nezu +8 -0
  9. data/lib/nezu/cli.rb +43 -0
  10. data/lib/nezu/generators/application/MANIFEST +16 -0
  11. data/lib/nezu/generators/application/USAGE +15 -0
  12. data/lib/nezu/generators/application/app_generator.rb +37 -0
  13. data/lib/nezu/generators/application/templates/.gitignore +15 -0
  14. data/lib/nezu/generators/application/templates/Gemfile +9 -0
  15. data/lib/nezu/generators/application/templates/README.md +0 -0
  16. data/lib/nezu/generators/application/templates/Rakefile +7 -0
  17. data/lib/nezu/generators/application/templates/app/consumers/$app_name.rb.tt +4 -0
  18. data/lib/nezu/generators/application/templates/app/consumers/.gitkeep +0 -0
  19. data/lib/nezu/generators/application/templates/app/models/.gitkeep +0 -0
  20. data/lib/nezu/generators/application/templates/app/producers/.gitkeep +0 -0
  21. data/lib/nezu/generators/application/templates/config/amqp.yml.tt +9 -0
  22. data/lib/nezu/generators/application/templates/config/boot.rb.tt +6 -0
  23. data/lib/nezu/generators/application/templates/config/database.yml.tt +9 -0
  24. data/lib/nezu/generators/application/templates/config/initializers/.gitkeep +0 -0
  25. data/lib/nezu/generators/application/templates/config/nezu.rb.tt +11 -0
  26. data/lib/nezu/generators/application/templates/db/.gitkeep +0 -0
  27. data/lib/nezu/generators/application/templates/log/.gitkeep +0 -0
  28. data/lib/nezu/generators/application/templates/spec/.gitkeep +0 -0
  29. data/lib/nezu/generators.rb +45 -0
  30. data/lib/nezu/runner.rb +87 -0
  31. data/lib/nezu/runtime/consumer.rb +35 -0
  32. data/lib/nezu/runtime/producer.rb +28 -0
  33. data/lib/nezu/runtime/recipient.rb +24 -0
  34. data/lib/nezu/runtime/worker.rb +24 -0
  35. data/lib/nezu.rb +34 -0
  36. data/nezu.gemspec +25 -0
  37. data/spec/functional/generators/app_generator_spec.rb +52 -0
  38. data/spec/functional/generators_spec.rb +36 -0
  39. data/spec/functional/nezu_spec.rb +11 -0
  40. data/spec/functional/runner_spec.rb +0 -0
  41. data/spec/functional/runtime/consumer_spec.rb +54 -0
  42. data/spec/functional/runtime/producer_spec.rb +24 -0
  43. data/spec/functional/runtime/recipient_spec.rb +15 -0
  44. data/spec/integration/user_script_spec.rb +6 -0
  45. data/spec/spec_helper.rb +32 -0
  46. data/spec/support/lib/nezu/generators/application/templates/test_file.tt +2 -0
  47. data/spec/support/lib/nezu/generators/application/templates/test_file_without_suffix +0 -0
  48. data/spec/support/sample_project/.gitignore +15 -0
  49. data/spec/support/sample_project/Gemfile +9 -0
  50. data/spec/support/sample_project/README.md +0 -0
  51. data/spec/support/sample_project/Rakefile +7 -0
  52. data/spec/support/sample_project/app/consumers/.gitkeep +0 -0
  53. data/spec/support/sample_project/app/consumers/sample_project.rb +4 -0
  54. data/spec/support/sample_project/app/models/.gitkeep +0 -0
  55. data/spec/support/sample_project/app/producers/.gitkeep +0 -0
  56. data/spec/support/sample_project/config/amqp.yml +9 -0
  57. data/spec/support/sample_project/config/boot.rb +6 -0
  58. data/spec/support/sample_project/config/database.yml +9 -0
  59. data/spec/support/sample_project/config/initializers/.gitkeep +0 -0
  60. data/spec/support/sample_project/config/nezu.rb +11 -0
  61. data/spec/support/sample_project/db/.gitkeep +0 -0
  62. data/spec/support/sample_project/spec/.gitkeep +0 -0
  63. data/spec/support/tmp/.gitkeep +0 -0
  64. metadata +252 -0
data/lib/nezu.rb ADDED
@@ -0,0 +1,34 @@
1
+ require 'bundler'
2
+ Bundler.setup
3
+
4
+ require 'yaml'
5
+ require 'active_support/core_ext'
6
+ require 'active_record'
7
+ require 'configatron'
8
+ module Nezu
9
+ configatron.gem_base_dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
10
+
11
+ def self.env
12
+ Env.new(ENV['NEZU_ENV']||'development')
13
+ end
14
+
15
+ class Env < String
16
+ def method_missing(meth, params=nil)
17
+ meth.to_s.sub(/\?$/, '') == self
18
+ end
19
+
20
+ def respond_to?(meth, params=nil)
21
+ !!meth.to_s.match(/\?$/)
22
+ end
23
+ end
24
+
25
+ class Error < Exception
26
+ def new(e,msg)
27
+ Nezu::LOGGER.error(e.to_s)
28
+ e.backtrace.each {|bt_line| Nezu::LOGGER.error(bt_line)}
29
+ end
30
+ end
31
+ end
32
+
33
+ require 'debugger' unless Nezu.env.production?
34
+
data/nezu.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ Gem::Specification.new do |s|
3
+ s.name = "nezu"
4
+ s.version = File.read(File.join(File.dirname(__FILE__), 'VERSION'))
5
+ s.authors = ["Sascha Teske"]
6
+ s.email = %q{sascha.teske@gmail.com}
7
+ s.homepage = %q{http://github.com/slaxor/nezu}
8
+ s.summary = %q{Skel generator and launcher for amqp consumers}
9
+ s.description = %q{Skel generator and launcher for amqp consumers.}
10
+
11
+ s.add_dependency 'amqp'
12
+ s.add_dependency 'bunny', '>= 0.9.0.pre6'
13
+ s.add_dependency 'activerecord', '~>3.2.11'
14
+ s.add_dependency 'activesupport', '~>3.2.11'
15
+ s.add_dependency 'configatron'
16
+ s.add_development_dependency 'rake'
17
+ s.add_development_dependency 'sdoc'
18
+ s.add_development_dependency 'rspec'
19
+ s.add_development_dependency 'debugger'
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+ require 'nezu/generators'
3
+ require 'nezu/generators/application/app_generator'
4
+
5
+ describe Nezu::Generators::Application::AppGenerator do
6
+ describe '#new' do
7
+ before do
8
+ @app = Nezu::Generators::Application::AppGenerator.new('/blah/foo')
9
+ end
10
+
11
+ it 'should have a destination_root' do
12
+ configatron.destination_root.should == '/blah/foo'
13
+ end
14
+
15
+ it 'should have an app_name' do
16
+ configatron.app_name.should == 'foo'
17
+ end
18
+
19
+ it 'should have a scope' do
20
+ configatron.name_space.should == Foo
21
+ Foo.class.should be_a(Module)
22
+ end
23
+ end
24
+
25
+ describe '#generate!' do
26
+ before do
27
+ @my_dest_root = "#{SPEC_TMP_DIR}/foo_#{rand(35**4).to_s(35)}"
28
+ @app = Nezu::Generators::Application::AppGenerator.new(@my_dest_root)
29
+ end
30
+
31
+ it 'should create the destination_root dir' do
32
+ @app.generate!
33
+ File.exist?(@my_dest_root).should be_true
34
+ end
35
+
36
+ it 'should create the amqp.yml' do
37
+ @app.generate!
38
+ File.exist?(File.join(@my_dest_root, 'config', 'amqp.yml')).should be_true
39
+ end
40
+
41
+ it 'should bail out if the destination_root already exists' do
42
+ @app.generate!
43
+ @app = Nezu::Generators::Application::AppGenerator.new(@my_dest_root)
44
+ lambda {@app.generate!}.should raise_error(Nezu::Generators::Application::AppGeneratorError, "\"#{@my_dest_root}\" already exists")
45
+ end
46
+
47
+ after do
48
+ FileUtils.rm_rf(@my_dest_root)
49
+ end
50
+ end
51
+ end
52
+
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+ require 'nezu/generators'
3
+ include Nezu::Generators
4
+
5
+ describe Nezu::Generators do
6
+ describe '#template_to' do
7
+ it 'should create a (parsed) copy in the app dir' do
8
+ template_to('test_file')
9
+ File.exists?(File.join(configatron.destination_root, '/test_file')).should be_true
10
+ end
11
+
12
+ it 'should parse .tt files using erb' do
13
+ template_to('test_file')
14
+ File.read(File.join(configatron.destination_root, '/test_file')).match(/Hi there/).should_not be_nil
15
+ end
16
+
17
+ after do
18
+ %x(rm -rf #{configatron.destination_root})
19
+ end
20
+ end
21
+
22
+ describe '#find_template' do
23
+ it 'should return nil if file could not be found in paths' do
24
+ find_template('non_existant_file').should be_nil
25
+ end
26
+
27
+ it 'should return the first found candidate in paths' do
28
+ find_template('test_file').should match('spec/support/lib/nezu/generators/application/templates/test_file.tt')
29
+ end
30
+
31
+ it 'should also return a candidate with no suffix' do
32
+ find_template('test_file_without_suffix').should match('spec/support/lib/nezu/generators/application/templates/test_file_without_suffix')
33
+ end
34
+ end
35
+ end
36
+
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+ describe Nezu do
3
+ describe '::env' do
4
+ it 'should be test' do
5
+ Nezu.env.should == 'test'
6
+ end
7
+
8
+ it {Nezu.env.should be_an_instance_of Nezu::Env}
9
+ it {Nezu.env.test?.should be_true}
10
+ end
11
+ end
File without changes
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+ require 'nezu/runtime/consumer'
3
+ describe Nezu::Runtime::Consumer do
4
+ describe '::descendants' do
5
+ it 'should return a list of heirs' do
6
+ class Consumer1 < Nezu::Runtime::Consumer;end
7
+ class Consumer2 < Nezu::Runtime::Consumer;end
8
+ Nezu::Runtime::Consumer.descendants.should =~ [Consumer2, Consumer1]
9
+ end
10
+ end
11
+
12
+ describe '#handle_message' do
13
+ before do
14
+ class Consumer1 < Nezu::Runtime::Consumer;end
15
+ Consumer1.any_instance.should_receive(:send).any_number_of_times.and_return({a: 'hash', with: 'no real_value'})
16
+ @consumer = Consumer1.new
17
+ end
18
+
19
+ it 'should honor "__reply_to"' do
20
+ reply_to = 'example_producer'
21
+ Nezu::Runtime::Recipient.should_receive(:new).with(reply_to)
22
+ @consumer.handle_message('{"meta": "not_used"}', %Q({"__action":"bar","__reply_to":"#{reply_to}"}))
23
+ end
24
+ end
25
+
26
+ describe '::queue_name' do
27
+ it 'should return its translated class name' do
28
+ module JustAModule;class Consumer1<Nezu::Runtime::Consumer;end;end
29
+ JustAModule::Consumer1.queue_name.should == 'just_a_module.consumer1'
30
+ end
31
+
32
+ it 'should use the queue_prefix if its set' do
33
+ configatron.amqp.queue_prefix = 'the_prefix'
34
+ module JustAModule;class ConsumerWithPrefix<Nezu::Runtime::Consumer;end;end
35
+ JustAModule::ConsumerWithPrefix.queue_name.should == 'the_prefix.just_a_module.consumer_with_prefix'
36
+ configatron.amqp.queue_prefix = nil
37
+ end
38
+
39
+ it 'should use the queue_postfix if its set' do
40
+ configatron.amqp.queue_postfix = 'the_postfix'
41
+ module JustAModule;class ConsumerWithPostfix<Nezu::Runtime::Consumer;end;end
42
+ JustAModule::ConsumerWithPostfix.queue_name.should == 'just_a_module.consumer_with_postfix.the_postfix'
43
+ configatron.amqp.queue_postfix = nil
44
+ end
45
+ end
46
+
47
+ describe '::queue_name=' do
48
+ it 'should use queue_name if it was set' do
49
+ module JustAModule;class ConsumerWithCustomQueue<Nezu::Runtime::Consumer;end;end
50
+ JustAModule::ConsumerWithCustomQueue.queue_name = 'abc.123'
51
+ JustAModule::ConsumerWithCustomQueue.queue_name.should == 'abc.123'
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'nezu/runtime/producer'
3
+ describe Nezu::Runtime::Producer do
4
+ before do
5
+ #Bunny.stub!(:new).and_return(AlwaysHappy.new)
6
+ end
7
+
8
+ describe '::push!' do
9
+ it 'should create a new message on the server' do
10
+ configatron.amqp.url = 'amqp://127.0.0.1'
11
+ Bunny.should_receive(:new).with(configatron.amqp.url).and_return(AlwaysHappy.new)
12
+ module ExampleProducers;class MyQueue<Nezu::Runtime::Producer;end;end
13
+ ExampleProducers::MyQueue.push!(:foo => 'bar')
14
+ end
15
+ end
16
+
17
+ describe '::queue_name' do
18
+ it 'should create a new message on the server' do
19
+ module ExampleProducers;class MyQueue<Nezu::Runtime::Producer;end;end
20
+ ExampleProducers::MyQueue.queue_name.should == 'example_producers.my_queue'
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+ require 'nezu/runtime/recipient'
3
+ describe Nezu::Runtime::Recipient do
4
+ describe '::new' do
5
+ it 'should return the producer class appropriate for the queue' do
6
+ class TestQueue < Nezu::Runtime::Producer;end
7
+ Nezu::Runtime::Recipient.new('test_queue').should == TestQueue
8
+ end
9
+
10
+ it 'should bail if the producer class doesn`t exist' do
11
+ lambda { Nezu::Runtime::Recipient.new('non_existant_test_queue') }.should raise_error(Nezu::Runtime::RecipientError)
12
+ end
13
+ end
14
+ end
15
+
@@ -0,0 +1,6 @@
1
+ describe 'User script' do
2
+ it 'should be executable' do
3
+ File.executable?(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'nezu')).should be_true
4
+ end
5
+ end
6
+
@@ -0,0 +1,32 @@
1
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
2
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'support', 'lib')))
3
+
4
+ ENV['NEZU_TEMPLATES'] = "#{Dir.pwd}/spec/support/lib/nezu/generators/application/templates"
5
+ ENV['NEZU_ENV'] = 'test'
6
+
7
+ SPEC_TMP_DIR = "#{Dir.pwd}/spec/support/tmp"
8
+
9
+ require 'nezu'
10
+ require 'amqp'
11
+ require "bunny"
12
+ require 'json'
13
+ require 'nezu/runner'
14
+ require 'nezu/runtime/worker'
15
+ require 'nezu/runtime/consumer'
16
+ require 'nezu/runtime/producer'
17
+ require 'nezu/generators'
18
+ require 'debugger'
19
+ require 'rspec'
20
+ require 'rspec/autorun'
21
+
22
+ # a stupid class that eats everything, for stubbing
23
+ class AlwaysHappy
24
+ def self.method_missing(m,*p)
25
+ self.new
26
+ end
27
+
28
+ def method_missing(m,*p)
29
+ self.class.new
30
+ end
31
+ end
32
+
@@ -0,0 +1,2 @@
1
+ <%= ['H', 'i', ' ', 't', 'h', 'e', 'r', 'e' ].join('') %>
2
+
@@ -0,0 +1,15 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore_global
6
+
7
+ # Ignore bundler config
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+
13
+ # Ignore all logfiles and tempfiles.
14
+ /log/*.log
15
+ /tmp
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+ gem 'activerecord'
3
+ gem 'nezu', :git => 'ssh://git@svn.talkyoo.net/nezu.git'
4
+
5
+ group :development, :test do
6
+ gem 'debugger'
7
+ gem 'rspec'
8
+ end
9
+
File without changes
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env rake
2
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
3
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4
+
5
+ require File.expand_path('../config/application', __FILE__)
6
+
7
+ <%= app_const %>.load_tasks
@@ -0,0 +1,4 @@
1
+ class SampleProject < Nezu::Runtime::Consumer
2
+ #your app code here
3
+ end
4
+
File without changes
@@ -0,0 +1,9 @@
1
+ development:
2
+ url: amqp://127.0.0.1
3
+ queue_prefix: talkyoo
4
+ queue_postfix: dev
5
+ production:
6
+ url: amqp://127.0.0.1
7
+ queue_prefix: talkyoo
8
+ queue_postfix: dev
9
+
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+
3
+ # Set up gems listed in the Gemfile.
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5
+
6
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
@@ -0,0 +1,9 @@
1
+ development: &dev
2
+ adapter: sqlite
3
+ encoding: utf8
4
+ database: sample_project_development
5
+
6
+ production:
7
+ <<: *dev
8
+ database: sample_project_production
9
+
@@ -0,0 +1,11 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+ if defined?(Bundler)
3
+ Bundler.require(:default, Nezu.env)
4
+ end
5
+
6
+ Dir.glob("**/*.rb").each do |f|
7
+ require f
8
+ end
9
+
10
+ LOGGER = Logger.new('log/SampleProject.log')
11
+
File without changes
File without changes
File without changes
metadata ADDED
@@ -0,0 +1,252 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nezu
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.13
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Sascha Teske
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: amqp
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: bunny
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.9.0.pre6
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.9.0.pre6
46
+ - !ruby/object:Gem::Dependency
47
+ name: activerecord
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 3.2.11
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 3.2.11
62
+ - !ruby/object:Gem::Dependency
63
+ name: activesupport
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 3.2.11
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 3.2.11
78
+ - !ruby/object:Gem::Dependency
79
+ name: configatron
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rake
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: sdoc
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: debugger
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ description: Skel generator and launcher for amqp consumers.
159
+ email: sascha.teske@gmail.com
160
+ executables:
161
+ - nezu
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - .document
166
+ - .gitignore
167
+ - Gemfile
168
+ - Gemfile.lock
169
+ - README.md
170
+ - Rakefile
171
+ - VERSION
172
+ - bin/nezu
173
+ - lib/nezu.rb
174
+ - lib/nezu/cli.rb
175
+ - lib/nezu/generators.rb
176
+ - lib/nezu/generators/application/MANIFEST
177
+ - lib/nezu/generators/application/USAGE
178
+ - lib/nezu/generators/application/app_generator.rb
179
+ - lib/nezu/generators/application/templates/.gitignore
180
+ - lib/nezu/generators/application/templates/Gemfile
181
+ - lib/nezu/generators/application/templates/README.md
182
+ - lib/nezu/generators/application/templates/Rakefile
183
+ - lib/nezu/generators/application/templates/app/consumers/$app_name.rb.tt
184
+ - lib/nezu/generators/application/templates/app/consumers/.gitkeep
185
+ - lib/nezu/generators/application/templates/app/models/.gitkeep
186
+ - lib/nezu/generators/application/templates/app/producers/.gitkeep
187
+ - lib/nezu/generators/application/templates/config/amqp.yml.tt
188
+ - lib/nezu/generators/application/templates/config/boot.rb.tt
189
+ - lib/nezu/generators/application/templates/config/database.yml.tt
190
+ - lib/nezu/generators/application/templates/config/initializers/.gitkeep
191
+ - lib/nezu/generators/application/templates/config/nezu.rb.tt
192
+ - lib/nezu/generators/application/templates/db/.gitkeep
193
+ - lib/nezu/generators/application/templates/log/.gitkeep
194
+ - lib/nezu/generators/application/templates/spec/.gitkeep
195
+ - lib/nezu/runner.rb
196
+ - lib/nezu/runtime/consumer.rb
197
+ - lib/nezu/runtime/producer.rb
198
+ - lib/nezu/runtime/recipient.rb
199
+ - lib/nezu/runtime/worker.rb
200
+ - nezu.gemspec
201
+ - spec/functional/generators/app_generator_spec.rb
202
+ - spec/functional/generators_spec.rb
203
+ - spec/functional/nezu_spec.rb
204
+ - spec/functional/runner_spec.rb
205
+ - spec/functional/runtime/consumer_spec.rb
206
+ - spec/functional/runtime/producer_spec.rb
207
+ - spec/functional/runtime/recipient_spec.rb
208
+ - spec/integration/user_script_spec.rb
209
+ - spec/spec_helper.rb
210
+ - spec/support/lib/nezu/generators/application/templates/test_file.tt
211
+ - spec/support/lib/nezu/generators/application/templates/test_file_without_suffix
212
+ - spec/support/sample_project/.gitignore
213
+ - spec/support/sample_project/Gemfile
214
+ - spec/support/sample_project/README.md
215
+ - spec/support/sample_project/Rakefile
216
+ - spec/support/sample_project/app/consumers/.gitkeep
217
+ - spec/support/sample_project/app/consumers/sample_project.rb
218
+ - spec/support/sample_project/app/models/.gitkeep
219
+ - spec/support/sample_project/app/producers/.gitkeep
220
+ - spec/support/sample_project/config/amqp.yml
221
+ - spec/support/sample_project/config/boot.rb
222
+ - spec/support/sample_project/config/database.yml
223
+ - spec/support/sample_project/config/initializers/.gitkeep
224
+ - spec/support/sample_project/config/nezu.rb
225
+ - spec/support/sample_project/db/.gitkeep
226
+ - spec/support/sample_project/spec/.gitkeep
227
+ - spec/support/tmp/.gitkeep
228
+ homepage: http://github.com/slaxor/nezu
229
+ licenses: []
230
+ post_install_message:
231
+ rdoc_options: []
232
+ require_paths:
233
+ - lib
234
+ required_ruby_version: !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - ! '>='
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ required_rubygems_version: !ruby/object:Gem::Requirement
241
+ none: false
242
+ requirements:
243
+ - - ! '>='
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
246
+ requirements: []
247
+ rubyforge_project:
248
+ rubygems_version: 1.8.23
249
+ signing_key:
250
+ specification_version: 3
251
+ summary: Skel generator and launcher for amqp consumers
252
+ test_files: []