bushido 0.0.17 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,36 @@
1
+ module Bushido
2
+ class EnvsController < ApplicationController
3
+ #GET /bushido/envs/:id
4
+ def show
5
+ @value = ENV[params[:id]]
6
+ respond_to do |format|
7
+ if @value.nil?
8
+ format.html{render :file => "#{Rails.root}/public/404.html", :status => :not_found}
9
+ format.json{render :status => :not_found}
10
+ else
11
+ format.html{render :text => @value}
12
+ format.json{render :json => {params[:id] => ENV[params[:id]]}}
13
+ end
14
+ end
15
+ end
16
+
17
+ #PUT /bushido/envs/:id
18
+ def update
19
+ return if ENV["BUSHIDO_KEY"] != params[:key]
20
+ ENV[params[:id]] = params[:v]
21
+ @value = ENV[params[:id]]
22
+
23
+ respond_to do |format|
24
+ if @value != ENV[params[:id]]
25
+ format.html{render :layout => false, :text => true, :status => :unprocessable_entity}
26
+ format.json{render :status => :unprocessable_entity}
27
+ else
28
+ puts "omg calling fire method from controller"
29
+ Bushido::Hooks.fire(params[:id], {params[:id] => ENV[params[:id]]})
30
+ format.html{render :text => true}
31
+ format.json{render :json => {params[:id] => ENV[params[:id]]}}
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
data/bushido.gemspec CHANGED
@@ -6,11 +6,11 @@ Gem::Specification.new do |s|
6
6
  s.name = "bushido"
7
7
  s.version = Bushido::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
- s.authors = ["Sean Grove"]
10
- s.email = ["s@bushi.do"]
9
+ s.authors = ["Sean Grove", "Kev Zettler"]
10
+ s.email = ["support@bushi.do","s@bushi.do"]
11
11
  s.homepage = "https://github.com/sgrove/bushidogem"
12
- s.summary = %q{Command-line interface for bushi.do}
13
- s.description = %q{A module for a Bushido app to manipulate everything about itself while running on Bushido, from deploying new apps, to claiming, restarting, updating existing apps, changing public domain, subdomains, etc.}
12
+ s.summary = %q{Bushido integration}
13
+ s.description = %q{A module for integrating the Bushido platform into a rails app}
14
14
 
15
15
  s.add_dependency "rest-client", ">=1.6.1"
16
16
  s.add_dependency "json", ">=1.4.6"
data/config/routes.rb ADDED
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,34 @@
1
+ module Bushido
2
+ class Hooks #:nodoc:
3
+
4
+ @@hooks = {}
5
+
6
+ class << self
7
+ def fire *hooks, data
8
+ unless @@hooks[:global].nil?
9
+ @@hooks[:global].call('global', data)
10
+ end
11
+
12
+ if hooks.length > 0
13
+ hooks.each do |h|
14
+ unless @@hooks[h].nil?
15
+ @@hooks[h].call(h, data)
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ def listen *hooks, &block
22
+ if hooks.empty? and block_given?
23
+ @@hooks[:global] = block
24
+ elsif !hooks.nil? and block_given?
25
+ hooks.each do |h|
26
+ @@hooks[h] = block
27
+ end
28
+ end
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,47 @@
1
+ require 'rack/utils'
2
+
3
+ module Bushido
4
+ class Middleware
5
+
6
+ # BUSHIDO_JS_URL = 'http://localhost:4567/javascripts/bushido.js'
7
+ BUSHIDO_JS_URL = 'http://bushi.do/api/bushido.js'
8
+
9
+ include Rack::Utils
10
+
11
+ def initialize(app, opts = {})
12
+ @app = app
13
+ @bushido_app_name = ENV['BUSHIDO_APP']
14
+ @bushido_metrics_token = ENV['BUSHIDO_METRICS_TOKEN']
15
+ @bushido_claimed = false
16
+ end
17
+
18
+ def call(env)
19
+ status, headers, response = @app.call(env)
20
+
21
+ content = ""
22
+ response.each { |part| content += part }
23
+
24
+ # "claiming" bar + stats ?
25
+ content.gsub!(/<\/body>/i, <<-STR
26
+ <script type="text/javascript">
27
+ var _bushido_app = '#{@bushido_app_name}';
28
+ var _bushido_claimed = #{@bushido_claimed.to_s};
29
+ var _bushido_metrics_token = '#{@bushido_metrics_token}';
30
+ (function() {
31
+ var bushido = document.createElement('script'); bushido.type = 'text/javascript'; bushido.async = true;
32
+ bushido.src = '#{BUSHIDO_JS_URL}?#{::Bushido::VERSION.gsub('.', '')}';
33
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(bushido, s);
34
+ })();
35
+ </script>
36
+ </body>
37
+ STR
38
+ )
39
+
40
+ headers['content-length'] = bytesize(content).to_s
41
+
42
+ [status, headers, [content]]
43
+ end
44
+
45
+ end
46
+ end
47
+
data/lib/bushido/user.rb CHANGED
@@ -3,7 +3,7 @@ module Bushido
3
3
  class User
