gemsitter 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in gemsitter.gemspec
4
+ gemspec
@@ -0,0 +1,4 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "gemsitter/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "gemsitter"
7
+ s.version = Gemsitter::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Thomas Czernik"]
10
+ s.email = ["thomas.czernik@webreload.de"]
11
+ s.homepage = "https://github.com/mindbreaker/gemsitter"
12
+ s.summary = %q{Check your installed gem versions and remind you if there are a newer version}
13
+ s.description = %q{Check if there are newer versions for your used gems are available and puts out a notification}
14
+
15
+ s.rubyforge_project = "gemsitter"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+ end
@@ -0,0 +1,89 @@
1
+ module Gemsitter
2
+ autoload :VersionCheck, 'gemsitter/versioncheck'
3
+ autoload :GemLockfileParser, 'gemsitter/myparser'
4
+ autoload :SemanticVersion, 'gemsitter/semanticversion'
5
+
6
+
7
+ class << self
8
+ def run(interval=:week, level=:minor)
9
+ base = Base.new(interval, level)
10
+ base.load
11
+ end
12
+ end
13
+
14
+ class Base
15
+
16
+ require "yaml"
17
+
18
+ def initialize(interval, level=:minor)
19
+ @interval = interval
20
+ @level = level
21
+ @logger = Logger.new(STDOUT)
22
+ end
23
+
24
+
25
+
26
+ def load
27
+ parser = GemLockfileParser.new
28
+ logger("Fetching Gems from Gemfile.lock")
29
+ @gems = parser.get_gems
30
+ logger("#{@gems.size} loaded")
31
+ logger("Checking the newest Version")
32
+
33
+ actual_version
34
+
35
+ check_versions
36
+ end
37
+
38
+ def actual_version
39
+ version = VersionCheck.new
40
+
41
+ # Test if its time to update from Rubygems
42
+ if version.time_to_update? @interval
43
+
44
+ @gems.each do |gem|
45
+ newest_version = version.check_version(gem[:name])
46
+ gem[:newest_version] = newest_version if newest_version
47
+ end
48
+
49
+ File.open("tmp/gs.yml","w") do |f|
50
+ f.write @gems.to_yaml
51
+ end
52
+ else
53
+ @gems = YAML::load_file("tmp/gs.yml")
54
+ end
55
+ end
56
+
57
+ def check_versions
58
+ updates = SemanticVersion.new
59
+ @gems.each do |gem|
60
+ unless gem[:newest_version]
61
+ logger("Rubygem-Source of #{gem[:name]} not found")
62
+ else
63
+ unless updates.compare(gem[:version],gem[:newest_version])
64
+ logger("#{updates.what_changed?} of #{gem[:name]}: #{gem[:newest_version]} / Your Version: #{gem[:version]}")
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+
71
+ def logger(text)
72
+ @logger.warn(text)
73
+ end
74
+ end
75
+
76
+
77
+ class Railtie < Rails::Railtie
78
+
79
+ rake_tasks do
80
+ desc 'Check used Gems for an update'
81
+ task :gemsitter do
82
+ Gemsitter.run
83
+ end
84
+ end
85
+ end
86
+
87
+
88
+
89
+ end
@@ -0,0 +1,3 @@
1
+ module Gemsitter
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gemsitter
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Thomas Czernik
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-05-05 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Check if there are newer versions for your used gems are available and puts out a notification
22
+ email:
23
+ - thomas.czernik@webreload.de
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - .gitignore
32
+ - Gemfile
33
+ - Rakefile
34
+ - gemsitter.gemspec
35
+ - lib/gemsitter.rb
36
+ - lib/gemsitter/version.rb
37
+ has_rdoc: true
38
+ homepage: https://github.com/mindbreaker/gemsitter
39
+ licenses: []
40
+
41
+ post_install_message:
42
+ rdoc_options: []
43
+
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ segments:
52
+ - 0
53
+ version: "0"
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ requirements: []
63
+
64
+ rubyforge_project: gemsitter
65
+ rubygems_version: 1.3.7
66
+ signing_key:
67
+ specification_version: 3
68
+ summary: Check your installed gem versions and remind you if there are a newer version
69
+ test_files: []
70
+