whats_up 1.1.4 → 1.2

Sign up to get free protection for your applications and to get access to all the features.
data/.autotest CHANGED
@@ -0,0 +1,4 @@
1
+ if RUBY_PLATFORM =~ /darwin/
2
+ require "autotest/fsevent"
3
+ require "autotest/growl"
4
+ end
data/.gitignore CHANGED
@@ -2,4 +2,5 @@
2
2
  *.gem
3
3
  .bundle
4
4
  Gemfile.lock
5
+ doc/*
5
6
  pkg/*
@@ -1,12 +1,11 @@
1
- whats\_up
2
- =========
1
+ = whats\_up
3
2
 
4
- This is a fork of Dr. Nic's excellent little `what_methods` utility, updated a bit to expand
3
+ This is a fork of Dr. Nic's excellent little what_methods utility, updated a bit to expand
5
4
  functionality and bring syntax a bit more in line with the Ruby status quo. It's actually been
6
5
  batted around the internet for a while, with rough etchings dating to 2002. So this is my shot at
7
6
  it.
8
7
 
9
- **Dr. Nic says** (or is heard from echoes traversing the sands of time)**:**
8
+ <b>Dr. Nic says</b> (or is heard from echoes traversing the sands of time)<b>:</b>
10
9
 
11
10
  This is from Dr. Nic. See http://drnicwilliams.com/2006/10/12/my-irbrc-for-consoleirb/
12
11
 
@@ -49,20 +48,20 @@ Just what you need in the console.
49
48
  Notice the last example: you can pass parameters after the desired result. whats_up will tell you
50
49
  what method will return the desired result if you pass those parameters to it.
51
50
 
52
- **Bryan says:**
51
+ <b>Bryan says:</b>
53
52
 
54
- This modest little update retains the original `what?` method, but that was from the halcyon days of
55
- 2006, before the Ruby community had a rough consensus that `?` methods should be returning a true or
56
- false value (or at least something useable as such). I've aliased that method as `what_equals`.
53
+ This modest little update retains the original +what?+ method, but that was from the halcyon days of
54
+ 2006, before the Ruby community had a rough consensus that +?+ methods should be returning a true or
55
+ false value (or at least something useable as such). I've aliased that method as +what_equals+.
57
56
 
58
57
  You can add arguments by either supplying additional arguments after the expected result or by using
59
- the `given` method. So the following two queries are equivalent:
58
+ the +given+ method. So the following two queries are equivalent:
60
59
 
61
60
  5.given(1).what_equals 6
62
61
  5.what_equals 6, 1
63
62
 
64
- Note also the addition of helpers like `whats_exactly`, which will only find exact matches, and
65
- `what_matches`, which will match a regular expression:
63
+ Note also the addition of helpers like +whats_exactly+, which will only find exact matches, and
64
+ +what_matches+, which will match a regular expression:
66
65
 
67
66
  > 5.whats_exactly 5.0
68
67
  5.to_f == 5.0
@@ -77,8 +76,8 @@ Note also the addition of helpers like `whats_exactly`, which will only find exa
77
76
  "hello".oct == 0
78
77
  => {:length=>5, :size=>5, :bytesize=>5, :to_i=>0, :hex=>0, :oct=>0}
79
78
 
80
- And if you just want to know everything, I've added `what_works_with` that lists the results of all
81
- current methods and `whats_not_blank_with` that ignores any false, falsy or empty values:
79
+ And if you just want to know everything, I've added +what_works_with+ that lists the results of all
80
+ current methods and +whats_not_blank_with+ that ignores any false, falsy or empty values:
82
81
 
83
82
  > "hello".what_works_with 2
84
83
  "hello" <=> 2 == nil
@@ -99,5 +98,5 @@ current methods and `whats_not_blank_with` that ignores any false, falsy or empt
99
98
  "hello".upto(2) == #<Enumerator: "hello":upto(2)>
100
99
  # ...
101
100
 
102
- In line with the original `what_methods` gem, you can `require "whats_up/classic"` to enable aliases
103
- like `what?`, `matches?`, `exactly?`, `works?` and `not_blank?`.
101
+ In line with the original +what_methods+ gem, you can <tt>require "whats_up/classic"</tt> to enable
102
+ aliases like +what?+, +matches?+, +exactly?+, +works?+ and +not_blank?+.
data/Rakefile CHANGED
@@ -1 +1,20 @@
1
1
  require "bundler/gem_tasks"
2
+ require "sdoc"
3
+
4
+ # Quick hack until SDoc gets fixed
5
+ class RDoc::Generator::SDoc; alias :basedir :base_dir; end
6
+
7
+ RDoc::Task.new do |rdoc|
8
+ rdoc.rdoc_dir = "doc/rdoc"
9
+ rdoc.title = "whats_up Documentation"
10
+
11
+ rdoc.options << "-f" << "sdoc" # format with SDoc
12
+ rdoc.options << "-T" << "rails" # use the Rails template
13
+ rdoc.options << "-c" << "utf-8"
14
+ rdoc.options << "-g" # link to GitHub
15
+ rdoc.options << "-m" << "README.rdoc" # use README.rdoc as main file
16
+ rdoc.options << "-v" # verbose
17
+
18
+ rdoc.rdoc_files.include "README.rdoc"
19
+ rdoc.rdoc_files.include "lib/**/*.rb"
20
+ end
data/lib/whats_up.rb CHANGED
@@ -20,59 +20,14 @@
20
20
  # http://www.doublegifts.com/pub/ruby/methodfinder.rb.html