4
4
  class << self
5
5
  def unity_url #:nodoc:
6
- "#{Bushido::Platform.host}/connect/v1"
6
+ "#{Bushido::Platform.host}/unity/v1"
7
7
  end
8
8
 
9
9
 
@@ -1,4 +1,4 @@
1
1
  module Bushido
2
2
  # Current version of the Bushido gem
3
- VERSION = "0.0.17"
3
+ VERSION = "0.0.20"
4
4
  end
data/lib/bushido.rb CHANGED
@@ -3,7 +3,8 @@ module Bushido #:nodoc:
3
3
  require 'rest-client'
4
4
  require 'json'
5
5
  require 'highline/import'
6
-
6
+
7
+ require 'engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
7
8
  require "bushido/platform"
8
9
  require "bushido/utils"
9
10
  require "bushido/command"
@@ -11,4 +12,6 @@ module Bushido #:nodoc:
11
12
  require "bushido/user"
12
13
  require "bushido/event"
13
14
  require "bushido/version"
15
+ require "bushido/hooks"
16
+ require "bushido/middleware"
14
17
  end
data/lib/engine.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'bushido'
2
+ require 'rails'
3
+ require 'rails/routes'
4
+
5
+ module Bushido
6
+ class Engine < Rails::Engine
7
+
8
+ initializer "bushido.add_middleware" do |app|
9
+ app.middleware.use Bushido::Middleware
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module ActionDispatch::Routing
2
+ class RouteSet #:nodoc:
3
+ Mapper.class_eval do
4
+ def bushido_routes
5
+ Rails.application.routes.draw do
6
+ namespace 'bushido' do
7
+ resources :envs, :only => [ :update, :show ]
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+
3
+ class DefaultRoutingTest < ActionController::TestCase
4
+ test 'set passed variable' do
5
+ assert_recognizes({:controller => 'bushido', :action => 'index'}, {:path => 'bushido', :method => :post})
6
+ end
7
+
8
+ test 'get passed variable' do
9
+ assert_recognizes({:controller => 'bushido', :action => 'index'}, {:path => 'bushido', :method => :get})
10
+ end
11
+
12
+ end
metadata CHANGED
@@ -2,15 +2,16 @@
2
2
  name: bushido
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.17
5
+ version: 0.0.20
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sean Grove
9
+ - Kev Zettler
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
13
 
13
- date: 2011-06-04 00:00:00 -07:00
14
+ date: 2011-06-11 00:00:00 -07:00
14
15
  default_executable:
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
@@ -46,8 +47,9 @@ dependencies:
46
47
  version: 1.6.1
47
48
  type: :runtime
48
49
  version_requirements: *id003
49
- description: A module for a Bushido app to manipulate everything about itself while running on Bushido, from deploying new apps, to claiming, restarting, updating existing apps, changing public domain, subdomains, etc.
50
+ description: A module for integrating the Bushido platform into a rails app
50
51
  email:
52
+ - support@bushi.do
51
53
  - s@bushi.do
52
54
  executables:
53
55
  - bushido
@@ -59,16 +61,23 @@ files:
59
61
  - .gitignore
60
62
  - Gemfile
61
63
  - Rakefile
64
+ - app/controllers/bushido/envs_controller.rb
62
65
  - bin/bushido
63
66
  - bushido.gemspec
67
+ - config/routes.rb
64
68
  - lib/bushido.rb
65
69
  - lib/bushido/app.rb
66
70
  - lib/bushido/command.rb
67
71
  - lib/bushido/event.rb
72
+ - lib/bushido/hooks.rb
73
+ - lib/bushido/middleware.rb
68
74
  - lib/bushido/platform.rb
69
75
  - lib/bushido/user.rb
70
76
  - lib/bushido/utils.rb
71
77
  - lib/bushido/version.rb
78
+ - lib/engine.rb
79
+ - lib/rails/routes.rb
80
+ - test/routes_test.rb
72
81
  - test/test_executable.rb
73
82
  has_rdoc: true
74
83
  homepage: https://github.com/sgrove/bushidogem
@@ -97,6 +106,7 @@ rubyforge_project: bushido
97
106
  rubygems_version: 1.6.2
98
107
  signing_key:
99
108
  specification_version: 3
100
- summary: Command-line interface for bushi.do
109
+ summary: Bushido integration
101
110
  test_files:
111
+ - test/routes_test.rb
102
112
  - test/test_executable.rb