gemsitter 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.
@@ -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
+