reloader_gem 0.1.2 → 0.2.2
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/README.md +7 -3
- data/lib/reloader_gem.rb +33 -10
- data/lib/reloader_gem/version.rb +1 -1
- data/reloader_gem.gemspec +1 -1
- data/spec/reloader_gem_spec.rb +52 -0
- data/spec/reloader_gem_spec/lib/reloader_gem_spec.rb +7 -0
- data/spec/reloader_gem_spec/lib/reloader_gem_spec/load_file.rb +5 -0
- data/spec/reloader_gem_spec/lib/reloader_gem_spec/version.rb +3 -0
- data/spec/reloader_gem_spec/reloader_gem_spec.gemspec +17 -0
- metadata +13 -3
data/README.md
CHANGED
@@ -22,12 +22,16 @@ Or install it yourself as:
|
|
22
22
|
|
23
23
|
Reload gem name_of_gem
|
24
24
|
|
25
|
-
ReloaderGem.new(name_of_gem)
|
25
|
+
ReloaderGem.new(name_of_gem).listen
|
26
26
|
|
27
27
|
If you know full path into gem
|
28
28
|
|
29
|
-
ReloaderGem.new(path_of_gem)
|
29
|
+
ReloaderGem.new(path_of_gem).listen
|
30
30
|
|
31
31
|
Setting the frequency of checking Gemu (in seconds)
|
32
32
|
|
33
|
-
ReloaderGem.new(name_of_gem, 0.5)
|
33
|
+
ReloaderGem.new(name_of_gem, 0.5).listen
|
34
|
+
|
35
|
+
Load the files defined in gem but not 'require'
|
36
|
+
|
37
|
+
ReloaderGem.new(path_of_gem, 0.1).load("lib/reloader_gem_spec/*.rb").listen
|
data/lib/reloader_gem.rb
CHANGED
@@ -19,37 +19,60 @@ class ReloaderGem
|
|
19
19
|
|
20
20
|
@check_sum = md5_gem
|
21
21
|
@time = time
|
22
|
-
|
22
|
+
@load_files =[]
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
# listen the gem
|
26
|
+
def listen
|
27
|
+
load_files
|
28
28
|
Thread.new do
|
29
29
|
while true
|
30
30
|
sleep @time
|
31
|
-
|
32
|
-
require_gem if change_check_sum?
|
33
|
-
rescue
|
34
|
-
@logger.info "----- not updated gem #{@gem_name} -----"
|
35
|
-
end
|
31
|
+
update_files
|
36
32
|
end
|
37
33
|
end
|
38
34
|
end
|
39
35
|
|
36
|
+
# load all files from gem which match into variable regexp
|
37
|
+
def load(regexp)
|
38
|
+
@load_files += Dir[File.join(@gem_path, regexp)]
|
39
|
+
self
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
# if the gem is changed, require gem and load files?
|
45
|
+
def update_files
|
46
|
+
return unless changed_gem?
|
47
|
+
require_gem
|
48
|
+
load_files
|
49
|
+
rescue
|
50
|
+
@logger.info "----- not updated gem #{@gem_name} -----"
|
51
|
+
end
|
52
|
+
|
53
|
+
# remove old version of gem and require a new version this gem
|
40
54
|
def require_gem
|
41
55
|
$".delete_if{|item| item.include?(@gem_name)}
|
42
56
|
require File.join(@gem_path, "lib", @gem_name)
|
43
57
|
@logger.info "----- updated gem #{@gem_name} -----"
|
44
58
|
end
|
45
59
|
|
46
|
-
|
60
|
+
# load all files defined in variable @load_files
|
61
|
+
def load_files
|
62
|
+
@load_files.each do |path|
|
63
|
+
Kernel::load path
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# is new version of gem?
|
68
|
+
def changed_gem?
|
47
69
|
check_sum = md5_gem
|
48
70
|
return false if check_sum == @check_sum
|
49
71
|
@check_sum = check_sum
|
50
72
|
true
|
51
73
|
end
|
52
74
|
|
75
|
+
# count check sum for declared the gem
|
53
76
|
def md5_gem
|
54
77
|
result = ""
|
55
78
|
Dir["#{@gem_path}/**/*.rb"].each do |path|
|
data/lib/reloader_gem/version.rb
CHANGED
data/reloader_gem.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.email = ["raglub.ruby@gmail.com"]
|
7
7
|
gem.description = %q{Reload gem when we change content of gem}
|
8
8
|
gem.summary = %q{Reload gem when we change content of gem}
|
9
|
-
gem.date = "2012-
|
9
|
+
gem.date = "2012-09-17"
|
10
10
|
gem.homepage = "https://github.com/raglub/reloader_gem"
|
11
11
|
|
12
12
|
gem.files = `git ls-files`.split($\)
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'reloader_gem'
|
4
|
+
|
5
|
+
def set_method(value = "0.0.3")
|
6
|
+
file_path = File.expand_path("../reloader_gem_spec/lib/reloader_gem_spec/load_file.rb", __FILE__)
|
7
|
+
context = <<EOF
|
8
|
+
module ReloaderGemSpec
|
9
|
+
def self.test
|
10
|
+
"#{value}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
EOF
|
14
|
+
File.write(file_path, context)
|
15
|
+
end
|
16
|
+
|
17
|
+
def set_version(version = "0.0.1")
|
18
|
+
file_path = File.expand_path("../reloader_gem_spec/lib/reloader_gem_spec/version.rb", __FILE__)
|
19
|
+
context = <<EOF
|
20
|
+
module ReloaderGemSpec
|
21
|
+
VERSION = "#{version}"
|
22
|
+
end
|
23
|
+
EOF
|
24
|
+
File.write(file_path, context)
|
25
|
+
end
|
26
|
+
|
27
|
+
set_version
|
28
|
+
set_method
|
29
|
+
|
30
|
+
require_relative 'reloader_gem_spec/lib/reloader_gem_spec.rb'
|
31
|
+
|
32
|
+
describe ReloaderGem do
|
33
|
+
before(:all) do
|
34
|
+
gem_path = File.expand_path("../reloader_gem_spec", __FILE__)
|
35
|
+
ReloaderGem.new(gem_path, 0.1).load("lib/reloader_gem_spec/load_file.rb").listen
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should properly require gem reloader_gem_spec" do
|
39
|
+
ReloaderGemSpec::VERSION.should eql("0.0.1")
|
40
|
+
set_version("0.0.2")
|
41
|
+
sleep(0.5)
|
42
|
+
ReloaderGemSpec::VERSION.should eql("0.0.2")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should properly load files from gem" do
|
46
|
+
ReloaderGemSpec::test.should eql("0.0.3")
|
47
|
+
set_method("0.0.4")
|
48
|
+
sleep(0.5)
|
49
|
+
ReloaderGemSpec.test.should eql("0.0.4")
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'reloader_gem_spec/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "reloader_gem_spec"
|
8
|
+
gem.version = ReloaderGemSpec::VERSION
|
9
|
+
gem.authors = ["michal szyma"]
|
10
|
+
gem.email = ["raglub.ruby@gmail.com"]
|
11
|
+
gem.description = %q{Internal gem only for testing}
|
12
|
+
gem.summary = %q{Internal gem only for testing}
|
13
|
+
gem.homepage = ""
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.require_paths = ["lib"]
|
17
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reloader_gem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: logger
|
@@ -42,6 +42,11 @@ files:
|
|
42
42
|
- lib/reloader_gem.rb
|
43
43
|
- lib/reloader_gem/version.rb
|
44
44
|
- reloader_gem.gemspec
|
45
|
+
- spec/reloader_gem_spec.rb
|
46
|
+
- spec/reloader_gem_spec/lib/reloader_gem_spec.rb
|
47
|
+
- spec/reloader_gem_spec/lib/reloader_gem_spec/load_file.rb
|
48
|
+
- spec/reloader_gem_spec/lib/reloader_gem_spec/version.rb
|
49
|
+
- spec/reloader_gem_spec/reloader_gem_spec.gemspec
|
45
50
|
homepage: https://github.com/raglub/reloader_gem
|
46
51
|
licenses: []
|
47
52
|
post_install_message:
|
@@ -66,4 +71,9 @@ rubygems_version: 1.8.24
|
|
66
71
|
signing_key:
|
67
72
|
specification_version: 3
|
68
73
|
summary: Reload gem when we change content of gem
|
69
|
-
test_files:
|
74
|
+
test_files:
|
75
|
+
- spec/reloader_gem_spec.rb
|
76
|
+
- spec/reloader_gem_spec/lib/reloader_gem_spec.rb
|
77
|
+
- spec/reloader_gem_spec/lib/reloader_gem_spec/load_file.rb
|
78
|
+
- spec/reloader_gem_spec/lib/reloader_gem_spec/version.rb
|
79
|
+
- spec/reloader_gem_spec/reloader_gem_spec.gemspec
|