frazzle 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ .buildpath
2
+ .project
3
+ temp
4
+ pkg
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.3@frazzle --create
data/LICENCE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2011, All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are met:
5
+ * Redistributions of source code must retain the above copyright
6
+ notice, this list of conditions and the following disclaimer.
7
+ * Redistributions in binary form must reproduce the above copyright
8
+ notice, this list of conditions and the following disclaimer in the
9
+ documentation and/or other materials provided with the distribution.
10
+
11
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
12
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
13
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
14
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
15
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
17
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
18
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
19
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
20
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/Rakefile.rb ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ task :package => :build
5
+ task :clobber_package do
6
+ sh 'rm -rf pkg'
7
+ end
8
+
9
+ task :default => :package
data/example/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.3@frazzle_example --create
data/example/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gem 'frazzle'
@@ -0,0 +1,10 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ frazzle (0.1.0)
5
+
6
+ PLATFORMS
7
+ ruby
8
+
9
+ DEPENDENCIES
10
+ frazzle
@@ -0,0 +1,30 @@
1
+ gems = [ "pizza", "pizza-stone-oven", "pizza-electric-oven" ]
2
+
3
+ desc "Setup the example"
4
+ task :setup do
5
+ gems.each do |gem|
6
+ cd "#{gem}" do
7
+ sh("rake install")
8
+ end
9
+ end
10
+ end
11
+
12
+ desc "Teardown the example"
13
+ task :teardown do
14
+ gems.each do |gem|
15
+ cd "#{gem}" do
16
+ sh("rake uninstall")
17
+ end
18
+ end
19
+ end
20
+
21
+ desc "Run the example"
22
+ task :run => [:setup] do
23
+ sh("pizza")
24
+ Rake::Task["teardown"].invoke
25
+ end
26
+
27
+ desc "Run the example as test"
28
+ task :test => [:setup, :run, :teardown]
29
+
30
+ task :default => [:test]
@@ -0,0 +1,14 @@
1
+ require "rubygems/package_task"
2
+
3
+ spec = Gem::Specification.load("gemspec")
4
+ Gem::PackageTask.new(spec){ |pkg| }
5
+
6
+ desc "Install the gem"
7
+ task :install => [:gem] do
8
+ sh("gem install pkg/#{spec.name}-#{spec.version}.gem")
9
+ end
10
+
11
+ desc "Uninstall the gem"
12
+ task :uninstall => [:clobber_package] do
13
+ sh("gem uninstall #{spec.name}")
14
+ end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "pizza/run"
4
+
5
+ PizzaFactory.new().run()
@@ -0,0 +1,12 @@
1
+ spec = Gem::Specification.new do |s|
2
+ s.name = "pizza"
3
+ s.version = "0.1.0"
4
+ s.author = "Kevin russ"
5
+ s.email = "kevin.russ@esrlabs.com"
6
+ s.platform = Gem::Platform::RUBY
7
+ s.summary = "pizza example"
8
+ s.files = FileList["lib/**/*.rb"].to_a
9
+ s.require_path = "lib"
10
+ s.has_rdoc = false
11
+ s.executables = ["pizza"]
12
+ end
@@ -0,0 +1,19 @@
1
+ require "frazzle/frazzle"
2
+
3
+ class PizzaFactory
4
+
5
+ def initialize()
6
+ puts "This is the pizza factory"
7
+ @registry = Frazzle::Registry.new("pizza")
8
+ end
9
+
10
+ def run()
11
+ pizzas = [ "Margerita", "Fungi", "Scampi" ]
12
+ plugins = @registry.get_plugins("oven")
13
+ plugins.each do |plugin|
14
+ oven = @registry.load_plugin(plugin).create({ :pizza_type => pizzas.pop })
15
+ oven.make_pizza()
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,14 @@
1
+ require "rubygems/package_task"
2
+
3
+ spec = Gem::Specification.load("gemspec")
4
+ Gem::PackageTask.new(spec){ |pkg| }
5
+
6
+ desc "Install the gem"
7
+ task :install => [:gem] do
8
+ sh("gem install pkg/#{spec.name}-#{spec.version}.gem")
9
+ end
10
+
11
+ desc "Uninstall the gem"
12
+ task :uninstall => [:clobber_package] do
13
+ sh("gem uninstall #{spec.name}")
14
+ end
@@ -0,0 +1,11 @@
1
+ spec = Gem::Specification.new do |s|
2
+ s.name = "pizza-electric-oven"
3
+ s.version = "0.1.0"
4
+ s.author = "Kevin russ"
5
+ s.email = "kevin.russ@esrlabs.com"
6
+ s.platform = Gem::Platform::RUBY
7
+ s.summary = "pizza example"
8
+ s.files = FileList["lib/**/*.rb"].to_a
9
+ s.require_path = "lib"
10
+ s.has_rdoc = false
11
+ end
@@ -0,0 +1,21 @@
1
+
2
+ class PizzaElectricOven
3
+ def initialize(options)
4
+ @pizza_type = options[:pizza_type]
5
+ end
6
+ def make_pizza()
7
+ if @pizza_type != nil then
8
+ puts "The pizza-electric-oven is making a #{@pizza_type} pizza"
9
+ else
10
+ puts "The pizza-electric-oven is idle"
11
+ end
12
+ end
13
+ end
14
+
15
+ class PluginLoader
16
+ def create(options = nil)
17
+ return PizzaElectricOven.new(options)
18
+ end
19
+ end
20
+ PluginLoader.new()
21
+
@@ -0,0 +1,14 @@
1
+ require "rubygems/package_task"
2
+
3
+ spec = Gem::Specification.load("gemspec")
4
+ Gem::PackageTask.new(spec){ |pkg| }
5
+
6
+ desc "Install the gem"
7
+ task :install => [:gem] do
8
+ sh("gem install pkg/#{spec.name}-#{spec.version}.gem")
9
+ end
10
+
11
+ desc "Uninstall the gem"
12
+ task :uninstall => [:clobber_package] do
13
+ sh("gem uninstall #{spec.name}")
14
+ end
@@ -0,0 +1,11 @@
1
+ spec = Gem::Specification.new do |s|
2
+ s.name = "pizza-stone-oven"
3
+ s.version = "0.1.0"
4
+ s.author = "Kevin russ"
5
+ s.email = "kevin.russ@esrlabs.com"
6
+ s.platform = Gem::Platform::RUBY
7
+ s.summary = "pizza example"
8
+ s.files = FileList["lib/**/*.rb"].to_a
9
+ s.require_path = "lib"
10
+ s.has_rdoc = false
11
+ end
@@ -0,0 +1,21 @@
1
+
2
+ class PizzaStoneOven
3
+ def initialize(options)
4
+ @pizza_type = options[:pizza_type]
5
+ end
6
+ def make_pizza()
7
+ if @pizza_type != nil then
8
+ puts "The pizza-stone-oven is making a #{@pizza_type} pizza"
9
+ else
10
+ puts "The pizza-stone-oven is idle"
11
+ end
12
+ end
13
+ end
14
+
15
+ class PluginLoader
16
+ def create(options = nil)
17
+ return PizzaStoneOven.new(options)
18
+ end
19
+ end
20
+ PluginLoader.new()
21
+
data/frazzle.gemspec ADDED
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ gem_name = 'frazzle'
3
+ require File.expand_path("lib/#{gem_name}/version")
4
+
5
+ spec = Gem::Specification.new do |s|
6
+ s.name = gem_name
7
+ s.version = Frazzle::VERSION
8
+
9
+ s.description = 'plugin registry based on gems'
10
+ s.author = "Kevin russ"
11
+ s.email = "kevin.russ@esrlabs.com"
12
+ s.platform = Gem::Platform::RUBY
13
+ s.summary = "gem plugin-manager using extention-points"
14
+ s.files = `git ls-files`.split($\)
15
+ s.require_path = "lib"
16
+ s.has_rdoc = false
17
+ s.extra_rdoc_files = ["README"]
18
+ end
@@ -0,0 +1,3 @@
1
+ module Frazzle
2
+ VERSION = "0.1.2"
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frazzle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-12 00:00:00.000000000 Z
12
+ date: 2012-07-18 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: plugin registry based on gems
15
15
  email: kevin.russ@esrlabs.com
