influence 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  influence-*.gem
2
2
  Gemfile.lock
3
3
  .rvmrc
4
+ daemons.rb.pid
data/Gemfile CHANGED
@@ -4,4 +4,5 @@ gem 'rake'
4
4
  gem 'builder'
5
5
  gem 'sequel'
6
6
  gem 'daemons'
7
+ gem 'logger'
7
8
  gem 'awesome_print'
data/bin/influence CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require './lib/influence'
4
+ require 'daemons'
5
+
6
+ Daemons.run(File.join(File.dirname(__FILE__), 'influenced'))
5
7
 
6
- Influence::Server.launch
data/bin/influenced ADDED
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'influence'
3
+
4
+ Influence::Server.launch
5
+
data/bin/influencer CHANGED
@@ -4,17 +4,34 @@ require 'rubygems'
4
4
  require 'awesome_print'
5
5
  require 'socket'
6
6
  require 'json'
7
+ require 'influence/config'
7
8
 
8
- data = {
9
- :url => 'github.com',
10
- :action => :install,
11
- :big1 => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
12
- :big2 => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
13
- }
14
9
 
15
- server = TCPSocket.open( 'localhost', 4321 )
16
- server.puts( data.to_json )
17
- response = server.readline
18
- ap response
19
- response = JSON.parse(response)
20
- ap response
10
+ class Influencer
11
+ def initialize(host = Influence::DEFAULT_HOST, port = Influence::DEFAULT_PORT)
12
+ @host = host
13
+ @port = port
14
+
15
+ @data = {
16
+ :url => 'github.com',
17
+ :action => :install,
18
+ :big1 => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
19
+ :big2 => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
20
+ }
21
+
22
+ end
23
+
24
+ def connect
25
+ server = TCPSocket.open(@host, @port)
26
+ server.puts(@data.to_json)
27
+ response = server.readline
28
+ ap response
29
+ response = JSON.parse(response)
30
+ ap response
31
+ rescue Errno::ECONNREFUSED => err
32
+ puts "Could not connect to #{@host}:#{@port}. Check that the influence server is running with 'influence_server status'."
33
+ puts err
34
+ end
35
+ end
36
+
37
+ Influencer.new.connect
data/influence.gem CHANGED
@@ -1,7 +1,7 @@
1
1
  $DEBUG=true
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "influence"
4
- s.version = "0.0.1"
4
+ s.version = "0.0.2"
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.authors = ["Jim Freeze"]
7
7
  s.email = ["jimfreeze@gmail.com"]
@@ -0,0 +1,4 @@
1
+ module Influence
2
+ DEFAULT_PORT = 4321
3
+ DEFAULT_HOST = 'localhost'
4
+ end
@@ -1,10 +1,10 @@
1
1
  require 'gserver'
2
+ require 'logger'
2
3
 
3
4
  module Influence
4
-
5
5
  class Server < GServer
6
- DEFAULT_PORT = 4321
7
-
6
+ Log = Logger.new(File.join(File.dirname(__FILE__), "..", "..", "bin", 'influence.log'), 5, 1024000)
7
+
8
8
  def initialize(port=DEFAULT_PORT, *args)
9
9
  super
10
10
  end
@@ -23,11 +23,12 @@ module Influence
23
23
  private
24
24
 
25
25
  def starting
26
- puts " - Server starts up"
26
+ Log.info "Starting Influence Server (#{Process.pid})..."
27
27
  true
28
28
  end
29
+
29
30
  def connecting( tcp_socket )
30
- puts " - Before serve #{tcp_socket}"
31
+ Log.info " - Before serve #{tcp_socket}"
31
32
  # p tcp_socket.methods
32
33
  # puts tcp_socket.getsockname
33
34
  puts tcp_socket.peeraddr
@@ -36,11 +37,11 @@ module Influence
36
37
  true
37
38
  end
38
39
  def disconnecting( client_port )
39
- puts " - After serve #{client_port}"
40
+ Log.info " - After serve #{client_port}"
40
41
  true
41
42
  end
42
43
  def stopping
43
- puts " - Server shuts down"
44
+ puts "Influence Server shutting down (#{Process.pid})..."
44
45
  true
45
46
  end
46
47
  end#end Class
data/lib/influence.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  require 'awesome_print'
3
+ require 'influence/config'
3
4
  require 'influence/server'
4
5
  require 'influence/processor'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influence
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -18,6 +18,7 @@ email:
18
18
  - jimfreeze@gmail.com
19
19
  executables:
20
20
  - influence
21
+ - influenced
21
22
  - influencer
22
23
  extensions: []
23
24
  extra_rdoc_files: []
@@ -27,10 +28,12 @@ files:
27
28
  - README.rdoc
28
29
  - Rakefile
29
30
  - bin/influence
31
+ - bin/influenced
30
32
  - bin/influencer
31
33
  - db/migrations/001_create_messages.rb
32
34
  - influence.gem
33
35
  - lib/influence.rb
36
+ - lib/influence/config.rb
34
37
  - lib/influence/dsl.rb
35
38
  - lib/influence/processor.rb
36
39
  - lib/influence/server.rb