gembeat 0.0.1

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.
data/gembeat.gemspec ADDED
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'gembeat/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "gembeat"
8
+ gem.version = Gembeat::VERSION
9
+ gem.authors = ["Blake Mesdag"]
10
+ gem.email = ["blakemesdag@gmail.com"]
11
+ gem.description = "A gem for enabling you to publish your apps gems on deploy to a central server"
12
+ gem.summary = "Enables you to send a pulse to a gembeat server for tracking all your gems"
13
+ gem.homepage = "http://github.com/BlakeMesdag/gembeat"
14
+
15
+ gem.extra_rdoc_files = [
16
+ "README.md"
17
+ ]
18
+
19
+ gem.files = [
20
+ ".gitignore",
21
+ "LICENSE.txt",
22
+ "README.md",
23
+ "Rakefile",
24
+ "gembeat.gemspec",
25
+ "data/ca-certificates.crt",
26
+ "lib/gembeat.rb",
27
+ "lib/gembeat/version.rb"
28
+ ]
29
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
30
+ gem.require_paths = ["lib"]
31
+ end
data/lib/gembeat.rb ADDED
@@ -0,0 +1,65 @@
1
+ ##require "gembeat/version"
2
+ require 'net/http'
3
+ require 'uri'
4
+ require 'json'
5
+ require 'yaml'
6
+
7
+ module Gembeat
8
+ [:token, :use_ssl, :pulse_url].each do |name|
9
+ class_eval "
10
+ @@#{name} = nil unless defined? @@#{name}
11
+
12
+ def self.#{name}
13
+ @@#{name}
14
+ end
15
+
16
+ def self.#{name}=(value)
17
+ @@#{name} = value
18
+ end
19
+ "
20
+ end
21
+
22
+ def self.specs
23
+ @specs ||= Gem.loaded_specs
24
+ end
25
+
26
+ def self.dependencies_hash
27
+ @depencies_hash ||= self.specs.map do |name, spec|
28
+ {:name => name, :version => spec.version.to_s}
29
+ end
30
+ end
31
+
32
+ def self.application_hash
33
+ {
34
+ :application => {
35
+ :token => self.token, :dependencies => self.dependencies_hash
36
+ }
37
+ }
38
+ end
39
+
40
+ def self.gembeat_uri
41
+ @uri ||= URI.parse(self.pulse_url)
42
+ end
43
+
44
+ def self.ca_file
45
+ @cert ||= File.expand_path("../../data/ca-certificates.crt", __FILE__)
46
+ end
47
+
48
+ def self.ca_file=(value)
49
+ @cert = value
50
+ end
51
+
52
+ def self.send_pulse
53
+ http = Net::HTTP.new(self.gembeat_uri.host, self.gembeat_uri.port)
54
+ request = Net::HTTP::Post.new(self.gembeat_uri.request_uri, initheader = {'Content-Type' => "application/json"})
55
+ request.body = self.application_hash.to_json
56
+
57
+ if self.use_ssl
58
+ http.use_ssl = true
59
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
60
+ http.ca_file = http.ca_path = self.ca_file
61
+ end
62
+
63
+ response = http.request(request)
64
+ end
65
+ end
@@ -0,0 +1,3 @@
1
+ module Gembeat
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gembeat
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Blake Mesdag
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-15 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A gem for enabling you to publish your apps gems on deploy to a central
15
+ server
16
+ email:
17
+ - blakemesdag@gmail.com
18
+ executables: []
19
+ extensions: []
20
+ extra_rdoc_files:
21
+ - README.md
22
+ files:
23
+ - .gitignore
24
+ - LICENSE.txt
25
+ - README.md
26
+ - Rakefile
27
+ - gembeat.gemspec
28
+ - data/ca-certificates.crt
29
+ - lib/gembeat.rb
30
+ - lib/gembeat/version.rb
31
+ homepage: http://github.com/BlakeMesdag/gembeat
32
+ licenses: []
33
+ post_install_message:
34
+ rdoc_options: []
35
+ require_paths:
36
+ - lib
37
+ required_ruby_version: !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ requirements: []
50
+ rubyforge_project:
51
+ rubygems_version: 1.8.23
52
+ signing_key:
53
+ specification_version: 3
54
+ summary: Enables you to send a pulse to a gembeat server for tracking all your gems
55
+ test_files: []
56
+ has_rdoc: