webmock_method 1.0.1 → 1.1.0
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.
- checksums.yaml +9 -9
- data/.idea/.rakeTasks +2 -2
- data/.idea/webmock_method.iml +65 -58
- data/CHANGES +7 -1
- data/Gemfile +2 -0
- data/README.md +9 -9
- data/lib/webmock_method/render_helper.rb +7 -6
- data/lib/webmock_method/version.rb +1 -1
- data/lib/webmock_method/webmock_method.rb +16 -8
- data/spec/open_weather_map_service_spec.rb +5 -2
- data/spec/payment_gateway_spec.rb +4 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/stubs/payment_gateway.rb +11 -3
- metadata +31 -6
- data/lib/meta_methods/meta_methods.rb +0 -15
- data/spec/meta_methods_spec.rb +0 -28
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
YjY3N2ZjOTUyYzQyZGExNzc5OTQ3ODhiMmU1NmU4MDkwNjQzZDgzMg==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
OGMyMGFjNTQ5Y2JlNzIwYWMwMmQyODZmNDFhMWVlYzg0ZDVhYjQ1Yw==
|
|
7
|
+
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
NmNjZDJmNzYyZWFiYmJmZTVkYjQ5ZWJhOTE5MjQ1YjQ4OTQ4MzBlMmIwNDU0
|
|
10
|
+
ZGM3NDNmODU1ZjMxMjBiYWFlNzc2NzZkODM3ZGQ1YWIwZWMzOWY5Zjc0OTlj
|
|
11
|
+
MWYyNjlmYTFhYThhZTE5ZjY0MWRmNDQ1MDlkYTM4NTM0ZWFkYTM=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
ZmU1OGE0NzNiZmRhMTYyMDVlZWU5OGM5MDc2ZDU5ZmU1ZWI1MzA5YzQ0NzZi
|
|
14
|
+
M2E5MjQyMjIxYzYzYjQwMjVkN2IyZTdjMDk0YTUyODkyYjAxMWFmNWExNzRh
|
|
15
|
+
ZmVjYzg1YzVjYWJjZDIyMjA4ODZjMjk3YWNjZmE1MmVlZDY3OWU=
|
data/.idea/.rakeTasks
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<Settings><!--This file was automatically generated by Ruby plugin.
|
|
3
3
|
You are allowed to:
|
|
4
4
|
1. Remove rake task
|
|
5
5
|
2. Add existing rake tasks
|
|
6
6
|
To add existing rake tasks automatically delete this file and reload the project.
|
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
|
7
|
+
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
data/.idea/webmock_method.iml
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</facet>
|
|
11
11
|
</component>
|
|
12
12
|
<component name="ModuleRunConfigurationManager">
|
|
13
|
-
<configuration default="false" name="
|
|
13
|
+
<configuration default="false" name="open_weather_spec: webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
|
14
14
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
|
15
15
|
<module name="webmock_method" />
|
|
16
16
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
@@ -30,16 +30,17 @@
|
|
|
30
30
|
</EXTENSION>
|
|
31
31
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
32
32
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
33
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
|
33
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/open_weather_map_service_spec.rb" />
|
|
34
34
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
|
35
35
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
|
36
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="
|
|
36
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
|
37
37
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
38
38
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
|
39
39
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
|
40
40
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
|
41
41
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
42
42
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
|
43
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
|
43
44
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
|
44
45
|
<RunnerSettings RunnerId="RubyDebugRunner" />
|
|
45
46
|
<RunnerSettings RunnerId="RubyRunner" />
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
48
49
|
<method />
|
|
49
50
|
</configuration>
|
|
50
|
-
<configuration default="false" name="
|
|
51
|
+
<configuration default="false" name="PaymentGateway#purchase returns error response if amount is negative: webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
|
51
52
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
|
52
53
|
<module name="webmock_method" />
|
|
53
54
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
@@ -58,7 +59,7 @@
|
|
|
58
59
|
<envs>
|
|
59
60
|
<env name="JRUBY_OPTS" value="-X+O" />
|
|
60
61
|
</envs>
|
|
61
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="
|
|
62
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
|
62
63
|
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
63
64
|
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
64
65
|
<COVERAGE_PATTERN ENABLED="true">
|
|
@@ -67,46 +68,23 @@
|
|
|
67
68
|
</EXTENSION>
|
|
68
69
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
69
70
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
70
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
|
71
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/payment_gateway_spec.rb" />
|
|
71
72
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
|
72
73
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
|
73
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
|
74
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="PaymentGateway#purchase returns error response if amount is negative" />
|
|
74
75
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
75
76
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
|
76
77
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
|
77
78
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
|
78
79
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
79
80
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
|
81
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
|
80
82
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
|
81
|
-
<RunnerSettings RunnerId="RubyDebugRunner" />
|
|
82
83
|
<RunnerSettings RunnerId="RubyRunner" />
|
|
83
|
-
<ConfigurationWrapper RunnerId="RubyDebugRunner" />
|
|
84
84
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
85
85
|
<method />
|
|
86
86
|
</configuration>
|
|
87
|
-
<configuration default="false" name="
|
|
88
|
-
<module name="webmock_method" />
|
|
89
|
-
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
90
|
-
<RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/spec/stubs" />
|
|
91
|
-
<RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
92
|
-
<RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
93
|
-
<RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
|
|
94
|
-
<envs />
|
|
95
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
96
|
-
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
97
|
-
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
98
|
-
<COVERAGE_PATTERN ENABLED="true">
|
|
99
|
-
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
100
|
-
</COVERAGE_PATTERN>
|
|
101
|
-
</EXTENSION>
|
|
102
|
-
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
103
|
-
<RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/stubs/payment_gateway.rb" />
|
|
104
|
-
<RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
|
|
105
|
-
<RunnerSettings RunnerId="RubyRunner" />
|
|
106
|
-
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
107
|
-
<method />
|
|
108
|
-
</configuration>
|
|
109
|
-
<configuration default="false" name="OpenWeather#quote tests: webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
|
87
|
+
<configuration default="false" name="Run spec 'payment_gateway_spec': webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
|
110
88
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
|
111
89
|
<module name="webmock_method" />
|
|
112
90
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
@@ -117,7 +95,7 @@
|
|
|
117
95
|
<envs>
|
|
118
96
|
<env name="JRUBY_OPTS" value="-X+O" />
|
|
119
97
|
</envs>
|
|
120
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="
|
|
98
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
|
121
99
|
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
122
100
|
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
123
101
|
<COVERAGE_PATTERN ENABLED="true">
|
|
@@ -126,22 +104,23 @@
|
|
|
126
104
|
</EXTENSION>
|
|
127
105
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
128
106
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
129
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
|
107
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/payment_gateway_spec.rb" />
|
|
130
108
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
|
131
109
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
|
132
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="
|
|
110
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
|
133
111
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
134
112
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
|
135
113
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
|
136
114
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
|
137
115
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
138
116
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
|
117
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
|
139
118
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
|
140
119
|
<RunnerSettings RunnerId="RubyRunner" />
|
|
141
120
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
142
121
|
<method />
|
|
143
122
|
</configuration>
|
|
144
|
-
<configuration default="false" name="
|
|
123
|
+
<configuration default="false" name="MetaMethods: webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
|
145
124
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
|
146
125
|
<module name="webmock_method" />
|
|
147
126
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
@@ -152,7 +131,7 @@
|
|
|
152
131
|
<envs>
|
|
153
132
|
<env name="JRUBY_OPTS" value="-X+O" />
|
|
154
133
|
</envs>
|
|
155
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="
|
|
134
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
|
156
135
|
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
157
136
|
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
158
137
|
<COVERAGE_PATTERN ENABLED="true">
|
|
@@ -161,45 +140,73 @@
|
|
|
161
140
|
</EXTENSION>
|
|
162
141
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
163
142
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
164
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
|
143
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/meta_methods_spec.rb" />
|
|
165
144
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
|
166
145
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
|
167
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
|
146
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="MetaMethods" />
|
|
168
147
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
169
148
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
|
170
149
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
|
171
150
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
|
172
151
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
173
152
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
|
153
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
|
174
154
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
|
175
155
|
<RunnerSettings RunnerId="RubyRunner" />
|
|
176
156
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
177
157
|
<method />
|
|
178
158
|
</configuration>
|
|
159
|
+
<configuration default="false" name="payment_gateway" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
|
|
160
|
+
<module name="webmock_method" />
|
|
161
|
+
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
162
|
+
<RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/spec/stubs" />
|
|
163
|
+
<RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
164
|
+
<RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
165
|
+
<RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
|
|
166
|
+
<envs />
|
|
167
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
|
168
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
169
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
170
|
+
<COVERAGE_PATTERN ENABLED="true">
|
|
171
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
172
|
+
</COVERAGE_PATTERN>
|
|
173
|
+
</EXTENSION>
|
|
174
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
175
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/stubs/payment_gateway.rb" />
|
|
176
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
|
|
177
|
+
<RunnerSettings RunnerId="RubyDebugRunner" />
|
|
178
|
+
<RunnerSettings RunnerId="RubyRunner" />
|
|
179
|
+
<ConfigurationWrapper RunnerId="RubyDebugRunner" />
|
|
180
|
+
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
181
|
+
<method />
|
|
182
|
+
</configuration>
|
|
179
183
|
</component>
|
|
180
184
|
<component name="NewModuleRootManager">
|
|
181
185
|
<content url="file://$MODULE_DIR$/../docs" />
|
|
182
186
|
<content url="file://$MODULE_DIR$" />
|
|
183
|
-
<orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-
|
|
187
|
+
<orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-p545 [webmock_method]" jdkType="RUBY_SDK" />
|
|
184
188
|
<orderEntry type="sourceFolder" forTests="false" />
|
|
185
|
-
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.3.5, RVM: ruby-1.9.3-
|
|
186
|
-
<orderEntry type="library" scope="PROVIDED" name="awesome_print (v1.2.0, RVM: ruby-1.9.3-
|
|
187
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.3
|
|
188
|
-
<orderEntry type="library" scope="PROVIDED" name="crack (v0.4.
|
|
189
|
-
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.
|
|
190
|
-
<orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.7, RVM: ruby-1.9.3-
|
|
191
|
-
<orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-
|
|
192
|
-
<orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.1.2, RVM: ruby-1.9.3-
|
|
193
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
194
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
195
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
196
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
197
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
198
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec
|
|
199
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-
|
|
200
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
201
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
202
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
|
189
|
+
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.3.5, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
190
|
+
<orderEntry type="library" scope="PROVIDED" name="awesome_print (v1.2.0, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
191
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.5.3, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
192
|
+
<orderEntry type="library" scope="PROVIDED" name="crack (v0.4.2, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
193
|
+
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.5, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
194
|
+
<orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.7, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
195
|
+
<orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
196
|
+
<orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.1.2, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
197
|
+
<orderEntry type="library" scope="PROVIDED" name="haml (v4.0.5, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
198
|
+
<orderEntry type="library" scope="PROVIDED" name="json_pure (v1.8.1, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
199
|
+
<orderEntry type="library" scope="PROVIDED" name="meta_methods (v1.1.0, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
200
|
+
<orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.4, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
201
|
+
<orderEntry type="library" scope="PROVIDED" name="mocha (v1.0.0, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
202
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec (v2.14.1, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
203
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v2.14.8, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
204
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v2.14.5, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
205
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v2.14.6, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
206
|
+
<orderEntry type="library" scope="PROVIDED" name="safe_yaml (v1.0.1, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
207
|
+
<orderEntry type="library" scope="PROVIDED" name="tilt (v2.0.1, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
208
|
+
<orderEntry type="library" scope="PROVIDED" name="webmock (v1.17.4, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
209
|
+
<orderEntry type="library" scope="PROVIDED" name="xml-simple (v1.1.3, RVM: ruby-1.9.3-p545 [webmock_method]) [gem]" level="application" />
|
|
203
210
|
</component>
|
|
204
211
|
</module>
|
|
205
212
|
|
data/CHANGES
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -27,7 +27,7 @@ require 'webmock'
|
|
|
27
27
|
|
|
28
28
|
WebMock.stub_request(:any, "www.example.com").to_return(:body => "some body")
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
expect(Net::HTTP.get("www.example.com", "/")).to eq "some body"
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
It will stub all http verbs (GET, POST, PUT etc.) thanks to **:any** parameter.
|
|
@@ -80,8 +80,8 @@ require 'services/open_weather_map_service.rb'
|
|
|
80
80
|
class OpenWeatherMapService
|
|
81
81
|
extend WebmockMethod
|
|
82
82
|
|
|
83
|
-
webmock_method :quote, [:location, :units], lambda { |
|
|
84
|
-
|
|
83
|
+
webmock_method :quote, [:location, :units], lambda { |_|
|
|
84
|
+
File.open "#{File.dirname(__FILE__)}/stubs/templates/quote_response.json.erb"
|
|
85
85
|
}, /#{WebmockMethod.url}/
|
|
86
86
|
end
|
|
87
87
|
```
|
|
@@ -94,19 +94,19 @@ end
|
|
|
94
94
|
* **url** to remote service (optional).
|
|
95
95
|
|
|
96
96
|
You can build responses of arbitrary complexity with your own code or you can use **RenderHelper**, that comes with this
|
|
97
|
-
gem. Currently it supports
|
|
97
|
+
gem. Currently it supports **erb** renderer only. Here is example of how to build xml response:
|
|
98
98
|
|
|
99
99
|
```ruby
|
|
100
100
|
webmock_method :purchase, [:amount, :credit_card], lambda { |binding|
|
|
101
|
-
RenderHelper.render :
|
|
101
|
+
RenderHelper.render :erb, "#{File.dirname(__FILE__)}/templates/purchase_response.xml.erb", binding
|
|
102
102
|
}
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
It's possible to tweak your response on the fly:
|
|
106
106
|
|
|
107
107
|
```ruby
|
|
108
108
|
webmock_method :purchase, [:amount, :credit_card], lambda { |binding|
|
|
109
|
-
RenderHelper.render :
|
|
109
|
+
RenderHelper.render :erb, "#{File.dirname(__FILE__)}/templates/purchase_response.xml.erb", binding
|
|
110
110
|
} do |parent, _, credit_card|
|
|
111
111
|
if credit_card.card_type == "VISA"
|
|
112
112
|
define_attribute(parent, :success, true)
|
|
@@ -117,7 +117,7 @@ You can tweak you response on the fly:
|
|
|
117
117
|
end
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
and then, use
|
|
120
|
+
and then, use newly defined attributes, such as **success** and **error_message** inside your template:
|
|
121
121
|
|
|
122
122
|
```xml
|
|
123
123
|
<!-- stubs/templates/purchase_response.xml.erb -->
|
|
@@ -130,7 +130,7 @@ and then, use new defined attributes, such as **success** and **error_message**
|
|
|
130
130
|
</PurchaseResponse>
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
-
**url** parameter is optional. If you don't specify it,
|
|
133
|
+
**url** parameter is optional. If you don't specify it, gem will try to use **url** attribute defined
|
|
134
134
|
on your service or you can define **url** parameter for WebmockMethod:
|
|
135
135
|
|
|
136
136
|
```ruby
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
require 'erb'
|
|
2
|
+
require 'haml'
|
|
2
3
|
|
|
3
4
|
module RenderHelper
|
|
4
5
|
extend self
|
|
5
6
|
|
|
6
7
|
def render format, template, binding
|
|
7
|
-
body =
|
|
8
|
+
body = File.read(template)
|
|
8
9
|
|
|
9
10
|
case format
|
|
10
|
-
when :
|
|
11
|
-
body
|
|
12
|
-
when :xml
|
|
11
|
+
when :erb
|
|
13
12
|
ERB.new(body).result binding
|
|
13
|
+
when :haml
|
|
14
|
+
Haml::Engine.new(body).render binding
|
|
14
15
|
else
|
|
15
|
-
|
|
16
|
+
body
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
|
-
end
|
|
19
|
+
end
|
|
@@ -1,35 +1,43 @@
|
|
|
1
1
|
require 'webmock'
|
|
2
|
-
require 'meta_methods
|
|
2
|
+
require 'meta_methods'
|
|
3
3
|
|
|
4
4
|
module WebmockMethod
|
|
5
|
-
include MetaMethods
|
|
5
|
+
include MetaMethods::Core
|
|
6
|
+
|
|
7
|
+
extend self
|
|
6
8
|
|
|
7
9
|
class << self
|
|
8
10
|
attr_accessor :url
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
def webmock_method(method_name, param_names, response_proc, url = nil)
|
|
14
|
+
object = self
|
|
15
|
+
|
|
12
16
|
define_method("#{method_name}_with_webmock_method") do |*args|
|
|
13
17
|
param_names.each_with_index do |param_name, index|
|
|
14
|
-
|
|
18
|
+
object.define_attribute(self, param_name, args[index])
|
|
15
19
|
end
|
|
16
20
|
|
|
17
21
|
yield(self, *args) if block_given?
|
|
18
22
|
|
|
19
23
|
begin
|
|
20
|
-
response = response_proc.call(binding)
|
|
21
|
-
|
|
22
24
|
request_url = url
|
|
23
|
-
request_url = @url if
|
|
25
|
+
request_url = @url if request_url.nil?
|
|
24
26
|
request_url = WebmockMethod.url if request_url.nil?
|
|
25
27
|
|
|
26
28
|
throw "Url is not defined." unless request_url
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
if defined?(error)
|
|
31
|
+
WebMock.stub_request(:any, request_url).to_raise(error)
|
|
32
|
+
else
|
|
33
|
+
response = response_proc.call(binding)
|
|
34
|
+
|
|
35
|
+
WebMock.stub_request(:any, request_url).to_return(:body => response)
|
|
36
|
+
end
|
|
29
37
|
|
|
30
38
|
send("#{method_name}_without_webmock_method", *args)
|
|
31
39
|
rescue Exception => e
|
|
32
|
-
puts e.message
|
|
40
|
+
# puts e.message
|
|
33
41
|
raise e
|
|
34
42
|
ensure
|
|
35
43
|
WebMock.reset!
|
|
@@ -26,13 +26,16 @@ require 'json'
|
|
|
26
26
|
class OpenWeatherMapService
|
|
27
27
|
extend WebmockMethod
|
|
28
28
|
|
|
29
|
-
webmock_method :quote, [:location, :units], lambda { |
|
|
30
|
-
|
|
29
|
+
webmock_method :quote, [:location, :units], lambda { |_|
|
|
30
|
+
File.open "#{File.dirname(__FILE__)}/stubs/templates/quote_response.json.erb"
|
|
31
31
|
}, /#{WebmockMethod.url}/
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
# 3. Test service mock
|
|
35
35
|
|
|
36
|
+
# Make sure we don't hit external service: when stub is commented, test should fail
|
|
37
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
|
38
|
+
|
|
36
39
|
describe OpenWeatherMapService do
|
|
37
40
|
describe "#quote" do
|
|
38
41
|
it "gets the quote" do
|
|
@@ -17,6 +17,10 @@ describe PaymentGateway do
|
|
|
17
17
|
expect(response['success'][0]).to eq('false')
|
|
18
18
|
expect(response['error_message'][0]).to eq('Unsupported Credit Card Type')
|
|
19
19
|
end
|
|
20
|
+
|
|
21
|
+
it "returns error response if amount is negative" do
|
|
22
|
+
expect{subject.purchase(-1000, valid_credit_card)}.to raise_exception(Exception)
|
|
23
|
+
end
|
|
20
24
|
end
|
|
21
25
|
|
|
22
26
|
private
|
data/spec/spec_helper.rb
CHANGED
|
@@ -5,9 +5,13 @@ require "services/payment_gateway.rb"
|
|
|
5
5
|
class PaymentGateway
|
|
6
6
|
extend WebmockMethod
|
|
7
7
|
|
|
8
|
-
webmock_method :purchase, [:amount, :credit_card],
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
webmock_method :purchase, [:amount, :credit_card],
|
|
9
|
+
lambda { |binding|
|
|
10
|
+
template = "#{File.dirname(__FILE__)}/templates/purchase_response.xml.erb"
|
|
11
|
+
RenderHelper.render :erb, template, binding
|
|
12
|
+
} do |parent, amount, credit_card|
|
|
13
|
+
define_attribute(parent, :error, create_error(parent, "Negative amount")) if amount < 0
|
|
14
|
+
|
|
11
15
|
if credit_card.card_type == "VISA"
|
|
12
16
|
define_attribute(parent, :success, true)
|
|
13
17
|
else
|
|
@@ -16,4 +20,8 @@ class PaymentGateway
|
|
|
16
20
|
end
|
|
17
21
|
end
|
|
18
22
|
|
|
23
|
+
def self.create_error parent, reason
|
|
24
|
+
define_attribute(parent, :error, Exception.new(reason))
|
|
25
|
+
end
|
|
26
|
+
|
|
19
27
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: webmock_method
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Shvets
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2014-03-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: webmock
|
|
@@ -24,6 +24,34 @@ dependencies:
|
|
|
24
24
|
- - ! '>='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: haml
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ! '>='
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ! '>='
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: meta_methods
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ! '>='
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
27
55
|
- !ruby/object:Gem::Dependency
|
|
28
56
|
name: gemspec_deps_gen
|
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -76,12 +104,10 @@ files:
|
|
|
76
104
|
- LICENSE.txt
|
|
77
105
|
- README.md
|
|
78
106
|
- Rakefile
|
|
79
|
-
- lib/meta_methods/meta_methods.rb
|
|
80
107
|
- lib/webmock_method.rb
|
|
81
108
|
- lib/webmock_method/render_helper.rb
|
|
82
109
|
- lib/webmock_method/version.rb
|
|
83
110
|
- lib/webmock_method/webmock_method.rb
|
|
84
|
-
- spec/meta_methods_spec.rb
|
|
85
111
|
- spec/open_weather_map_service_spec.rb
|
|
86
112
|
- spec/payment_gateway_spec.rb
|
|
87
113
|
- spec/services/payment_gateway.rb
|
|
@@ -111,12 +137,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
111
137
|
version: '0'
|
|
112
138
|
requirements: []
|
|
113
139
|
rubyforge_project:
|
|
114
|
-
rubygems_version: 2.
|
|
140
|
+
rubygems_version: 2.2.2
|
|
115
141
|
signing_key:
|
|
116
142
|
specification_version: 4
|
|
117
143
|
summary: Extension for webmock to make stubbed methods.
|
|
118
144
|
test_files:
|
|
119
|
-
- spec/meta_methods_spec.rb
|
|
120
145
|
- spec/open_weather_map_service_spec.rb
|
|
121
146
|
- spec/payment_gateway_spec.rb
|
|
122
147
|
- spec/services/payment_gateway.rb
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
module MetaMethods
|
|
2
|
-
extend self
|
|
3
|
-
|
|
4
|
-
def define_attribute(object, key, value)
|
|
5
|
-
object.singleton_class.send :attr_accessor, key.to_sym # creates accessor
|
|
6
|
-
|
|
7
|
-
object.send "#{key}=".to_sym, value # sets up value for attribute
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def define_attributes(object, hash)
|
|
11
|
-
hash.each_pair do |key, value|
|
|
12
|
-
define_attribute(object, key, value)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
data/spec/meta_methods_spec.rb
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
require 'meta_methods/meta_methods'
|
|
2
|
-
|
|
3
|
-
describe MetaMethods do
|
|
4
|
-
subject { MetaMethods }
|
|
5
|
-
|
|
6
|
-
describe "#define_attribute" do
|
|
7
|
-
it "creates new attribute on object" do
|
|
8
|
-
object = Object.new
|
|
9
|
-
|
|
10
|
-
subject.define_attribute object, :new_attribute, "new_attribute_value"
|
|
11
|
-
|
|
12
|
-
expect(object.new_attribute).to eq("new_attribute_value")
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
describe "#define_attributes" do
|
|
17
|
-
it "creates new attributes on object" do
|
|
18
|
-
object = Object.new
|
|
19
|
-
|
|
20
|
-
subject.define_attributes object,
|
|
21
|
-
{new_attribute1: "new_attribute_value1",
|
|
22
|
-
new_attribute2: "new_attribute_value2" }
|
|
23
|
-
|
|
24
|
-
expect(object.new_attribute1).to eq("new_attribute_value1")
|
|
25
|
-
expect(object.new_attribute2).to eq("new_attribute_value2")
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|