monri 0.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 +7 -0
- data/CHANGELOG.md +0 -0
- data/Gemfile +24 -0
- data/README.md +1 -0
- data/Rakefile +8 -0
- data/bin/byebug +27 -0
- data/bin/coderay +27 -0
- data/bin/m +27 -0
- data/bin/pry +27 -0
- data/bin/rake +27 -0
- data/bin/rubocop +27 -0
- data/bin/ruby-parse +27 -0
- data/bin/ruby-rewrite +27 -0
- data/extensions/x86_64-darwin-19/2.6.0/byebug-11.1.3/byebug/byebug.bundle +0 -0
- data/extensions/x86_64-darwin-19/2.6.0/byebug-11.1.3/gem.build_complete +0 -0
- data/extensions/x86_64-darwin-19/2.6.0/byebug-11.1.3/gem_make.out +1043 -0
- data/extensions/x86_64-darwin-19/2.6.0/jaro_winkler-1.5.4/gem.build_complete +0 -0
- data/extensions/x86_64-darwin-19/2.6.0/jaro_winkler-1.5.4/gem_make.out +235 -0
- data/extensions/x86_64-darwin-19/2.6.0/jaro_winkler-1.5.4/jaro_winkler/jaro_winkler_ext.bundle +0 -0
- data/lib/monri/access_tokens.rb +26 -0
- data/lib/monri/api_http_response.rb +50 -0
- data/lib/monri/client.rb +87 -0
- data/lib/monri/config.rb +44 -0
- data/lib/monri/customers.rb +24 -0
- data/lib/monri/errors.rb +23 -0
- data/lib/monri/http_client.rb +57 -0
- data/lib/monri/payment_methods.rb +26 -0
- data/lib/monri/payments.rb +46 -0
- data/lib/monri/response.rb +45 -0
- data/lib/monri/transaction.rb +14 -0
- data/lib/monri.rb +23 -0
- data/monri.gemspec +37 -0
- data/specifications/addressable-2.8.1.gemspec +40 -0
- data/specifications/ast-2.4.2.gemspec +50 -0
- data/specifications/byebug-11.1.3.gemspec +39 -0
- data/specifications/coderay-1.1.3.gemspec +25 -0
- data/specifications/crack-0.4.5.gemspec +32 -0
- data/specifications/hashdiff-1.0.1.gemspec +46 -0
- data/specifications/jaro_winkler-1.5.4.gemspec +44 -0
- data/specifications/m-1.6.0.gemspec +49 -0
- data/specifications/metaclass-0.0.4.gemspec +19 -0
- data/specifications/method_source-1.0.0.gemspec +35 -0
- data/specifications/minitest-5.16.2.gemspec +41 -0
- data/specifications/mocha-0.13.3.gemspec +43 -0
- data/specifications/parallel-1.22.1.gemspec +21 -0
- data/specifications/parser-3.1.2.1.gemspec +63 -0
- data/specifications/power_assert-2.0.2.gemspec +54 -0
- data/specifications/pry-0.14.1.gemspec +39 -0
- data/specifications/pry-byebug-3.8.0.gemspec +38 -0
- data/specifications/public_suffix-5.0.0.gemspec +24 -0
- data/specifications/rack-3.0.0.gemspec +45 -0
- data/specifications/rainbow-3.1.1.gemspec +33 -0
- data/specifications/rake-13.0.6.gemspec +26 -0
- data/specifications/rexml-3.2.5.gemspec +42 -0
- data/specifications/rubocop-0.80.0.gemspec +59 -0
- data/specifications/ruby-progressbar-1.11.0.gemspec +43 -0
- data/specifications/test-unit-3.5.5.gemspec +48 -0
- data/specifications/unicode-display_width-1.6.1.gemspec +39 -0
- data/specifications/webmock-3.18.1.gemspec +85 -0
- metadata +115 -0
File without changes
|
@@ -0,0 +1,235 @@
|
|
1
|
+
current directory: /Users/jasminsuljic/developing/monri/ruby-sdk-monri/gems/jaro_winkler-1.5.4/ext/jaro_winkler
|
2
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/bin/ruby -I /Users/jasminsuljic/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20221114-79509-guebjb.rb extconf.rb
|
3
|
+
creating Makefile
|
4
|
+
|
5
|
+
current directory: /Users/jasminsuljic/developing/monri/ruby-sdk-monri/gems/jaro_winkler-1.5.4/ext/jaro_winkler
|
6
|
+
make "DESTDIR=" clean
|
7
|
+
|
8
|
+
current directory: /Users/jasminsuljic/developing/monri/ruby-sdk-monri/gems/jaro_winkler-1.5.4/ext/jaro_winkler
|
9
|
+
make "DESTDIR="
|
10
|
+
compiling adj_matrix.c
|
11
|
+
compiling codepoints.c
|
12
|
+
compiling jaro.c
|
13
|
+
compiling jaro_winkler.c
|
14
|
+
jaro_winkler.c:37:45: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
15
|
+
VALUE weight = rb_hash_aref(opt, ID2SYM(rb_intern("weight"))),
|
16
|
+
^~~~~~~~~~~~~~~~~~~
|
17
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
|
18
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
19
|
+
^
|
20
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
21
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
22
|
+
^
|
23
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
24
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
25
|
+
^
|
26
|
+
jaro_winkler.c:37:45: note: '{' token is here
|
27
|
+
VALUE weight = rb_hash_aref(opt, ID2SYM(rb_intern("weight"))),
|
28
|
+
^~~~~~~~~~~~~~~~~~~
|
29
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
30
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
31
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
32
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
33
|
+
{ \
|
34
|
+
^
|
35
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
36
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
37
|
+
^
|
38
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
39
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
40
|
+
^
|
41
|
+
jaro_winkler.c:37:45: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
42
|
+
VALUE weight = rb_hash_aref(opt, ID2SYM(rb_intern("weight"))),
|
43
|
+
^~~~~~~~~~~~~~~~~~~
|
44
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
45
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
46
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
47
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
48
|
+
}
|
49
|
+
^
|
50
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
51
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
52
|
+
^
|
53
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
54
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
55
|
+
^
|
56
|
+
jaro_winkler.c:37:45: note: ')' token is here
|
57
|
+
VALUE weight = rb_hash_aref(opt, ID2SYM(rb_intern("weight"))),
|
58
|
+
^~~~~~~~~~~~~~~~~~~
|
59
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
|
60
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
61
|
+
^
|
62
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
63
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
64
|
+
^
|
65
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
66
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
67
|
+
^
|
68
|
+
jaro_winkler.c:38:48: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
69
|
+
threshold = rb_hash_aref(opt, ID2SYM(rb_intern("threshold"))),
|
70
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
71
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
|
72
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
73
|
+
^
|
74
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
75
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
76
|
+
^
|
77
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
78
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
79
|
+
^
|
80
|
+
jaro_winkler.c:38:48: note: '{' token is here
|
81
|
+
threshold = rb_hash_aref(opt, ID2SYM(rb_intern("threshold"))),
|
82
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
83
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
84
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
85
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
86
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
87
|
+
{ \
|
88
|
+
^
|
89
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
90
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
91
|
+
^
|
92
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
93
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
94
|
+
^
|
95
|
+
jaro_winkler.c:38:48: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
96
|
+
threshold = rb_hash_aref(opt, ID2SYM(rb_intern("threshold"))),
|
97
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
98
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
99
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
100
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
101
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
102
|
+
}
|
103
|
+
^
|
104
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
105
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
106
|
+
^
|
107
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
108
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
109
|
+
^
|
110
|
+
jaro_winkler.c:38:48: note: ')' token is here
|
111
|
+
threshold = rb_hash_aref(opt, ID2SYM(rb_intern("threshold"))),
|
112
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
113
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
|
114
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
115
|
+
^
|
116
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
117
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
118
|
+
^
|
119
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
120
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
121
|
+
^
|
122
|
+
jaro_winkler.c:39:50: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
123
|
+
ignore_case = rb_hash_aref(opt, ID2SYM(rb_intern("ignore_case"))),
|
124
|
+
^~~~~~~~~~~~~~~~~~~~~~~~
|
125
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
|
126
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
127
|
+
^
|
128
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
129
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
130
|
+
^
|
131
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
132
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
133
|
+
^
|
134
|
+
jaro_winkler.c:39:50: note: '{' token is here
|
135
|
+
ignore_case = rb_hash_aref(opt, ID2SYM(rb_intern("ignore_case"))),
|
136
|
+
^~~~~~~~~~~~~~~~~~~~~~~~
|
137
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
138
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
139
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
140
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
141
|
+
{ \
|
142
|
+
^
|
143
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
144
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
145
|
+
^
|
146
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
147
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
148
|
+
^
|
149
|
+
jaro_winkler.c:39:50: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
150
|
+
ignore_case = rb_hash_aref(opt, ID2SYM(rb_intern("ignore_case"))),
|
151
|
+
^~~~~~~~~~~~~~~~~~~~~~~~
|
152
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
153
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
154
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
155
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
156
|
+
}
|
157
|
+
^
|
158
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
159
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
160
|
+
^
|
161
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
162
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
163
|
+
^
|
164
|
+
jaro_winkler.c:39:50: note: ')' token is here
|
165
|
+
ignore_case = rb_hash_aref(opt, ID2SYM(rb_intern("ignore_case"))),
|
166
|
+
^~~~~~~~~~~~~~~~~~~~~~~~
|
167
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
|
168
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
169
|
+
^
|
170
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
171
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
172
|
+
^
|
173
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
174
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
175
|
+
^
|
176
|
+
jaro_winkler.c:40:48: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
177
|
+
adj_table = rb_hash_aref(opt, ID2SYM(rb_intern("adj_table")));
|
178
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
179
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:23: note: expanded from macro 'rb_intern'
|
180
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
181
|
+
^
|
182
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
183
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
184
|
+
^
|
185
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
186
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
187
|
+
^
|
188
|
+
jaro_winkler.c:40:48: note: '{' token is here
|
189
|
+
adj_table = rb_hash_aref(opt, ID2SYM(rb_intern("adj_table")));
|
190
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
191
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
192
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
193
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
194
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1811:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
195
|
+
{ \
|
196
|
+
^
|
197
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
198
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
199
|
+
^
|
200
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
201
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
202
|
+
^
|
203
|
+
jaro_winkler.c:40:48: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
|
204
|
+
adj_table = rb_hash_aref(opt, ID2SYM(rb_intern("adj_table")));
|
205
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
206
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:24: note: expanded from macro 'rb_intern'
|
207
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
208
|
+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
209
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1816:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
|
210
|
+
}
|
211
|
+
^
|
212
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
213
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
214
|
+
^
|
215
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
216
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
217
|
+
^
|
218
|
+
jaro_winkler.c:40:48: note: ')' token is here
|
219
|
+
adj_table = rb_hash_aref(opt, ID2SYM(rb_intern("adj_table")));
|
220
|
+
^~~~~~~~~~~~~~~~~~~~~~
|
221
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:1826:56: note: expanded from macro 'rb_intern'
|
222
|
+
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
|
223
|
+
^
|
224
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:413:29: note: expanded from macro 'ID2SYM'
|
225
|
+
#define ID2SYM(x) RB_ID2SYM(x)
|
226
|
+
^
|
227
|
+
/Users/jasminsuljic/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/ruby.h:408:33: note: expanded from macro 'RB_ID2SYM'
|
228
|
+
#define RB_ID2SYM(x) (rb_id2sym(x))
|
229
|
+
^
|
230
|
+
8 warnings generated.
|
231
|
+
linking shared-object jaro_winkler/jaro_winkler_ext.bundle
|
232
|
+
|
233
|
+
current directory: /Users/jasminsuljic/developing/monri/ruby-sdk-monri/gems/jaro_winkler-1.5.4/ext/jaro_winkler
|
234
|
+
make "DESTDIR=" install
|
235
|
+
/usr/bin/install -c -m 0755 jaro_winkler_ext.bundle ./.gem.20221114-79509-56od1p/jaro_winkler
|
data/extensions/x86_64-darwin-19/2.6.0/jaro_winkler-1.5.4/jaro_winkler/jaro_winkler_ext.bundle
ADDED
Binary file
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Monri
|
2
|
+
class AccessTokens
|
3
|
+
|
4
|
+
# @return [Monri::Config]
|
5
|
+
attr_accessor :config
|
6
|
+
|
7
|
+
# @return [Monri::HttpClient]
|
8
|
+
attr_writer :http_client
|
9
|
+
|
10
|
+
def create(options)
|
11
|
+
body = {
|
12
|
+
client_id: config.authenticity_token,
|
13
|
+
client_secret: config.merchant_key,
|
14
|
+
grant_type: 'client_credentials',
|
15
|
+
scopes: options.delete(:scopes) || []
|
16
|
+
}
|
17
|
+
response = @http_client.post('/v2/oauth', body)
|
18
|
+
# TODO: do we set exception?
|
19
|
+
if response.success?
|
20
|
+
response.body
|
21
|
+
else
|
22
|
+
# TODO: handle this case
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Monri
|
2
|
+
class ApiHttpResponse
|
3
|
+
|
4
|
+
# @return [Hash]
|
5
|
+
attr_reader :body
|
6
|
+
# @return [String]
|
7
|
+
attr_reader :response_body
|
8
|
+
# @return [Integer]
|
9
|
+
attr_reader :code
|
10
|
+
# @return [Hash]
|
11
|
+
attr_reader :headers
|
12
|
+
# @return [Exception]
|
13
|
+
attr_reader :exception
|
14
|
+
|
15
|
+
# @param [Net::HTTPResponse] response
|
16
|
+
# @return [Monri::ApiHttpResponse]
|
17
|
+
def from_net(response)
|
18
|
+
|
19
|
+
@code = response.code.to_i
|
20
|
+
@headers = response.each_header.to_h
|
21
|
+
@response_body = response.body
|
22
|
+
@body = begin
|
23
|
+
JSON.parse(response.body, symbolize_names: true)
|
24
|
+
rescue
|
25
|
+
@exception = create_exception('JSON parsing failed')
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
unless success?
|
29
|
+
@exception = create_exception("Request failed, got status code=#{code}")
|
30
|
+
end
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
def success?
|
35
|
+
exception == nil && code >= 200 && code < 300
|
36
|
+
end
|
37
|
+
|
38
|
+
def failed?
|
39
|
+
exception != nil
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
# @param [String] message
|
45
|
+
def create_exception(message)
|
46
|
+
Monri::Errors::HttpRequestError.new(message, code: @code, body: @response_body, headers: @headers)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
data/lib/monri/client.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'forwardable'
|
4
|
+
module Monri
|
5
|
+
class Client
|
6
|
+
extend Forwardable
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@config = Monri::Config.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def_delegators :@config, :merchant_key, :authenticity_token, :environment
|
13
|
+
def_delegators :@config, :merchant_key=, :authenticity_token=, :environment=
|
14
|
+
|
15
|
+
# @return [Monri::Payments]
|
16
|
+
def payments
|
17
|
+
@payments ||= create_payment_api
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Monri::AccessTokens]
|
21
|
+
def access_tokens
|
22
|
+
@access_tokens ||= create_access_tokens_api
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Monri::Customers]
|
26
|
+
def customers
|
27
|
+
@customers ||= create_customers_api
|
28
|
+
end
|
29
|
+
|
30
|
+
# @return [Monri::PaymentMethods]
|
31
|
+
def payment_methods
|
32
|
+
@payment_methods ||= create_payment_methods_api
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def ensure_config_set!
|
38
|
+
unless @config.configured?
|
39
|
+
raise Monri::Config::InvalidConfiguration, 'Configuration is not set! Did you call .merchant_key=merchant_key, .authenticity_token=authenticity_token, .environment=environment'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def http_client
|
44
|
+
if @http_client == nil
|
45
|
+
@http_client = Monri::HttpClient.new
|
46
|
+
@http_client.config = @config
|
47
|
+
end
|
48
|
+
|
49
|
+
@http_client
|
50
|
+
end
|
51
|
+
|
52
|
+
def create_customers_api
|
53
|
+
ensure_config_set!
|
54
|
+
rv = Monri::Customers.new
|
55
|
+
rv.config = @config
|
56
|
+
rv.http_client = http_client
|
57
|
+
rv.access_tokens = access_tokens
|
58
|
+
rv
|
59
|
+
end
|
60
|
+
|
61
|
+
def create_access_tokens_api
|
62
|
+
ensure_config_set!
|
63
|
+
rv = Monri::AccessTokens.new
|
64
|
+
rv.config = @config
|
65
|
+
rv.http_client = http_client
|
66
|
+
rv
|
67
|
+
end
|
68
|
+
|
69
|
+
def create_payment_api
|
70
|
+
ensure_config_set!
|
71
|
+
rv = Monri::Payments.new
|
72
|
+
rv.config = @config
|
73
|
+
rv.http_client = http_client
|
74
|
+
rv.access_tokens = access_tokens
|
75
|
+
rv
|
76
|
+
end
|
77
|
+
|
78
|
+
def create_payment_methods_api
|
79
|
+
ensure_config_set!
|
80
|
+
rv = Monri::PaymentMethods.new
|
81
|
+
rv.config = @config
|
82
|
+
rv.http_client = http_client
|
83
|
+
rv.access_tokens = access_tokens
|
84
|
+
rv
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/lib/monri/config.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Monri
|
4
|
+
class Config
|
5
|
+
attr_accessor :merchant_key
|
6
|
+
attr_accessor :authenticity_token
|
7
|
+
|
8
|
+
SUPPORTED_ENVS = %w[test production].freeze
|
9
|
+
|
10
|
+
# @return [String]
|
11
|
+
def base_api_url
|
12
|
+
if environment == 'test'
|
13
|
+
'https://ipgtest.monri.com'
|
14
|
+
elsif environment == 'production'
|
15
|
+
'https://ipg.monri.com'
|
16
|
+
else
|
17
|
+
raise ArgumentError, "Environment=#{environment} not supported"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.default_config
|
22
|
+
rv = Config.new
|
23
|
+
rv.environment = :test
|
24
|
+
rv
|
25
|
+
end
|
26
|
+
|
27
|
+
attr_reader :environment
|
28
|
+
|
29
|
+
def environment=(val)
|
30
|
+
val = val.nil? ? nil : val.to_s
|
31
|
+
unless SUPPORTED_ENVS.include?(val)
|
32
|
+
raise Monri::Config::InvalidConfiguration, "Environment='#{val}' is not supported environment"
|
33
|
+
end
|
34
|
+
|
35
|
+
@environment = val
|
36
|
+
end
|
37
|
+
|
38
|
+
def configured?
|
39
|
+
!merchant_key.nil? && !authenticity_token.nil? && !environment.nil?
|
40
|
+
end
|
41
|
+
|
42
|
+
class InvalidConfiguration < StandardError; end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Monri
|
2
|
+
class Customers
|
3
|
+
# @return [Monri::Config]
|
4
|
+
attr_accessor :config
|
5
|
+
# @return [Monri::HttpClient]
|
6
|
+
attr_writer :http_client
|
7
|
+
# @return [Monri::AccessTokens]
|
8
|
+
attr_writer :access_tokens
|
9
|
+
|
10
|
+
# @param [Hash] options
|
11
|
+
def create(options)
|
12
|
+
access_token = @access_tokens.create(scopes: ['customers'])[:access_token]
|
13
|
+
response = @http_client.post('/v2/customers', options, headers: { 'Authorization' => "Bearer #{access_token}" })
|
14
|
+
if response.success?
|
15
|
+
response.body
|
16
|
+
else
|
17
|
+
# TODO: handle this case
|
18
|
+
end
|
19
|
+
rescue StandardError => e
|
20
|
+
# TODO: handle this case
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/monri/errors.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Monri
|
2
|
+
module Errors
|
3
|
+
class HttpRequestError < StandardError
|
4
|
+
|
5
|
+
# @return [Integer]
|
6
|
+
attr_reader :code
|
7
|
+
# @return [String, NilClass]
|
8
|
+
attr_reader :body
|
9
|
+
|
10
|
+
# @return [Hash]
|
11
|
+
attr_reader :headers
|
12
|
+
|
13
|
+
# @param [String] message
|
14
|
+
# @param [Hash] options
|
15
|
+
def initialize(message, options)
|
16
|
+
super(message)
|
17
|
+
@code = options.delete(:code) || 500
|
18
|
+
@body = options.delete(:body)
|
19
|
+
@headers = options.delete(:headers)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Monri
|
2
|
+
class HttpClient
|
3
|
+
|
4
|
+
# @return [Monri::Config]
|
5
|
+
attr_accessor :config
|
6
|
+
|
7
|
+
# @param [String] url
|
8
|
+
# @param [Hash] options
|
9
|
+
# @return [Monri::ApiHttpResponse]
|
10
|
+
def get(url, options = {})
|
11
|
+
# TODO: validate
|
12
|
+
uri = build_url(url)
|
13
|
+
req_headers = options.delete(:headers) || {}
|
14
|
+
headers = {
|
15
|
+
'Accept': 'application/json',
|
16
|
+
'x-request-id': SecureRandom.hex
|
17
|
+
}.merge(req_headers)
|
18
|
+
# Create the HTTP objects
|
19
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
20
|
+
http.use_ssl = true
|
21
|
+
request = Net::HTTP::Get.new(uri.request_uri, headers)
|
22
|
+
# Send the request
|
23
|
+
response = http.request(request)
|
24
|
+
ApiHttpResponse.new.from_net(response)
|
25
|
+
end
|
26
|
+
|
27
|
+
# @param [String] url
|
28
|
+
# @param [Hash] body
|
29
|
+
# @param [Hash] options
|
30
|
+
# @return [Monri::ApiHttpResponse]
|
31
|
+
def post(url, body, options = {})
|
32
|
+
# TODO: validate
|
33
|
+
uri = build_url(url)
|
34
|
+
req_headers = options.delete(:headers) || {}
|
35
|
+
headers = {
|
36
|
+
'Content-Type': 'application/json',
|
37
|
+
'Accept': 'application/json',
|
38
|
+
'x-request-id': SecureRandom.hex
|
39
|
+
}.merge(req_headers)
|
40
|
+
# Create the HTTP objects
|
41
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
42
|
+
http.use_ssl = true
|
43
|
+
request = Net::HTTP::Post.new(uri.request_uri, headers)
|
44
|
+
request.body = body.to_json
|
45
|
+
# Send the request
|
46
|
+
response = http.request(request)
|
47
|
+
ApiHttpResponse.new.from_net(response)
|
48
|
+
end
|
49
|
+
|
50
|
+
# @param [String] url
|
51
|
+
# @return [URI]
|
52
|
+
def build_url(url)
|
53
|
+
URI.parse("#{config.base_api_url}#{url}")
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Monri
|
2
|
+
class PaymentMethods
|
3
|
+
# @return [Monri::Config]
|
4
|
+
attr_accessor :config
|
5
|
+
# @return [Monri::HttpClient]
|
6
|
+
attr_writer :http_client
|
7
|
+
|
8
|
+
# @return [Monri::AccessTokens]
|
9
|
+
attr_writer :access_tokens
|
10
|
+
|
11
|
+
# @param [Hash] options
|
12
|
+
def list(options = {})
|
13
|
+
access_token = @access_tokens.create(scopes: ['payment-methods'])[:access_token]
|
14
|
+
response = @http_client.get('/v2/payment-methods', headers: { 'Authorization' => "Bearer #{access_token}" })
|
15
|
+
if response.success?
|
16
|
+
response.body
|
17
|
+
else
|
18
|
+
# TODO: handle this case
|
19
|
+
end
|
20
|
+
|
21
|
+
rescue StandardError => e
|
22
|
+
# TODO: handle this case
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Monri
|
4
|
+
class Payments
|
5
|
+
# @return [Monri::Config]
|
6
|
+
attr_accessor :config
|
7
|
+
# @return [Monri::HttpClient]
|
8
|
+
attr_writer :http_client
|
9
|
+
|
10
|
+
# @return [Monri::AccessTokens]
|
11
|
+
attr_writer :access_tokens
|
12
|
+
|
13
|
+
# @param [Hash] options
|
14
|
+
def create(options)
|
15
|
+
Response.create do
|
16
|
+
access_token = @access_tokens.create(scopes: ['payments'])[:access_token]
|
17
|
+
response = @http_client.post('/v2/payment/new', options, headers: { 'Authorization' => "Bearer #{access_token}" })
|
18
|
+
if response.failed?
|
19
|
+
raise response.exception
|
20
|
+
elsif response.success?
|
21
|
+
response.body
|
22
|
+
else
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# @param [String] id
|
29
|
+
# @return [Response] id
|
30
|
+
def status(id)
|
31
|
+
Response.create do
|
32
|
+
if id.nil? || !id.is_a?(String)
|
33
|
+
raise ArgumentError('Id should be a string')
|
34
|
+
end
|
35
|
+
|
36
|
+
access_token = @access_tokens.create(scopes: ['payments'])[:access_token]
|
37
|
+
response = @http_client.post("/v2/payment/#{id}/status", options, headers: { 'Authorization' => "Bearer #{access_token}" })
|
38
|
+
if response.success?
|
39
|
+
response.body
|
40
|
+
else
|
41
|
+
# TODO: handle this case
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Monri
|
4
|
+
class Response
|
5
|
+
# @return [Object]
|
6
|
+
attr_accessor :result
|
7
|
+
# @return [Exception]
|
8
|
+
attr_accessor :exception
|
9
|
+
|
10
|
+
# @return [Monri::Response]
|
11
|
+
# @param [Object] result
|
12
|
+
def self.result(result)
|
13
|
+
raise ArgumentError, 'Argument result is nil' if result.nil?
|
14
|
+
|
15
|
+
rv = Response.new
|
16
|
+
rv.result = result
|
17
|
+
rv
|
18
|
+
end
|
19
|
+
|
20
|
+
def success?
|
21
|
+
exception == nil
|
22
|
+
end
|
23
|
+
|
24
|
+
def failed?
|
25
|
+
exception != nil
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.create
|
29
|
+
raise ArgumentError, 'Provide a block' unless block_given?
|
30
|
+
|
31
|
+
begin
|
32
|
+
result(yield)
|
33
|
+
rescue StandardError => e
|
34
|
+
exception(e)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# @param [Exception] exception
|
39
|
+
def self.exception(exception)
|
40
|
+
rv = Response.new
|
41
|
+
rv.exception = exception
|
42
|
+
rv
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|