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