@@ -18,9 +18,29 @@ extensions: []
18
18
  extra_rdoc_files:
19
19
  - README
20
20
  files:
21
- - lib/frazzle/frazzle.rb
22
- - lib/frazzle/core/registry.rb
21
+ - .gitignore
22
+ - .rvmrc
23
+ - LICENCE
23
24
  - README
25
+ - Rakefile.rb
26
+ - example/.rvmrc
27
+ - example/Gemfile
28
+ - example/Gemfile.lock
29
+ - example/Rakefile.rb
30
+ - example/pizza-electric-oven/Rakefile.rb
31
+ - example/pizza-electric-oven/gemspec
32
+ - example/pizza-electric-oven/lib/pizza-electric-oven/plugin.rb
33
+ - example/pizza-stone-oven/Rakefile.rb
34
+ - example/pizza-stone-oven/gemspec
35
+ - example/pizza-stone-oven/lib/pizza-stone-oven/plugin.rb
36
+ - example/pizza/Rakefile.rb
37
+ - example/pizza/bin/pizza
38
+ - example/pizza/gemspec
39
+ - example/pizza/lib/pizza/run.rb
40
+ - frazzle.gemspec
41
+ - lib/frazzle/core/registry.rb
42
+ - lib/frazzle/frazzle.rb
43
+ - lib/frazzle/version.rb
24
44
  homepage:
25
45
  licenses: []
26
46
  post_install_message: