mspec 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -16,7 +16,7 @@ spec = Gem::Specification.new do |s|
16
16
 
17
17
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
18
18
  s.authors = ["Brian Ford"]
19
- s.date = %q{2008-11-12}
19
+ s.date = %q{2008-12-1}
20
20
  s.email = %q{bford@engineyard.com}
21
21
  s.has_rdoc = true
22
22
  s.extra_rdoc_files = %w[ README LICENSE ]
data/lib/mspec/helpers.rb CHANGED
@@ -5,3 +5,4 @@ require 'mspec/helpers/scratch'
5
5
  require 'mspec/helpers/tmp'
6
6
  require 'mspec/helpers/const_lookup'
7
7
  require 'mspec/helpers/ruby_exe'
8
+ require 'mspec/helpers/metaclass'
@@ -0,0 +1,12 @@
1
+ # Provides a convenience method for accessing the metaclass
2
+ # of any object without overriding the method if it already
3
+ # exists in an implementation.
4
+ unless respond_to? :metaclass
5
+ class Object
6
+ def metaclass
7
+ class << self
8
+ self
9
+ end
10
+ end
11
+ end
12
+ end
@@ -85,7 +85,7 @@ class Object
85
85
  end
86
86
 
87
87
  def ruby_exe(code)
88
- if File.exists?(code) and File.executable?(code)
88
+ if File.exists?(code)
89
89
  `#{RUBY_EXE} #{ENV['RUBY_FLAGS']} #{code}`
90
90
  else
91
91
  `#{RUBY_EXE} #{ENV['RUBY_FLAGS']} -e #{code.inspect}`
@@ -15,7 +15,6 @@ class MSpecScript
15
15
  end
16
16
 
17
17
  def initialize
18
- config[:tags_dir] = 'spec/tags'
19
18
  config[:formatter] = nil
20
19
  config[:includes] = []
21
20
  config[:excludes] = []
@@ -35,10 +34,10 @@ class MSpecScript
35
34
  MSpecScript.config
36
35
  end
37
36
 
38
- def load(name)
39
- names = [name]
40
- unless name[-6..-1] == config[:config_ext]
41
- names << name + config[:config_ext]
37
+ def load(target)
38
+ names = [target]
39
+ unless target[-6..-1] == config[:config_ext]
40
+ names << target + config[:config_ext]
42
41
  end
43
42
 
44
43
  names.each do |name|
@@ -51,6 +50,17 @@ class MSpecScript
51
50
  end
52
51
  end
53
52
 
53
+ def load_default
54
+ if Object.const_defined?(:RUBY_ENGINE)
55
+ engine = RUBY_ENGINE
56
+ else
57
+ engine = 'ruby'
58
+ end
59
+ version = RUBY_VERSION.split('.')[0,2].join('.')
60
+
61
+ load "#{engine}.#{version}.mspec"
62
+ end
63
+
54
64
  def register
55
65
  if config[:formatter].nil?
56
66
  config[:formatter] = @files.size < 50 ? DottedFormatter : FileFormatter
@@ -100,8 +110,7 @@ class MSpecScript
100
110
  def self.main
101
111
  $VERBOSE = nil unless ENV['OUTPUT_WARNINGS']
102
112
  script = new
103
- script.load 'default.mspec'
104
- script.load RUBY_VERSION.split('.')[0,2].join('.') + ".mspec"
113
+ script.load_default
105
114
  script.load '~/.mspecrc'
106
115
  script.options
107
116
  script.signals
data/lib/mspec/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MSpec
2
- VERSION = '1.5.1'
2
+ VERSION = '1.5.2'
3
3
  end
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require 'mspec/helpers/metaclass'
3
+
4
+ describe Object, "#metaclass" do
5
+ it "returns the singleton class for an object" do
6
+ obj = Object.new
7
+ def obj.metaclass_test; end
8
+ meta = obj.metaclass
9
+
10
+ meta.instance_methods(false).should include("metaclass_test")
11
+ obj.should_not be_instance_of(meta)
12
+ obj.should be_kind_of(meta)
13
+ end
14
+ end
@@ -98,10 +98,9 @@ describe Object, "#ruby_exe" do
98
98
  $VERBOSE = @verbose
99
99
  end
100
100
 
101
- it "executes the argument if it is a file that exists and is executable" do
101
+ it "executes the argument if it is a file that exists" do
102
102
  code = "some/ruby/file.rb"
103
103
  File.should_receive(:exists?).with(code).and_return(true)
104
- File.should_receive(:executable?).with(code).and_return(true)
105
104
  @script.should_receive(:`).with("ruby_spec_exe -w -Q some/ruby/file.rb")
106
105
  @script.ruby_exe code
107
106
  end
@@ -32,7 +32,7 @@ describe MSpecScript, "#config" do
32
32
  end
33
33
  end
34
34
 
35
- describe MSpecScript, ".main" do
35
+ describe MSpecScript, "#load_default" do
36
36
  before :all do
37
37
  @verbose = $VERBOSE
38
38
  $VERBOSE = nil
@@ -44,19 +44,24 @@ describe MSpecScript, ".main" do
44
44
 
45
45
  before :each do
46
46
  @version = RUBY_VERSION
47
- @script = mock("MSpecScript", :null_object => true)
47
+ if Object.const_defined? :RUBY_ENGINE
48
+ @engine = Object.const_get :RUBY_ENGINE
49
+ end
50
+ @script = MSpecScript.new
48
51
  MSpecScript.stub!(:new).and_return(@script)
49
52
  end
50
53
 
51
54
  after :each do
52
55
  Object.const_set :RUBY_VERSION, @version
56
+ Object.const_set :RUBY_ENGINE, @engine if @engine
53
57
  end
54
58
 
55
- it "attempts to load a config file based on RUBY_VERSION" do
59
+ it "attempts to load a config file based on RUBY_ENGINE and RUBY_VERSION" do
60
+ Object.const_set :RUBY_ENGINE, "ybur"
56
61
  Object.const_set :RUBY_VERSION, "1.8.9"
57
- version = "1.8.mspec"
58
- @script.should_receive(:load).with(version)
59
- MSpecScript.main
62
+ default = "ybur.1.8.mspec"
63
+ @script.should_receive(:load).with(default)
64
+ @script.load_default
60
65
  end
61
66
  end
62
67
 
@@ -71,8 +76,8 @@ describe MSpecScript, ".main" do
71
76
  MSpecScript.main
72
77
  end
73
78
 
74
- it "attempts to load the 'default.mspec' script" do
75
- @script.should_receive(:load).with('default.mspec')
79
+ it "attempts to load the default config" do
80
+ @script.should_receive(:load_default)
76
81
  MSpecScript.main
77
82
  end
78
83
 
@@ -108,7 +113,6 @@ describe MSpecScript, "#initialize" do
108
113
  end
109
114
 
110
115
  it "sets the default config values" do
111
- @config[:tags_dir].should == 'spec/tags'
112
116
  @config[:formatter].should == nil
113
117
  @config[:includes].should == []
114
118
  @config[:excludes].should == []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Ford
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-12 00:00:00 -08:00
12
+ date: 2008-12-01 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -53,6 +53,7 @@ files:
53
53
  - lib/mspec/helpers/const_lookup.rb
54
54
  - lib/mspec/helpers/flunk.rb
55
55
  - lib/mspec/helpers/io.rb
56
+ - lib/mspec/helpers/metaclass.rb
56
57
  - lib/mspec/helpers/ruby_exe.rb
57
58
  - lib/mspec/helpers/scratch.rb
58
59
  - lib/mspec/helpers/tmp.rb
@@ -150,6 +151,7 @@ files:
150
151
  - spec/helpers/const_lookup_spec.rb
151
152
  - spec/helpers/flunk_spec.rb
152
153
  - spec/helpers/io_spec.rb
154
+ - spec/helpers/metaclass_spec.rb
153
155
  - spec/helpers/ruby_exe_spec.rb
154
156
  - spec/helpers/scratch_spec.rb
155
157
  - spec/helpers/tmp_spec.rb
@@ -233,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
235
  requirements: []
234
236
 
235
237
  rubyforge_project: http://rubyforge.org/projects/mspec
236
- rubygems_version: 1.2.0
238
+ rubygems_version: 1.3.1
237
239
  signing_key:
238
240
  specification_version: 2
239
241
  summary: MSpec is a specialized framework that is syntax-compatible with RSpec for basic things like describe, it blocks and before, after actions. MSpec contains additional features that assist in writing the RubySpecs used by multiple Ruby implementations. Also, MSpec attempts to use the simplest Ruby language features so that beginning Ruby implementations can run it.