restforce_mock 0.3.0 → 0.4.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 +4 -4
- data/.gitignore +2 -0
- data/.ruby-style.yml +18 -18
- data/CHANGELOG.md +5 -0
- data/README.md +10 -7
- data/lib/restforce_mock.rb +14 -47
- data/lib/restforce_mock/client.rb +67 -0
- data/lib/restforce_mock/configuration.rb +24 -0
- data/lib/restforce_mock/sandbox.rb +2 -17
- data/lib/restforce_mock/schema_manager.rb +57 -0
- data/lib/restforce_mock/version.rb +1 -1
- data/restforce_mock.gemspec +2 -0
- metadata +35 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3ed3598ad940401022ec1701ec1c91b09ca5d09
|
4
|
+
data.tar.gz: c2a68ab7ce505b65bac4e2e2078b302b0a2fa902
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f77758d6bfb940b068b0d0287a7a03846d250ac11fac45dbbe8c08ba6876c5b561f7a484ae1382bf2e5722ad6de3c474c2109e7515060df4bcfa3f39f396c2e
|
7
|
+
data.tar.gz: cc87ac19af54021bdae4298d6669b69d45e7ba884b016f9c760ed7a073f4e28e99b7fcba1a504981f41e21e07d35637e74bef25778bdc232d3d71f2c418ae09f
|
data/.gitignore
CHANGED
data/.ruby-style.yml
CHANGED
@@ -31,7 +31,7 @@ Style/AccessModifierIndentation:
|
|
31
31
|
- indent
|
32
32
|
Style/AlignHash:
|
33
33
|
Description: Align the elements of a hash literal if they span more than one line.
|
34
|
-
Enabled:
|
34
|
+
Enabled: false
|
35
35
|
EnforcedHashRocketStyle: key
|
36
36
|
EnforcedColonStyle: key
|
37
37
|
EnforcedLastArgumentHashStyle: always_inspect
|
@@ -51,7 +51,7 @@ Style/AlignParameters:
|
|
51
51
|
Style/AndOr:
|
52
52
|
Description: Use &&/|| instead of and/or.
|
53
53
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-and-or-or
|
54
|
-
Enabled:
|
54
|
+
Enabled: false
|
55
55
|
EnforcedStyle: always
|
56
56
|
SupportedStyles:
|
57
57
|
- always
|
@@ -66,7 +66,7 @@ Style/BarePercentLiterals:
|
|
66
66
|
- bare_percent
|
67
67
|
Style/BracesAroundHashParameters:
|
68
68
|
Description: Enforce braces style around hash parameters.
|
69
|
-
Enabled:
|
69
|
+
Enabled: true
|
70
70
|
EnforcedStyle: no_braces
|
71
71
|
SupportedStyles:
|
72
72
|
- braces
|
@@ -98,7 +98,7 @@ Style/ClassCheck:
|
|
98
98
|
Style/CollectionMethods:
|
99
99
|
Description: Preferred collection methods.
|
100
100
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
|
101
|
-
Enabled:
|
101
|
+
Enabled: false
|
102
102
|
PreferredMethods:
|
103
103
|
collect: map
|
104
104
|
collect!: map!
|
@@ -138,7 +138,7 @@ Style/EmptyLinesAroundBlockBody:
|
|
138
138
|
- no_empty_lines
|
139
139
|
Style/EmptyLinesAroundClassBody:
|
140
140
|
Description: Keeps track of empty lines around class bodies.
|
141
|
-
Enabled:
|
141
|
+
Enabled: false
|
142
142
|
EnforcedStyle: no_empty_lines
|
143
143
|
SupportedStyles:
|
144
144
|
- empty_lines
|
@@ -211,7 +211,7 @@ Style/IfUnlessModifier:
|
|
211
211
|
Description: Favor modifier if/unless usage when you have a single-line body.
|
212
212
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
|
213
213
|
Enabled: false
|
214
|
-
MaxLineLength:
|
214
|
+
MaxLineLength: 80
|
215
215
|
Style/IndentationWidth:
|
216
216
|
Description: Use 2 spaces for indentation.
|
217
217
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
|
@@ -365,7 +365,7 @@ Style/SingleLineMethods:
|
|
365
365
|
Style/StringLiterals:
|
366
366
|
Description: Checks if uses of quotes match the configured preference.
|
367
367
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
|
368
|
-
Enabled:
|
368
|
+
Enabled: false
|
369
369
|
EnforcedStyle: double_quotes
|
370
370
|
SupportedStyles:
|
371
371
|
- single_quotes
|
@@ -373,14 +373,14 @@ Style/StringLiterals:
|
|
373
373
|
Style/StringLiteralsInInterpolation:
|
374
374
|
Description: Checks if uses of quotes inside expressions in interpolated strings
|
375
375
|
match the configured preference.
|
376
|
-
Enabled:
|
376
|
+
Enabled: false
|
377
377
|
EnforcedStyle: single_quotes
|
378
378
|
SupportedStyles:
|
379
379
|
- single_quotes
|
380
380
|
- double_quotes
|
381
381
|
Style/SpaceAroundBlockParameters:
|
382
382
|
Description: Checks the spacing inside and after block parameters pipes.
|
383
|
-
Enabled:
|
383
|
+
Enabled: false
|
384
384
|
EnforcedStyleInsidePipes: no_space
|
385
385
|
SupportedStyles:
|
386
386
|
- space
|
@@ -405,7 +405,7 @@ Style/SpaceInsideBlockBraces:
|
|
405
405
|
Description: Checks that block braces have or don't have surrounding space. For
|
406
406
|
blocks taking parameters, checks that the left brace has or doesn't have trailing
|
407
407
|
space.
|
408
|
-
Enabled:
|
408
|
+
Enabled: false
|
409
409
|
EnforcedStyle: space
|
410
410
|
SupportedStyles:
|
411
411
|
- space
|
@@ -415,7 +415,7 @@ Style/SpaceInsideBlockBraces:
|
|
415
415
|
Style/SpaceInsideHashLiteralBraces:
|
416
416
|
Description: Use spaces inside hash literal braces - or don't.
|
417
417
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
|
418
|
-
Enabled:
|
418
|
+
Enabled: false
|
419
419
|
EnforcedStyle: space
|
420
420
|
EnforcedStyleForEmptyBraces: no_space
|
421
421
|
SupportedStyles:
|
@@ -599,7 +599,7 @@ Style/InlineComment:
|
|
599
599
|
Style/MethodCalledOnDoEndBlock:
|
600
600
|
Description: Avoid chaining a method call on a do...end block.
|
601
601
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
|
602
|
-
Enabled:
|
602
|
+
Enabled: true
|
603
603
|
Style/SymbolArray:
|
604
604
|
Description: Use %i or %I for arrays of symbols.
|
605
605
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-i
|
@@ -649,7 +649,7 @@ Style/Blocks:
|
|
649
649
|
Description: Avoid using {...} for multi-line blocks (multiline chaining is always
|
650
650
|
ugly). Prefer {...} over do...end for single-line blocks.
|
651
651
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
|
652
|
-
Enabled:
|
652
|
+
Enabled: false
|
653
653
|
Style/CaseEquality:
|
654
654
|
Description: Avoid explicit use of the case equality operator(===).
|
655
655
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-case-equality
|
@@ -782,7 +782,7 @@ Style/MultilineIfThen:
|
|
782
782
|
Style/MultilineTernaryOperator:
|
783
783
|
Description: 'Avoid multi-line ?: (the ternary operator); use if/unless instead.'
|
784
784
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary
|
785
|
-
Enabled:
|
785
|
+
Enabled: false
|
786
786
|
Style/NegatedIf:
|
787
787
|
Description: Favor unless over if for negative conditions (or control flow or).
|
788
788
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#unless-for-negatives
|
@@ -843,7 +843,7 @@ Style/SelfAssignment:
|
|
843
843
|
Style/SingleSpaceBeforeFirstArg:
|
844
844
|
Description: Checks that exactly one space is used between a method name and the
|
845
845
|
first argument for method calls without parentheses.
|
846
|
-
Enabled:
|
846
|
+
Enabled: false
|
847
847
|
Style/SpaceAfterColon:
|
848
848
|
Description: Use spaces after colons.
|
849
849
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
|
@@ -873,7 +873,7 @@ Style/SpaceBeforeComma:
|
|
873
873
|
Enabled: true
|
874
874
|
Style/SpaceBeforeComment:
|
875
875
|
Description: Checks for missing space between code and a comment on the same line.
|
876
|
-
Enabled:
|
876
|
+
Enabled: false
|
877
877
|
Style/SpaceBeforeSemicolon:
|
878
878
|
Description: No spaces before semicolons.
|
879
879
|
Enabled: true
|
@@ -887,11 +887,11 @@ Style/SpaceBeforeModifierKeyword:
|
|
887
887
|
Style/SpaceInsideBrackets:
|
888
888
|
Description: No spaces after [ or before ].
|
889
889
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-spaces-braces
|
890
|
-
Enabled:
|
890
|
+
Enabled: false
|
891
891
|
Style/SpaceInsideParens:
|
892
892
|
Description: No spaces after ( or before ).
|
893
893
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-spaces-braces
|
894
|
-
Enabled:
|
894
|
+
Enabled: false
|
895
895
|
Style/SpaceInsideRangeLiteral:
|
896
896
|
Description: No spaces inside range literals.
|
897
897
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -34,6 +34,16 @@ Restforce::Client = RestforceMock::Client
|
|
34
34
|
|
35
35
|
This will direct all calls to `Restforce` to `RestforceMock`. Test as usual.
|
36
36
|
|
37
|
+
### Configuration
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
RestforceMock.configure do |config|
|
41
|
+
config.schema_file = "spec/fixtures/schema.yml"
|
42
|
+
config.error_on_required = true # raise error if required field is not set
|
43
|
+
config.required_exclusions = [:LastModifiedById ...] # fields that should not be considered required
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
37
47
|
### Mimicking Salesforce data
|
38
48
|
|
39
49
|
To mimic Salesforce database, add some data to the `RestfoceMock` sandbox
|
@@ -55,13 +65,6 @@ after completion of tests make sure to clean up if necessary
|
|
55
65
|
RestforceMock::Sandbox.reset!
|
56
66
|
```
|
57
67
|
|
58
|
-
#### Required fields
|
59
|
-
|
60
|
-
```ruby
|
61
|
-
RestforceMock::Sandbox.add_required(
|
62
|
-
"Object__c", [:Section_Name__c, :Program__c ])
|
63
|
-
```
|
64
|
-
|
65
68
|
## Development
|
66
69
|
|
67
70
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/restforce_mock.rb
CHANGED
@@ -1,56 +1,23 @@
|
|
1
1
|
require "restforce_mock/version"
|
2
|
+
require "restforce_mock/configuration"
|
3
|
+
require "restforce_mock/client"
|
2
4
|
require "restforce_mock/sandbox"
|
3
|
-
require "
|
5
|
+
require "restforce_mock/schema_manager"
|
4
6
|
|
5
7
|
module RestforceMock
|
6
|
-
class
|
7
|
-
|
8
|
-
|
9
|
-
include RestforceMock::Sandbox
|
10
|
-
|
11
|
-
def api_patch(url, attrs)
|
12
|
-
url=~/sobjects\/(.+)\/(.+)/
|
13
|
-
object=$1
|
14
|
-
id=$2
|
15
|
-
validate_presence!(object, id)
|
16
|
-
update_object(object, id, attrs)
|
17
|
-
end
|
18
|
-
|
19
|
-
def api_post(url, attrs)
|
20
|
-
url=~/sobjects\/(.+)/
|
21
|
-
sobject = $1
|
22
|
-
id = SecureRandom.urlsafe_base64(13) #duplicates possible
|
23
|
-
validate_requires!(sobject, attrs)
|
24
|
-
add_object(sobject, id, attrs)
|
25
|
-
return Body.new(id)
|
26
|
-
end
|
27
|
-
|
28
|
-
def validate_requires!(sobject, attrs)
|
29
|
-
return unless RestforceMock::Sandbox.storage[:required][sobject]
|
30
|
-
|
31
|
-
missing = RestforceMock::Sandbox.storage[:required][sobject] - attrs.keys
|
32
|
-
if missing.length > 0
|
33
|
-
raise Faraday::Error::ResourceNotFound.new(
|
34
|
-
"REQUIRED_FIELD_MISSING: Required fields are missing: #{missing}")
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def validate_presence!(object, id)
|
39
|
-
unless RestforceMock::Sandbox.storage[object][id]
|
40
|
-
raise Faraday::Error::ResourceNotFound.new("Provided external ID field does not exist or is not accessible: #{id}")
|
41
|
-
end
|
42
|
-
end
|
8
|
+
class << self
|
9
|
+
attr_writer :configuration
|
10
|
+
end
|
43
11
|
|
44
|
-
|
12
|
+
def self.configuration
|
13
|
+
@configuration ||= RestforceMock::Configuration.new
|
14
|
+
end
|
45
15
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
16
|
+
def self.reset
|
17
|
+
@configuration = RestforceMock::Configuration.new
|
18
|
+
end
|
50
19
|
|
51
|
-
|
52
|
-
|
53
|
-
end
|
54
|
-
end
|
20
|
+
def self.configure
|
21
|
+
yield(configuration)
|
55
22
|
end
|
56
23
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require "restforce"
|
2
|
+
require "restforce_mock/sandbox"
|
3
|
+
|
4
|
+
module RestforceMock
|
5
|
+
class Client
|
6
|
+
|
7
|
+
include ::Restforce::Concerns::API
|
8
|
+
include RestforceMock::Sandbox
|
9
|
+
|
10
|
+
def api_patch(url, attrs)
|
11
|
+
url=~/sobjects\/(.+)\/(.+)/
|
12
|
+
object=$1
|
13
|
+
id=$2
|
14
|
+
validate_presence!(object, id)
|
15
|
+
update_object(object, id, attrs)
|
16
|
+
end
|
17
|
+
|
18
|
+
def api_post(url, attrs)
|
19
|
+
url=~/sobjects\/(.+)/
|
20
|
+
sobject = $1
|
21
|
+
id = SecureRandom.urlsafe_base64(13) #duplicates possible
|
22
|
+
validate_requires!(sobject, attrs)
|
23
|
+
add_object(sobject, id, attrs)
|
24
|
+
return Body.new(id)
|
25
|
+
end
|
26
|
+
|
27
|
+
def validate_requires!(sobject, attrs)
|
28
|
+
return unless RestforceMock.configuration.schema_file
|
29
|
+
return unless RestforceMock.configuration.error_on_required
|
30
|
+
|
31
|
+
object_schema = schema[sobject]
|
32
|
+
required = object_schema.
|
33
|
+
select{|k,v|v[:required]}.
|
34
|
+
collect{|k,v|k}.
|
35
|
+
collect(&:to_sym)
|
36
|
+
|
37
|
+
missing = required - attrs.keys - RestforceMock.configuration.required_exclusions
|
38
|
+
if missing.length > 0
|
39
|
+
raise Faraday::Error::ResourceNotFound.new(
|
40
|
+
"REQUIRED_FIELD_MISSING: Required fields are missing: #{missing}")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def validate_presence!(object, id)
|
45
|
+
unless RestforceMock::Sandbox.storage[object][id]
|
46
|
+
msg = "Provided external ID field does not exist or is not accessible: #{id}"
|
47
|
+
raise Faraday::Error::ResourceNotFound.new(msg)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def schema
|
54
|
+
RestforceMock::SchemaManager.new.load_schema(RestforceMock.configuration.schema_file)
|
55
|
+
end
|
56
|
+
|
57
|
+
class Body
|
58
|
+
def initialize(id)
|
59
|
+
@body = {'id' => id}
|
60
|
+
end
|
61
|
+
|
62
|
+
def body
|
63
|
+
@body
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module RestforceMock
|
2
|
+
class Configuration
|
3
|
+
attr_accessor :schema_file
|
4
|
+
attr_writer :error_on_required
|
5
|
+
attr_writer :required_exclusions
|
6
|
+
|
7
|
+
def error_on_required
|
8
|
+
@error_on_required.nil? ? true : @error_on_required
|
9
|
+
end
|
10
|
+
|
11
|
+
def required_exclusions
|
12
|
+
@required_exclusions || default_exclusions
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def default_exclusions
|
18
|
+
[
|
19
|
+
:Id, :IsDeleted, :Name, :CreatedDate, :CreatedById,
|
20
|
+
:LastModifiedDate, :LastModifiedById, :SystemModstamp
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -8,12 +8,6 @@ module RestforceMock
|
|
8
8
|
storage[name].merge!({ id => values })
|
9
9
|
end
|
10
10
|
|
11
|
-
def self.add_required(name, keys)
|
12
|
-
if keys
|
13
|
-
storage[:required][name] = keys
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
11
|
def add_object(name, id, values)
|
18
12
|
RestforceMock::Sandbox.add_object(name, id, values)
|
19
13
|
end
|
@@ -42,14 +36,8 @@ module RestforceMock
|
|
42
36
|
|
43
37
|
#Private
|
44
38
|
def self.update_schema(object_name)
|
45
|
-
s =
|
46
|
-
|
47
|
-
s["fields"].each do |field|
|
48
|
-
object_schema[field["name"]]= {
|
49
|
-
type: field["type"]
|
50
|
-
}
|
51
|
-
end
|
52
|
-
storage[:schema][object_name] = object_schema
|
39
|
+
s = RestforceMock::SchemaManager.new
|
40
|
+
storage[:schema][object_name] = s.get_schema(object_name)
|
53
41
|
end
|
54
42
|
|
55
43
|
def self.client
|
@@ -60,9 +48,6 @@ module RestforceMock
|
|
60
48
|
storage = Hash.new do |hash, object|
|
61
49
|
hash[object]={}
|
62
50
|
end
|
63
|
-
storage[:required] = Hash.new do |hash, object|
|
64
|
-
hash[object]={}
|
65
|
-
end
|
66
51
|
storage[:schema] = Hash.new do |hash, object|
|
67
52
|
hash[object]={}
|
68
53
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
begin
|
2
|
+
require "yaml"
|
3
|
+
rescue LoadError
|
4
|
+
end
|
5
|
+
|
6
|
+
module RestforceMock
|
7
|
+
class SchemaManager
|
8
|
+
|
9
|
+
def initialize(client = default_client )
|
10
|
+
@client = client
|
11
|
+
end
|
12
|
+
|
13
|
+
def default_client
|
14
|
+
::Restforce.new
|
15
|
+
end
|
16
|
+
|
17
|
+
# Get schema for Salesforce Object
|
18
|
+
#
|
19
|
+
# object_name - String
|
20
|
+
#
|
21
|
+
# Returns
|
22
|
+
#
|
23
|
+
# Hash
|
24
|
+
def get_schema(object_name)
|
25
|
+
s = @client.describe(object_name)
|
26
|
+
object_schema = {}
|
27
|
+
s["fields"].each do |field|
|
28
|
+
object_schema[field["name"]]= {
|
29
|
+
type: field["type"],
|
30
|
+
# http://salesforce.stackexchange.com/questions/25233/is-there-a-way-to-find-required-fields-on-an-objects
|
31
|
+
required: field["createable"] && !field["nillable"] && !field["defaultedOnCreate"]
|
32
|
+
}
|
33
|
+
end
|
34
|
+
object_schema
|
35
|
+
end
|
36
|
+
|
37
|
+
# Dump schema into file
|
38
|
+
#
|
39
|
+
# object_names - Array[String] array of name of objects in SF
|
40
|
+
# file - String yml file
|
41
|
+
def dump_schema(object_names, file)
|
42
|
+
schema = {}
|
43
|
+
object_names.each do |o|
|
44
|
+
schema[o] = get_schema(o)
|
45
|
+
end
|
46
|
+
File.open(file, 'w') {|f| f.write schema.to_yaml }
|
47
|
+
end
|
48
|
+
|
49
|
+
def load_schema(file)
|
50
|
+
if file.nil?
|
51
|
+
raise "Schema file is not defined"
|
52
|
+
end
|
53
|
+
thing = YAML.load_file(file)
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
data/restforce_mock.gemspec
CHANGED
@@ -23,4 +23,6 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
25
|
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "pry"
|
27
|
+
spec.add_development_dependency "dotenv"
|
26
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restforce_mock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Katz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: restforce
|
@@ -66,6 +66,34 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: dotenv
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
description: Mock for Restforce gem
|
70
98
|
email:
|
71
99
|
- ilyakatz@gmail.com
|
@@ -78,6 +106,7 @@ files:
|
|
78
106
|
- ".rspec"
|
79
107
|
- ".ruby-style.yml"
|
80
108
|
- ".travis.yml"
|
109
|
+
- CHANGELOG.md
|
81
110
|
- CODE_OF_CONDUCT.md
|
82
111
|
- Gemfile
|
83
112
|
- LICENSE.txt
|
@@ -86,7 +115,10 @@ files:
|
|
86
115
|
- bin/console
|
87
116
|
- bin/setup
|
88
117
|
- lib/restforce_mock.rb
|
118
|
+
- lib/restforce_mock/client.rb
|
119
|
+
- lib/restforce_mock/configuration.rb
|
89
120
|
- lib/restforce_mock/sandbox.rb
|
121
|
+
- lib/restforce_mock/schema_manager.rb
|
90
122
|
- lib/restforce_mock/version.rb
|
91
123
|
- restforce_mock.gemspec
|
92
124
|
homepage: https://github.com/ilyakatz
|
@@ -109,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
141
|
version: '0'
|
110
142
|
requirements: []
|
111
143
|
rubyforge_project:
|
112
|
-
rubygems_version: 2.2.
|
144
|
+
rubygems_version: 2.2.0
|
113
145
|
signing_key:
|
114
146
|
specification_version: 4
|
115
147
|
summary: Mock for Restforce gem
|