21
21
  # * Checks permutations of arguments
22
22
  # http://www.doublegifts.com/pub/ruby/methodfinder2.rb.html
23
- #
24
- # Last updated: 2006/05/20
25
-
26
- class Object
27
- def given(*args)
28
- if frozen?
29
- WhatsUp::FrozenSection.new self, args: args
30
- else
31
- @args = args
32
- self
33
- end
34
- end
35
-
36
- def what_equals(expected_result, *args, &block)
37
- show_methods expected_result, {}, *args, &block
38
- end
39
-
40
- def whats_exactly(expected_result, *args, &block)
41
- show_methods expected_result, { force_exact: true }, *args, &block
42
- end
43
-
44
- def what_matches(expected_result, *args, &block)
45
- show_methods expected_result, { force_regex: true }, *args, &block
46
- end
47
-
48
- def what_works_with(*args, &block)
49
- show_methods nil, { show_all: true }, *args, &block
50
- end
51
- alias :what_works :what_works_with
52
-
53
- def whats_not_blank_with(*args, &block)
54
- show_methods nil, { show_all: true, exclude_blank: true }, *args, &block
55
- end
56
- alias :whats_not_blank :whats_not_blank_with
57
-
58
- # Make sure cloning doesn't cause anything to fail via type errors
59
- alias_method :__clone__, :clone
60
- def clone
61
- __clone__
62
- rescue TypeError
63
- self
64
- end
65
-
66
- private
67
-
68
- def show_methods(expected_result, opts = {}, *args, &block)
69
- @args = args unless args.empty?
70
- WhatsUp::MethodFinder.show(self, expected_result, opts, *@args, &block)
71
- end
72
- end
73
-
74
23
  module WhatsUp
24
+ autoload :Classic, "whats_up/classic"
75
25
  autoload :DummyOut, "whats_up/dummy_out"
76
26
  autoload :FrozenSection, "whats_up/frozen_section"
77
27
  autoload :MethodFinder, "whats_up/method_finder"
28
+ autoload :Methods, "whats_up/methods"
29
+ end
30
+
31
+ class Object # :nodoc:
32
+ include WhatsUp::Methods
78
33
  end
@@ -1,15 +1,25 @@
1
1
  require "whats_up"
2
2
 
3
- class Object
4
- alias :what? :what_equals
5
- alias :exactly? :whats_exactly
6
- alias :matches? :what_matches
7
- alias :works? :what_works_with
8
- alias :not_blank? :whats_not_blank_with
9
- end
10
-
11
3
  module WhatsUp
12
- class MethodFinder
13
- @@blacklist += %w(what? exactly? matches? works? not_blank?)
4
+ # This module contains the original +what?+ method, as well as some aliases for newer methods. In
5
+ # line with the current expectation that a Ruby method ending in +?+ returns a true or false value
6
+ # (or at least something truthy or falsy), I've decided not to make +what?+ and it's brethren the
7
+ # default. You can include them by:
8
+ #
9
+ # require "whats_up/classic"
10
+ #
11
+ # or, if whats_up is already loaded:
12
+ #
13
+ # WhatsUp::Classic # which triggers whats_up/classic to autoload
14
+ module Classic
15
+ alias :what? :what_equals
16
+ alias :exactly? :whats_exactly
17
+ alias :matches? :what_matches
18
+ alias :works? :what_works_with
19
+ alias :not_blank? :whats_not_blank_with
14
20
  end
15
21
  end
22
+
23
+ class Object # :nodoc:
24
+ include WhatsUp::Classic
25
+ end
@@ -1,7 +1,10 @@
1
1
  module WhatsUp
2
2
  # A class to suppress anything that would normally output to $stdout
3
3
  class DummyOut
4
- # Does nothing (instead of writing to $stdout)
5
- def write(*args); end
4
+ # Does nothing (instead of writing to an IO stream)
5
+ def write(*args)
6
+ end
7
+ alias :print :write
8
+ alias :puts :write
6
9
  end
7
10
  end
@@ -1,5 +1,15 @@
1
1
  module WhatsUp
2
+ # A classic designed to allow variables to be stored along with a frozen object.
3
+ #
4
+ # Frozen objects can't have new instance variables added directly, so this prevents whats_up
5
+ # methods from being locked out of inspecting anything frozen. This proxy class should be
6
+ # initialized automatically if whats_up detects that the object it's to inspect is frozen.
2
7
  class FrozenSection
8
+ # The frozen object
9
+ attr_reader :object
10
+
11
+ # Creates a new FrozenSection object from the provided +object+ and a list of instance variables
12
+ # to store
3
13
  def initialize(object, vars = {})
4
14
  @object = object
5
15
  vars.each do |key, value|
@@ -9,9 +19,11 @@ module WhatsUp
9
19
 
10
20
  private
11
21
 
12
- def show_methods
22
+ # An override of Methods#show_methods that passes the object stored in <tt>@object</tt> instead of
23
+ # +self+
24
+ def show_methods(expected_result, opts = {}, *args, &block) # :doc:
13
25
  @args = args unless args.empty?
14
- WhatsUp::MethodFinder.show(@object, expected_result, opts, *@args)
26
+ MethodFinder.show(@object, expected_result, opts, *@args)
15
27
  end
16
28
  end
17
29
  end
@@ -1,46 +1,60 @@
1
1
  module WhatsUp
2
+ # A singleton class used to iterate over the methods of an object trying to match any returned
3
+ # values with an expected result. ny matches will then be pretty printed to the console.
2
4
  class MethodFinder
3
- @@blacklist = %w(daemonize display exec exit! fork sleep system syscall what_equals
4
- whats_exactly what_matches what_works_with what_works whats_not_blank_with
5
- whats_not_blank given ed emacs mate nano vi vim)
5
+ # A list of symbols indicated which methods to always ignore
6
+ @@blacklist = %w(daemonize debug debugger display ed emacs exactly? exec exit! fork given
7
+ matches? mate nano not_blank? sleep stub stub! stub_chain syscall system unstub
8
+ unstub! vi vim what? what_equals what_matches what_works what_works_with
9
+ whats_exactly whats_not_blank whats_not_blank_with works?).map(&:to_sym)
10
+
11
+ # A list of symbols for infix operators for which Ruby has special syntax
6
12
  @@infixes = %w(+ - * / % ** == != =~ !~ !=~ > < >= <= <=> === & | ^ << >>).map(&:to_sym)
7
- @@prefixes = %w(+@ -@ ~ !).map(&:to_sym)
8
13
 
9
- def initialize(obj, *args)
10
- @obj = obj
11
- @args = args
12
- end
13
- def ==(val)
14
- MethodFinder.show(@obj, val, *@args)
15
- end
14
+ # A list of symbols for prefix operators for which Ruby has special syntax
15
+ @@prefixes = %w(+@ -@ ~ !).map(&:to_sym)
16
16
 
17
17
  class << self
18
+ # Builds a lambda for checking against the provided +expected_result+ given a hash of options.
19
+ # Given the value of a method, the result of this lambda will determine whether that method
20
+ # and value are included in the output of a whats_up method.
21
+ #
22
+ # ==== Options
23
+ #
24
+ # * <tt>:exclude_blank</tt> - Exclude blank values
25
+ # * <tt>:force_exact</tt> - Force values to be exactly equal
26
+ # * <tt>:force_regex</tt> - Coerce the +expected_result+ into a regular expression for pattern
27
+ # matching
28
+ # * <tt>:show_all</tt> - Show the results of all methods
18
29
  def build_check_lambda(expected_result, opts = {})
19
30
  if opts[:force_regex]
20
31
  expected_result = Regexp.new(expected_result.to_s) unless expected_result.is_a?(Regexp)
21
- -> value { expected_result === value.to_s }
32
+ ->(value) { expected_result === value.to_s }
22
33
  elsif expected_result.is_a?(Regexp) && !opts[:force_exact]
23
- -> value { expected_result === value.to_s }
34
+ ->(value) { expected_result === value.to_s }
24
35
  elsif opts[:force_exact]
25
- -> value { expected_result.eql?(value) }
36
+ ->(value) { expected_result.eql?(value) }
26
37
  elsif opts[:show_all]
27
38
  if opts[:exclude_blank]
28
- -> value { !value.nil? && !value.empty? }
39
+ ->(value) { !value.nil? && !(value.respond_to?(:empty?) && value.empty?) }
29
40
  else
30
- -> value { true }
41
+ ->(value) { true }
31
42
  end
32
43
  else
33
- -> value { expected_result == value }
44
+ ->(value) { expected_result == value }
34
45
  end
35
46
  end
36
47
 
37
- # Find all methods on [an_object] which, when called with [args] return [expected_result]
48
+ # Find all methods on +an_object+ which, when called with +args+ return +expected_result+
38
49
  def find(an_object, expected_result, opts = {}, *args, &block)
39
50
  check_result = build_check_lambda(expected_result, opts)
40
51
 
41
52
  # Prevent any writing to the terminal
42
53
  stdout, stderr = $stdout, $stderr
43
- $stdout = $stderr = DummyOut.new
54
+ unless $stdout.is_a?(DummyOut)
55
+ $stdout = $stderr = DummyOut.new
56
+ restore_std = true
57
+ end
44
58
 
45
59
  # Use only methods with valid arity that aren't blacklisted
46
60
  methods = an_object.methods
@@ -48,8 +62,8 @@ module WhatsUp
48
62
 
49
63
  # Collect all methods equaling the expected result
50
64
  results = methods.inject({}) do |res, name|
65
+ stdout.print ""
51
66
  begin
52
- stdout.print ""
53
67
  value = an_object.clone.method(name).call(*args, &block)
54
68
  res[name] = value if check_result.call(value)
55
69
  rescue
@@ -58,11 +72,11 @@ module WhatsUp
58
72
  end
59
73
 
60
74
  # Restore printing to the terminal
61
- $stdout, $stderr = stdout, stderr
75
+ $stdout, $stderr = stdout, stderr if restore_std
62
76
  results
63
77
  end
64
78
 
65
- # Pretty-prints the results of the previous method
79
+ # Pretty prints the results of #find
66
80
  def show(an_object, expected_result, opts = {}, *args, &block)
67
81
  opts = {
68
82
  exclude_blank: false,
@@ -71,13 +85,11 @@ module WhatsUp
71
85
  show_all: false
72
86
  }.merge(opts)
73
87
 
74
- found = find(an_object, expected_result, opts, *args, &block)
88
+ found = find(an_object, expected_result, opts, *args, &block)
75
89
  prettified = prettify_found(an_object, found, *args)
76
90
  max_length = prettified.map { |k, v| k.length }.max
77
91
 
78
- prettified.each do |key, value|
79
- puts "#{key.ljust max_length} == #{value}"
80
- end
92
+ prettified.each { |k, v| puts "#{k.ljust max_length} == #{v}" }
81
93
 
82
94
  found
83
95
  end
@@ -85,11 +97,9 @@ module WhatsUp
85
97
  private
86
98
 
87
99
  # Pretty prints a method depending on whether it's an operator, has arguments, is array/hash
88
- # syntax, etc. For example:
89
- #
90
- #
100
+ # syntax, etc.
91
101
  def prettify_found(an_object, found, *args)
92
- args = args.map { |o| o.inspect }.join(", ")
102
+ args = args.map { |a| a.inspect }.join(", ")
93
103
  pretty_object = truncate_inspect(an_object, to: 40)
