mock-lobster 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/mock.rb +42 -0
  3. metadata +44 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 960182a84172efccc137b06530ac5be345462300
4
+ data.tar.gz: e91153155dd89134ef5ed1d3b19cd707523c42ef
5
+ SHA512:
6
+ metadata.gz: ab7b2effdfa45b50952e20955e4f581a5652066c57fea0fd22793dcaf0f6593d0eaa5b9bc7c4e2ea513eed1a0efde6d892d22e26e3c53dacf346b33dc688f2a0
7
+ data.tar.gz: 0729bf016aa226825b5733ca7446b5eb50d5ea185ba9789a89875e74810ca17c9ed51b9c15d854777269042ff6c5376741c3d248f577db048b1005510eac8a48
data/mock.rb ADDED
@@ -0,0 +1,42 @@
1
+ require 'ostruct'
2
+
3
+ class Object
4
+ def mock(method)
5
+ Mock.new(OpenStruct.new(method))
6
+ end
7
+
8
+ def stub(method)
9
+ method.each_pair do |method_name, return_value|
10
+ self.send(:define_singleton_method, method_name) do
11
+ return return_value
12
+ end
13
+ end
14
+ end
15
+
16
+ def expect(method, param)
17
+ Expectation.new(method, param, self)
18
+ end
19
+ end
20
+
21
+ class Mock
22
+ def initialize(open_struct)
23
+ open_struct.each_pair do |method_name, return_value|
24
+ self.send(:define_singleton_method, method_name) do
25
+ return return_value
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ class Expectation
32
+ attr_accessor :method, :self, :param # => nil
33
+ def initialize(method, param, object)
34
+ @method = method
35
+ @object = object
36
+ end
37
+
38
+ def returns(result)
39
+ @object.send(:define_singleton_method, method) { |param| result }
40
+ result
41
+ end
42
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mock-lobster
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Lev Kravinsky
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-24 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: see github.com/levthedev/mock-lobster for documentation
14
+ email: kravinskylev@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - mock.rb
20
+ homepage: http://rubygems.org/gems/mock-lobster
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.4.7
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: a lightweight mocking library
44
+ test_files: []