dynamicdudes-speaking-apps 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,10 +18,15 @@ or with Rails >= 2.1:
18
18
  == Configuration
19
19
 
20
20
  Just before you start sending messages to the http://speakingapps.com API you should configure a few essential things:
21
- SpeakingApps::Config.token = 'your_super_secret_token'
21
+ SpeakingApps.configure do |config|
22
+ config.token = 'your_super_secret_token'
23
+ end
22
24
 
23
25
  If you are on Rails you might want to define which environments should be used for remote logging:
24
- SpeakingApps::Config.environments = [ 'staging', 'production' ]
26
+ SpeakingApps.configure do |config|
27
+ config.token = 'your_super_secret_token'
28
+ config.environments = [ 'staging', 'production' ]
29
+ end
25
30
 
26
31
  == Usage
27
32
 
@@ -44,4 +49,4 @@ and a &block taking version for more readability if you have longer messages:
44
49
  * Supported by http://dynamicdudes.com
45
50
 
46
51
 
47
- Copyright (c) 2008 rubyphunk, speakingapps.com. See LICENSE for details.
52
+ Copyright (c) 2009 rubyphunk, speakingapps.com. See LICENSE for details.
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 3
2
+ :patch: 0
3
3
  :major: 1
4
- :minor: 1
4
+ :minor: 2
@@ -1,22 +1,42 @@
1
1
  require 'timeout'
2
- require File.dirname(__FILE__) + '/speaking_apps/config'
3
2
  require File.dirname(__FILE__) + '/speaking_apps/message_queue'
4
3
 
5
4
  # This is the place to read about the methods that
6
5
  # will help you sending Messages/Logs to the SpeakingApps API Service.
7
6
  #
8
- # Please make sure you set the required SpeakingApps::Config values.
7
+ # Please make sure you set the required SpeakingApps.configure values.
9
8
 
10
9
  module SpeakingApps
11
10
  class << self
12
-
13
- def init(environment = nil) #:nodoc:
11
+
12
+ attr_accessor :token, :environments, :host, :port
13
+ attr_accessor :environment
14
+
15
+ def init(environment = nil) # :nodoc:
16
+ @environment = environment
17
+ @host = 'speakingapps.com'
18
+ @port = 80
19
+ @environments = [ :production ]
20
+ end
21
+
22
+ # Configure SpeakingApps. Puts this in your initializers
23
+ #
24
+ # SpeakingApps.configure do |config|
25
+ # config.token = '_your_token_goes_here_'
26
+ # config.environments = [ :development, :production ] # Defaults to [ :production ]
27
+ # end
28
+ #
29
+ def configure # :yields: config
30
+ yield self
31
+
32
+ @environments = @environments.collect { |e| e.to_sym } if @environments
33
+
14
34
  unless class_variable_defined?(:@@_message_queue)
15
- @@_message_queue = SpeakingApps::MessageQueue.new(environment)
16
- ensure_existence_of_service_daemon# if @@_message_queue.environment_valid?
35
+ @@_message_queue = SpeakingApps::MessageQueue.new(@environment)
36
+ ensure_existence_of_service_daemon if @@_message_queue.environment_valid?
17
37
  end
18
38
  end
19
-
39
+
20
40
  # Send a Messages. You can optionally assign Tags.
21
41
  #
22
42
  # * <tt>SpeakingApps.log('hello World')</tt>
@@ -62,7 +82,7 @@ module SpeakingApps
62
82
  end
63
83
  end
64
84
 
65
- def send_to_app(message)
85
+ def send_to_app(message) #:nodoc:
66
86
  $stdout.puts message
67
87
  end
68
88
 
@@ -1,4 +1,5 @@
1
1
  Daemons.run_proc('speaking-apps', { :dir_mode => :normal, :dir => '/tmp', :multiple => false,:monitor => true}) do
2
2
  path = File.expand_path(File.join(File.dirname(__FILE__), 'queue_service.rb'))
3
- exec "/usr/bin/env ruby #{path} -p 28128 -- --debug"
3
+ debug = "-- --debug" if ARGV.delete('--debug')
4
+ exec "/usr/bin/env ruby #{path} -p 28128 #{debug}"
4
5
  end
@@ -36,6 +36,7 @@ module SpeakingApps
36
36
  def self.post_to_remote(uri, encoded_post_data)
37
37
  uri = URI.parse(uri)
38
38
 
39
+ debug "Opening connection to #{uri.host}:#{uri.port} / #{uri.path}"
39
40
  http = Net::HTTP.new(uri.host, uri.port)
40
41
  http.use_ssl = false
41
42
 
@@ -48,7 +49,7 @@ module SpeakingApps
48
49
 
49
50
  case api_response
50
51
  when Net::HTTPCreated
51
- debug "Send message: '#{encoded_post_data}' to #{uri.host}"
52
+ debug "Send message: '#{encoded_post_data}' to #{uri.host}:#{uri.port}"
52
53
  return API_RESPONSE_SUCCESS
53
54
  else
54
55
  log "SpeakingApps Error: #{ api_response.body if api_response.respond_to?(:body) }"
@@ -8,7 +8,7 @@ module SpeakingApps
8
8
  attr_accessor :environment
9
9
 
10
10
  def initialize(environment = nil)
11
- @environment = environment
11
+ @environment = environment.to_s if environment
12
12
  end
13
13
 
14
14
  def add(message, *attr)
@@ -17,9 +17,9 @@ module SpeakingApps
17
17
  :message => message,
18
18
  :tags => attr,
19
19
  :environment => @environment,
20
- :token => SpeakingApps::Config.token,
21
- :host => SpeakingApps::Config.host,
22
- :port => SpeakingApps::Config.port
20
+ :token => SpeakingApps.token,
21
+ :host => SpeakingApps.host,
22
+ :port => SpeakingApps.port.to_s
23
23
  })
24
24
  end
25
25
  end
@@ -37,7 +37,7 @@ module SpeakingApps
37
37
  end
38
38
 
39
39
  def store_in_remote_service_queue(message_with_options = {})
40
- # begin
40
+ begin
41
41
  Timeout::timeout(2) do
42
42
  hub_url = URI.parse('http://127.0.0.1:28128/messages')
43
43
  response = Net::HTTP.start(hub_url.host, hub_url.port) do |http|
@@ -45,13 +45,14 @@ module SpeakingApps
45
45
  end
46
46
  return response == Net::HTTPCreated
47
47
  end
48
- # rescue => error
49
- # return false
50
- # end
48
+ rescue => error
49
+ puts error
50
+ return false
51
+ end
51
52
  end
52
53
 
53
54
  def environment_valid? #:nodoc#
54
- @environment.nil? || ::SpeakingApps::Config.environments.include?(@environment)
55
+ @environment.nil? || ::SpeakingApps.environments.include?(@environment.to_sym)
55
56
  end
56
57
  end
57
58
  end
@@ -1 +1 @@
1
- SpeakingApps.init(RAILS_ENV)
1
+ SpeakingApps.init(RAILS_ENV)
@@ -1,13 +1,14 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
- require 'lib/speaking_apps/config'
2
+ require 'lib/speaking_apps'
3
3
  require 'lib/speaking_apps/message_queue'
4
4
 
5
5
  describe 'SpeakingApps::MessageQueue' do
6
6
  before(:each) do
7
- SpeakingApps::Config.stub!(:token).and_return(nil)
8
-
7
+ SpeakingApps.init
8
+ SpeakingApps.environments = [ :test ]
9
+ SpeakingApps.token = 'test'
9
10
  @message_queue = SpeakingApps::MessageQueue.new
10
- @message_queue.environment = 'test'
11
+ @message_queue.environment = :test
11
12
  @message_queue.stub!(:environment_valid?).and_return(true)
12
13
  end
13
14
 
@@ -47,6 +48,6 @@ describe 'SpeakingApps::MessageQueue' do
47
48
  end
48
49
 
49
50
  def message_hash(opts = {})
50
- { :environment=>"test", :host=>"speakingapps.com", :port=>"80", :tags=>[], :message=>"", :token=>nil }.merge(opts)
51
+ { :environment=> 'test', :host=>"speakingapps.com", :port=>"80", :tags=>[], :message=>"", :token=> 'test' }.merge(opts)
51
52
  end
52
53
  end
@@ -8,12 +8,12 @@ describe SpeakingApps do
8
8
  SpeakingApps.stub!(:message_queue).and_return(@mock_message_queue)
9
9
  end
10
10
 
11
- describe '#init' do
11
+ describe '#configure' do
12
12
  it 'should try to load the service daemon' do
13
13
  SpeakingApps.stub!(:class_variable_defined?).and_return(false)
14
14
  @mock_message_queue.stub!(:environment_valid?).and_return(true)
15
15
  SpeakingApps.should_receive(:ensure_existence_of_service_daemon)
16
- SpeakingApps.init
16
+ SpeakingApps.configure { |config| config.token = 'Test' }
17
17
  end
18
18
  end
19
19
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamicdudes-speaking-apps
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rubyphunk
@@ -33,6 +33,16 @@ dependencies:
33
33
  - !ruby/object:Gem::Version
34
34
  version: 1.1.3
35
35
  version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: sinatra
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 0.9.0.4
45
+ version:
36
46
  description: The official SpeakingApps Gem. Allows your Rails app (or every other Ruby project) to chat with the http://speakingapps.com logging service.
37
47
  email: treas@dynamicdudes.com
38
48
  executables:
@@ -42,7 +52,6 @@ extensions: []
42
52
  extra_rdoc_files: []
43
53
 
44
54
  files:
45
- - lib/speaking_apps/config.rb
46
55
  - lib/speaking_apps/daemon/control.rb
47
56
  - lib/speaking_apps/daemon/queue_service.rb
48
57
  - lib/speaking_apps/daemon/remote.rb
@@ -55,7 +64,6 @@ files:
55
64
  - VERSION.yml
56
65
  - spec/lib
57
66
  - spec/lib/speaking_apps
58
- - spec/lib/speaking_apps/config_spec.rb
59
67
  - spec/lib/speaking_apps/daemon
60
68
  - spec/lib/speaking_apps/daemon/queue_service_spec.rb
61
69
  - spec/lib/speaking_apps/daemon/remote_spec.rb
@@ -1,58 +0,0 @@
1
- module SpeakingApps
2
-
3
- # Use <b>SpeakingApps::Config</b> to setup your http://SpeakingApps.com API access.
4
- #
5
- # Please note: You must set the token in order to use the API.
6
- # Don't know your token? Login to your account on http://youraccount.speakingapps.com (or get a new one),
7
- # select your project and open 'Settings'.
8
- #
9
- # Place the configuration wherever you want. In a Rails app you would typically add these lines
10
- # under <tt>config/environment</tt> or <tt>config/initializers/</tt>.
11
-
12
- class Config
13
-
14
- # Configure which Project-Token to use.
15
- #
16
- # <tt>SpeakingApps::Config.token = 'your-api-token'</tt>
17
- def self.token=(new_token)
18
- @@_token = new_token
19
- end
20
-
21
- def self.token #:nodoc:
22
- class_variable_defined?(:@@_token) ? @@_token : nil
23
- end
24
-
25
- # Set the environment(s) in which SpeakingApps#log should be active. Defaults to: ['production']
26
- #
27
- # <tt>SpeakingApps::Config.environments = ['staging', 'production']</tt>
28
- def self.environments=(new_environments)
29
- @@_environments = new_environments
30
- end
31
-
32
- def self.environments #:nodoc:
33
- class_variable_defined?(:@@_environments) ? @@_environments : ['production']
34
- end
35
-
36
- def self.host=(new_host) #:nodoc:
37
- @@_host = new_host
38
- end
39
-
40
- def self.host #:nodoc:
41
- class_variable_defined?(:@@_host) ? @@_host : 'speakingapps.com'
42
- end
43
-
44
- def self.port=(new_port) #:nodoc:
45
- @@_port = new_port
46
- end
47
-
48
- def self.port #:nodoc:
49
- class_variable_defined?(:@@_host) ? @@_port : '80'
50
- end
51
-
52
- def self.clear! #:nodoc:
53
- class_variables.each do |v|
54
- remove_class_variable v.intern rescue true
55
- end
56
- end
57
- end
58
- end
@@ -1,22 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
- require 'lib/speaking_apps/config'
3
-
4
- describe SpeakingApps::Config do
5
- before(:each) do
6
- SpeakingApps::Config.clear!
7
- end
8
-
9
- it 'should allow setting the token' do
10
- SpeakingApps::Config.token = 'test'
11
- SpeakingApps::Config.token.should eql('test')
12
- end
13
-
14
- it 'should allow defining environments' do
15
- SpeakingApps::Config.environments = ['development', 'production']
16
- SpeakingApps::Config.environments.should eql(['development', 'production'])
17
- end
18
-
19
- it 'should use the default environment "production" if nothing was set' do
20
- SpeakingApps::Config.environments.should eql(['production'])
21
- end
22
- end