defined 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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'
@@ -3,8 +3,18 @@ module Defined
3
3
  autoload :Version, 'defined/version'
4
4
 
5
5
  class << self
6
- def included(mod) # :nodoc:
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
@@ -3,14 +3,14 @@ module Defined
3
3
  module Version
4
4
  MAJOR = 0
5
5
  MINOR = 0
6
- PATCH = 1
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.string # '1.0.2'
13
- def self.string
12
+ # Version.to_s # '1.0.2'
13
+ def self.to_s
14
14
  [MAJOR, MINOR, PATCH].join('.')
15
15
  end
16
16
  end
@@ -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
@@ -2,4 +2,6 @@ require 'test/unit'
2
2
 
3
3
  $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
  $:.unshift(File.dirname(__FILE__))
5
- require 'defined'
5
+ require 'defined'
6
+
7
+ Defined.enable!
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: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
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-03-07 00:00:00 -08:00
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
- - --line-numbers
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.5.0
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