94
104
 
95
105
  found.map do |key, value|
@@ -119,7 +129,7 @@ module WhatsUp
119
129
 
120
130
  if full.length > max_length
121
131
  available_length = max_length - 5 # to account for the " ... "
122
- left_cutoff = available_length * 2 / 3.0
132
+ left_cutoff = available_length * 2 / 3
123
133
  right_cutoff = available_length - left_cutoff - 1
124
134
 
125
135
  "#{full[0..left_cutoff]} ... #{full[-right_cutoff..-1]}"
@@ -0,0 +1,67 @@
1
+ module WhatsUp
2
+ # The methods added to all objects by whats_up
3
+ module Methods
4
+ # Provides a list of arguments that will be used when trying to find matching methods.
5
+ #
6
+ # 5.given(1).what_equals 6
7
+ # # => 5 + 1 == 6
8
+ def given(*args)
9
+ if frozen?
10
+ FrozenSection.new self, args: args
11
+ else
12
+ @args = args
13
+ self
14
+ end
15
+ end
16
+
17
+ # Outputs a list of methods and their values that equal an +expected_result+, allowing for some
18
+ # coercion (e.g. <tt>5 == 5.0</tt>)
19
+ def what_equals(expected_result, *args, &block)
20
+ show_methods expected_result, {}, *args, &block
21
+ end
22
+
23
+ # Outputs a list of methods and their values that exactly equal an +expected_result+
24
+ def whats_exactly(expected_result, *args, &block)
25
+ show_methods expected_result, { force_exact: true }, *args, &block
26
+ end
27
+
28
+ # Outputs a list of methods and their values that match an +expected_result+, which is coerced
29
+ # into a regular expression if it's not already one
30
+ def what_matches(expected_result, *args, &block)
31
+ show_methods expected_result, { force_regex: true }, *args, &block
32
+ end
33
+
34
+ # Outputs a list of all methods and their values
35
+ def what_works_with(*args, &block)
36
+ show_methods nil, { show_all: true }, *args, &block
37
+ end
38
+ alias :what_works :what_works_with
39
+
40
+ # Outputs a list of all methods and their values, provided they are not blank (nil, false,
41
+ # undefined, empty)
42
+ def whats_not_blank_with(*args, &block)
43
+ show_methods nil, { show_all: true, exclude_blank: true }, *args, &block
44
+ end
45
+ alias :whats_not_blank :whats_not_blank_with
46
+
47
+ # Make sure cloning doesn't cause anything to fail via type errors
48
+ alias_method :__clone__, :clone
49
+
50
+ # Adds in a type error check to the default Object#clone method to prevent any interruptions while
51
+ # checking methods. If a TypeError is encountered, +self+ is returned
52
+ def clone
53
+ __clone__
54
+ rescue TypeError
55
+ self
56
+ end
57
+
58
+ private
59
+
60
+ # Called by all of the +what_+ methods, this tells MethodFinder to output the result for any methods
61
+ # matching an +expected_result+ for the #given arguments
62
+ def show_methods(expected_result, opts = {}, *args, &block) # :doc:
63
+ @args = args unless args.empty?
64
+ MethodFinder.show(self, expected_result, opts, *@args, &block)
65
+ end
66
+ end
67
+ end
@@ -1,4 +1,4 @@
1
1
  module WhatsUp
2
2
  # The current version
3
- VERSION = "1.1.4"
3
+ VERSION = "1.2"
4
4
  end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + "/spec_helper"
2
+
3
+ describe "WhatsUp::Classic" do
4
+ it "should not have any classic methods without Classic loaded" do
5
+ "hello".should_not respond_to(:what?)
6
+ end
7
+
8
+ it "should have classic methods with Classic loaded" do
9
+ require "whats_up/classic"
10
+ "hello".should respond_to(:what?)
11
+ end
12
+ end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require File.dirname(__FILE__) + "/spec_helper"
3
2
 
4
3
  describe FrozenSection do
