defined 0.0.1 → 0.0.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.rdoc +4 -0
- data/Rakefile +3 -3
- data/lib/defined.rb +12 -4
- data/lib/defined/version.rb +3 -3
- data/test/defined_test.rb +8 -0
- data/test/test_helper.rb +3 -1
- metadata +7 -10
data/README.rdoc
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
Calls <tt>Module#defined</tt> after a class or module has been defined or redefined
|
4
4
|
|
5
|
+
<b>Note</b>: relies on <tt>{Kernel#set_trace_func}[http://www.ruby-doc.org/core/classes/Kernel.html#M001430]</tt>
|
6
|
+
|
5
7
|
|
6
8
|
== Installation
|
7
9
|
|
@@ -10,6 +12,8 @@ Calls <tt>Module#defined</tt> after a class or module has been defined or redefi
|
|
10
12
|
|
11
13
|
== Usage
|
12
14
|
|
15
|
+
Defined.enable!
|
16
|
+
|
13
17
|
class User
|
14
18
|
def self.defined(file, line, method)
|
15
19
|
puts " defined by #{file}:#{line} with #{method}"
|
data/Rakefile
CHANGED
@@ -2,17 +2,17 @@ require 'rake'
|
|
2
2
|
require 'rake/testtask'
|
3
3
|
require 'rake/rdoctask'
|
4
4
|
|
5
|
-
desc 'Default: run unit tests
|
5
|
+
desc 'Default: run unit tests'
|
6
6
|
task :default => :test
|
7
7
|
|
8
|
-
desc 'Test the defined gem
|
8
|
+
desc 'Test the defined gem'
|
9
9
|
Rake::TestTask.new(:test) do |t|
|
10
10
|
t.libs += ['lib', 'test']
|
11
11
|
t.pattern = 'test/**/*_test.rb'
|
12
12
|
t.verbose = true
|
13
13
|
end
|
14
14
|
|
15
|
-
desc 'Generate documentation for the defined gem
|
15
|
+
desc 'Generate documentation for the defined gem'
|
16
16
|
Rake::RDocTask.new(:rdoc) do |rdoc|
|
17
17
|
rdoc.rdoc_dir = 'rdoc'
|
18
18
|
rdoc.title = 'defined'
|
data/lib/defined.rb
CHANGED
@@ -3,8 +3,18 @@ module Defined
|
|
3
3
|
autoload :Version, 'defined/version'
|
4
4
|
|
5
5
|
class << self
|
6
|
-
def
|
6
|
+
def disable!
|
7
|
+
set_trace_func nil
|
8
|
+
@enabled = false
|
9
|
+
end
|
10
|
+
|
11
|
+
def enable!
|
7
12
|
set_trace_func method(:trace_function).to_proc
|
13
|
+
@enabled = true
|
14
|
+
end
|
15
|
+
|
16
|
+
def enabled?
|
17
|
+
@enabled ||= false
|
8
18
|
end
|
9
19
|
|
10
20
|
# An array of classes and modules that are currently being defined
|
@@ -45,6 +55,4 @@ module Defined
|
|
45
55
|
end
|
46
56
|
end
|
47
57
|
end
|
48
|
-
end
|
49
|
-
|
50
|
-
Module.send(:include, Defined)
|
58
|
+
end
|
data/lib/defined/version.rb
CHANGED
@@ -3,14 +3,14 @@ module Defined
|
|
3
3
|
module Version
|
4
4
|
MAJOR = 0
|
5
5
|
MINOR = 0
|
6
|
-
PATCH =
|
6
|
+
PATCH = 2
|
7
7
|
|
8
8
|
# Returns a version string by joining <tt>MAJOR</tt>, <tt>MINOR</tt>, and <tt>PATCH</tt> with <tt>'.'</tt>
|
9
9
|
#
|
10
10
|
# Example
|
11
11
|
#
|
12
|
-
# Version.
|
13
|
-
def self.
|
12
|
+
# Version.to_s # '1.0.2'
|
13
|
+
def self.to_s
|
14
14
|
[MAJOR, MINOR, PATCH].join('.')
|
15
15
|
end
|
16
16
|
end
|
data/test/defined_test.rb
CHANGED
@@ -17,6 +17,14 @@ class DefinedTest < Test::Unit::TestCase
|
|
17
17
|
extend TestMethods
|
18
18
|
end
|
19
19
|
|
20
|
+
def test_enabled_toggle
|
21
|
+
assert Defined.enabled?
|
22
|
+
Defined.disable!
|
23
|
+
assert !Defined.enabled?
|
24
|
+
Defined.enable!
|
25
|
+
assert Defined.enabled?
|
26
|
+
end
|
27
|
+
|
20
28
|
def test_should_match_definition_start_with_keyword
|
21
29
|
assert Defined.send(:definition_start?, 'class', false, false)
|
22
30
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: defined
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sean Huber
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-04 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -40,11 +40,8 @@ homepage: http://github.com/shuber/defined
|
|
40
40
|
licenses: []
|
41
41
|
|
42
42
|
post_install_message:
|
43
|
-
rdoc_options:
|
44
|
-
|
45
|
-
- --inline-source
|
46
|
-
- --main
|
47
|
-
- README.rdoc
|
43
|
+
rdoc_options: []
|
44
|
+
|
48
45
|
require_paths:
|
49
46
|
- lib
|
50
47
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -68,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
65
|
requirements: []
|
69
66
|
|
70
67
|
rubyforge_project:
|
71
|
-
rubygems_version: 1.
|
68
|
+
rubygems_version: 1.6.2
|
72
69
|
signing_key:
|
73
70
|
specification_version: 3
|
74
71
|
summary: Calls Module#defined whenever a class or module is (re)defined
|