mock_lobster 0.5

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/lib/mock_lobster.rb +42 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 037649cd5c2513a7d01e7d27ca26b5bdc572e43b
4
+ data.tar.gz: a09fb61bc11c734dc821faef59641589602d02cc
5
+ SHA512:
6
+ metadata.gz: 44de16e730a8e422e63cbc63c08f74e1e76177585340f23747a7f99492c2e343b39a0cb6caec129e05b178998adda84f38a9699c2f39ec4b914eaf0fc78177b9
7
+ data.tar.gz: 3397a8956da097a2ca9a97628ce1c670898cfc0b5a16d9bee5993a4c9b9e1b259cdd089410fc92714a666c35ef0fc4b59f3ef36bc560d373dfc3ea58e5c6da8f
@@ -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.5'
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
+ - lib/mock_lobster.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.8
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: a lightweight mocking library
44
+ test_files: []