require_reloader 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # RequireReloader
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/require_reloader.png)](http://badge.fury.io/rb/require_reloader)
4
+
3
5
  Auto-reload `require` files or local gems without restarting server
4
6
  during Rails development.
5
7
 
@@ -7,18 +9,18 @@ Currently, it supports Rails 3+ and above, including 3.1 and 3.2.
7
9
 
8
10
  It uses `ActionDispatch::Callbacks.to_prepare` to reload the
9
11
  `require` files before each request. In Rails 3.2, it uses
10
- `watchable_dirs` to reload only when you modify a file.
12
+ `watchable_dirs` to reload only when you modify a file. More details in [this blog post](http://teohm.github.com/blog/2013/01/10/reload-required-files-in-rails/).
11
13
 
12
14
  ## Usage
13
15
 
14
- To reload **all** local gems in `Gemfile` (the ones with `:path`
15
- attributes):
16
+ Given a `Gemfile`
16
17
 
17
18
  # Gemfile
18
- ..
19
19
  gem 'my_gem', :path => '~/work/my_gem'
20
20
  gem 'my_gem2', :path => '~/fun/my_gem2'
21
21
 
22
+ To reload all **local gems** (the ones with `:path` attribute,
23
+ or using [local git repo](http://gembundler.com/v1.2/git.html#local)):
22
24
 
23
25
  # config/environments/development.rb
24
26
  YourApp::Application.configure do
@@ -26,27 +28,18 @@ attributes):
26
28
  RequireReloader.watch_local_gems!
27
29
  end
28
30
 
29
- To reload a local gem specified in `Gemfile`:
31
+ To reload a specific local gem:
30
32
 
31
- # config/environments/development.rb
32
- YourApp::Application.configure do
33
- ...
34
- RequireReloader.watch :my_gem
35
- end
33
+ RequireReloader.watch :my_gem
36
34
 
37
- You can also reload a `.rb` file in `lib` or any directory:
35
+ You can also **reload a `.rb` file in `lib`** or any directory:
38
36
 
39
- # config/environments/development.rb
40
- YourApp::Application.configure do
41
- ...
42
- RequireReloader.watch :half_baked_gem # in lib/
43
- RequireReloader.watch :foo, :path => 'app/models'
44
- end
37
+ RequireReloader.watch :half_baked_gem # in lib dir
38
+ RequireReloader.watch :foo, :path => 'app/models'
45
39
 
46
- `:path` option is **optional**. In **Rails 3.2**, `:path` value will be
47
- added into `watchable_dirs`. RequireReloader already adds
48
- `lib` and `vendor/gems` into `watchable_dirs`. So, you only need to
49
- specify `:path` if the file is located in other directory.
40
+ The `:path` option is *optional*. In **Rails 3.2**, `:path` value is added into `watchable_dirs`. Rails 3.1 and 3.0 ignore this value.
41
+
42
+ RequireReloader adds `lib` and `vendor/gems` into `watchable_dirs`. So, specify `:path` only if the file is located in other directory.
50
43
 
51
44
 
52
45
  ## Installation
@@ -59,9 +52,6 @@ And then execute:
59
52
 
60
53
  $ bundle
61
54
 
62
- Or install it yourself as:
63
-
64
- $ gem install require_reloader
65
55
 
66
56
  ## Contributing
67
57
 
@@ -78,6 +68,7 @@ This gem is forked from Colin Young's [gem_reloader](https://github.com/colinyou
78
68
 
79
69
  ## Changelog
80
70
 
71
+ - v0.1.3: Skip reload local gem if it's itself; added integration tests.
81
72
  - v0.1.2: Minor rephrase on gem's description and summary.
82
73
  - v0.1.1: Use Bundler to fetch local gems info, instead of parsing Gemfile by hand.
83
74
  - v0.1.0: Forked colinyoung/gem_reloader, renamed & major rewrite to support Rails 3.2 and new features.
data/Rakefile CHANGED
@@ -1,2 +1,9 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+
4
+ desc "run all integration tests"
5
+ task :test do
6
+ system "cd test/resources/rails32-app; bundle exec rake test:integration; cd -"
7
+ system "cd test/resources/rails31-app; bundle exec rake test:integration; cd -"
8
+ system "cd test/resources/rails30-app; bundle exec rake test:integration; cd -"
9
+ end
@@ -1,3 +1,3 @@
1
1
  module RequireReloader
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -12,6 +12,9 @@ module RequireReloader
12
12
  #
13
13
  def watch_local_gems!
14
14
  local_gems.each do |gem|
15
+ # never reload itself for now, causing error raised in integration test
16
+ next if gem[:name] == 'require_reloader'
17
+
15
18
  watch gem[:name], :path => gem[:path]
16
19
  end
17
20
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |gem|
8
8
  gem.summary = %q{Auto-reload require files or local gems without restarting Rails server.}
9
9
  gem.homepage = "https://github.com/teohm/require_reloader"
10
10
 
11
- gem.files = `git ls-files`.split($\)
11
+ gem.files = `git ls-files`.split($\).reject{|f| f =~ /^test/}
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
14
  gem.name = "require_reloader"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require_reloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-10 00:00:00.000000000 Z
13
+ date: 2013-01-16 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: Auto-reload require files or local gems without restarting server during
16
16
  Rails development.