@@ -0,0 +1,62 @@
1
+ require File.dirname(__FILE__) + "/spec_helper"
2
+
3
+ describe Methods do
4
+ before :all do
5
+ @stderr, @stdout = $stderr, $stdout
6
+ $stderr = $stdout = DummyOut.new
7
+ end
8
+
9
+ after :all do
10
+ $stderr, $stdout = @stderr, @stdout
11
+ end
12
+
13
+ describe "what_equals" do
14
+ it "should find the correct method without arguments" do
15
+ "hello ".what_equals("hello").should have_key(:rstrip)
16
+ end
17
+
18
+ it "should find the correct method with arguments" do
19
+ "hello".what_equals("e", 1).should have_key(:[])
20
+ end
21
+
22
+ it "should find the correct method with arguments using given" do
23
+ "hello".given(1).what_equals("e").should have_key(:[])
24
+ end
25
+ end
26
+
27
+ describe "what_matches" do
28
+ it "should find the correct method given a regular expression" do
29
+ 5.what_matches(/5/).should have_key(:to_s)
30
+ end
31
+
32
+ it "should find the correct method by converting an arbitrary object to a regular expression" do
33
+ 5.what_matches(5).should have_key(:to_s)
34
+ end
35
+ end
36
+
37
+ describe "whats_exactly" do
38
+ it "should fail to match inexact matches that would succeed with == type coercion" do
39
+ 5.whats_exactly(5.0).should_not have_key(:to_i)
40
+ end
41
+
42
+ it "should succeed for exact matches" do
43
+ 5.whats_exactly(5.0).should have_key(:to_f)
44
+ end
45
+ end
46
+
47
+ describe "whats_not_blank" do
48
+ it "should include only non-blank values" do
49
+ 5.whats_not_blank.select { |n| !n || n.empty? }.should be_empty
50
+ end
51
+ end
52
+
53
+ describe "what_works" do
54
+ it "should produce all results found with whats_not_blank" do
55
+ works = 5.what_works
56
+
57
+ 5.whats_not_blank.keys.each do |key|
58
+ works.should have_key(key)
59
+ end
60
+ end
61
+ end
62
+ end
data/whats_up.gemspec CHANGED
@@ -13,10 +13,17 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.files = `git ls-files`.split("\n")
15
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
+ s.add_runtime_dependency "sdoc"
20
+
19
21
  s.add_development_dependency "autotest"
20
22
  s.add_development_dependency "bundler"
21
23
  s.add_development_dependency "rspec"
24
+
25
+ if RUBY_PLATFORM =~ /darwin/
26
+ s.add_development_dependency "autotest-fsevent"
27
+ s.add_development_dependency "autotest-growl"
28
+ end
22
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whats_up
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: '1.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,8 +10,24 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-23 00:00:00.000000000 Z
13
+ date: 2012-03-24 00:00:00.000000000 Z
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sdoc
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
15
31
  - !ruby/object:Gem::Dependency
16
32
  name: autotest
17
33
  requirement: !ruby/object:Gem::Requirement
@@ -60,6 +76,38 @@ dependencies:
60
76
  - - ! '>='
61
77
  - !ruby/object:Gem::Version
62
78
  version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: autotest-fsevent
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: autotest-growl
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
63
111
  description: Determine what methods can be called on an object that return a given
64
112
  value
65
113
  email:
@@ -73,15 +121,18 @@ files:
73
121
  - .gitignore
74
122
  - .rspec
75
123
  - Gemfile
76
- - README.md
124
+ - README.rdoc
77
125
  - Rakefile
78
126
  - lib/whats_up.rb
79
127
  - lib/whats_up/classic.rb
80
128
  - lib/whats_up/dummy_out.rb
81
129
  - lib/whats_up/frozen_section.rb
82
130
  - lib/whats_up/method_finder.rb
131
+ - lib/whats_up/methods.rb
83
132
  - lib/whats_up/version.rb
133
+ - spec/classic_spec.rb
84
134
  - spec/frozen_section_spec.rb
135
+ - spec/methods_spec.rb
85
136
  - spec/spec_helper.rb
86
137
  - whats_up.gemspec
87
138
  homepage: http://brymck.herokuapp.com/
@@ -109,5 +160,7 @@ signing_key:
109
160
  specification_version: 3
110
161
  summary: Determine what methods can be called on an object that return a given value
111
162
  test_files:
163
+ - spec/classic_spec.rb
112
164
  - spec/frozen_section_spec.rb
165
+ - spec/methods_spec.rb
113
166
  - spec/spec_helper.rb