salesforce_id 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +9 -0
- data/README.md +65 -0
- data/ext/salesforce_id/salesforce_id_ext.c +29 -0
- data/ext/salesforce_id/salesforce_id_ext.h +8 -4
- data/ext/salesforce_id/validate_id.c +56 -3
- data/ext/salesforce_id/validate_id.h +4 -0
- data/lib/salesforce_id/random.rb +75 -0
- data/lib/salesforce_id/rspec/be_insensitive_salesforce_id_matcher.rb +16 -0
- data/lib/salesforce_id/rspec/be_safe_salesforce_id_matcher.rb +18 -0
- data/lib/salesforce_id/rspec/be_salesforce_id_matcher.rb +16 -0
- data/lib/salesforce_id/rspec/be_sensitive_salesforce_id_matcher.rb +16 -0
- data/lib/salesforce_id/rspec.rb +16 -0
- data/lib/salesforce_id/safe.rb +3 -3
- data/lib/salesforce_id/version.rb +1 -1
- data/lib/salesforce_id.rb +43 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67c48be6bea0334c903a43a16d85a6a16864723a
|
4
|
+
data.tar.gz: d4c4bd69092a3d7de1b166f42d8b4a101fa001e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3008208bc7f80cc57e232be5756a46832240c8ebe91fd8e1a7e577cd5ae113971c3d65886455790b1b5e8a20109178506642b5e80c618f3e586815beeb6ac429
|
7
|
+
data.tar.gz: cb40b329f1cf4a559c24d292759deca85eab9cb54b6f1ae093fbe801bf87cee2705fa05d95e749b1746a6db858a189fbf42a20bcd21dc6810281c1c69f8cc3ed
|
data/.codeclimate.yml
ADDED
data/README.md
CHANGED
@@ -90,6 +90,71 @@ id.to_insensitive # => "003G000001SUbc4IAD"
|
|
90
90
|
SalesforceId("003G000001SUbc4") == SalesforceId.id("003G000001SUbc4") # => true
|
91
91
|
```
|
92
92
|
|
93
|
+
### Test utilities
|
94
|
+
|
95
|
+
#### SalesforceId::Random
|
96
|
+
|
97
|
+
A useful utility class to generate random salesforce IDs
|
98
|
+
|
99
|
+
```ruby
|
100
|
+
# Generate a valid case-sensitive salesforce id
|
101
|
+
SalesforceId::Random.sensitive # => 003G000001SUbc4
|
102
|
+
|
103
|
+
# Generate a valid case-insensitive salesforce id
|
104
|
+
SalesforceId::Random.insensitive # => 003G000001SUbc4IAD
|
105
|
+
|
106
|
+
# Generate an **invalid** case-sensitive salesforce id
|
107
|
+
SalesforceId::Random.invalid_sensitive # => 003G0-0001SUbc4
|
108
|
+
|
109
|
+
# Generate a **invalid** case-insensitive salesforce id where the first 15
|
110
|
+
# characters are invalid, not the checksum part
|
111
|
+
SalesforceId::Random.insensitive # => 003-000001SUbc4IAD
|
112
|
+
|
113
|
+
# Generate a **invalid** case-insensitive salesforce id where only the checksum
|
114
|
+
# part (last 3 characters) is invalid
|
115
|
+
SalesforceId::Random.insensitive # => 003G000001SUbc4I9D
|
116
|
+
|
117
|
+
# Generate a valid SalesforceId::Safe salesforce id
|
118
|
+
SalesforceId::Random.safe # => #<SalesforceId::Safe:0x007f86f2294c50 @value="003G000001SUbc4IAD">
|
119
|
+
|
120
|
+
# Shorter version to perform `SalesforceId::Random.safe`
|
121
|
+
SalesforceId.random # => #<SalesforceId::Safe:0x007f86f2294c50 @value="003G000001SUbc4IAD">
|
122
|
+
```
|
123
|
+
|
124
|
+
#### RSpec matchers
|
125
|
+
|
126
|
+
Include `SalesforceId::RSpec` in your tests to get a bunch of salesforce id
|
127
|
+
matchers
|
128
|
+
|
129
|
+
```ruby
|
130
|
+
RSpec.describe SalesforceId("003G000001SUbc4") do
|
131
|
+
include ::SalesforceId::RSpec
|
132
|
+
|
133
|
+
it "is a sensitive salesforce id" do
|
134
|
+
expect(subject.to_sensitive).to be_sensitive_salesforce_id # => true
|
135
|
+
end
|
136
|
+
|
137
|
+
it "is an insensitive salesforce id" do
|
138
|
+
expect(subject.to_insensitive).to be_insensitive_salesforce_id # => true
|
139
|
+
end
|
140
|
+
|
141
|
+
it "is a salesforce id" do
|
142
|
+
is_expected.to be_salesforce_id # => true
|
143
|
+
end
|
144
|
+
|
145
|
+
it "is a salesforce id in safe format (case-sensitive + checksum)" do
|
146
|
+
is_expected.to be_safe_salesforce_id # => true
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
```
|
151
|
+
|
152
|
+
These tests will pass. Matchers will work with any object that can be converted
|
153
|
+
into a string with `to_s`, including `SalesforceId::Safe`.
|
154
|
+
|
155
|
+
One note on `be_safe_salesforce_id` matcher, it will consider safe **even
|
156
|
+
strings** if they are of the correct format (case sensitive + checksum)
|
157
|
+
|
93
158
|
## Documentation
|
94
159
|
|
95
160
|
Methods are documented in [salesforce_id_ext.h](https://github.com/Fire-Dragon-DoL/salesforce_id/blob/master/ext/salesforce_id/salesforce_id_ext.h), this file is
|
@@ -9,6 +9,8 @@
|
|
9
9
|
|
10
10
|
VALUE rb_mSalesforceId;
|
11
11
|
|
12
|
+
static VALUE VALID_CHARACTERS_to_rb();
|
13
|
+
|
12
14
|
void Init_salesforce_id()
|
13
15
|
{
|
14
16
|
// Module
|
@@ -25,6 +27,11 @@ void Init_salesforce_id()
|
|
25
27
|
"INSENSITIVE_SIZE",
|
26
28
|
INT2FIX(SALESFORCE_ID_INSENSITIVE_LENGTH)
|
27
29
|
);
|
30
|
+
rb_define_const(
|
31
|
+
rb_mSalesforceId,
|
32
|
+
"VALID_CHARACTERS",
|
33
|
+
VALID_CHARACTERS_to_rb()
|
34
|
+
);
|
28
35
|
|
29
36
|
// Methods
|
30
37
|
rb_define_method(
|
@@ -149,3 +156,25 @@ VALUE salesforce_id_is_insensitive(VALUE self, VALUE rb_sId)
|
|
149
156
|
|
150
157
|
return Qfalse;
|
151
158
|
}
|
159
|
+
|
160
|
+
VALUE VALID_CHARACTERS_to_rb()
|
161
|
+
{
|
162
|
+
VALUE rb_Chars = Qnil;
|
163
|
+
|
164
|
+
rb_Chars = rb_ary_new2(VALID_CHARMAP_SIZE);
|
165
|
+
|
166
|
+
for (long index = 0; index < VALID_CHARMAP_SIZE; ++index)
|
167
|
+
{
|
168
|
+
char str_Char[2];
|
169
|
+
VALUE rb_Char;
|
170
|
+
|
171
|
+
memset(&str_Char[1], 0, sizeof(str_Char[1]));
|
172
|
+
memset(str_Char, VALID_CHARMAP[index], sizeof(str_Char[0]));
|
173
|
+
|
174
|
+
rb_Char = rb_str_new2(str_Char);
|
175
|
+
|
176
|
+
rb_ary_store(rb_Chars, index, rb_obj_freeze(rb_Char));
|
177
|
+
}
|
178
|
+
|
179
|
+
return rb_ary_freeze(rb_Chars);
|
180
|
+
}
|
@@ -16,18 +16,20 @@ extern VALUE rb_mSalesforceId;
|
|
16
16
|
void Init_salesforce_id();
|
17
17
|
|
18
18
|
/*
|
19
|
-
* Converts any valid salesforce ID to case-sensitive version
|
20
|
-
* ArgumentError if ID contains invalid characters or it's not correct length
|
19
|
+
* Converts any valid salesforce ID to case-sensitive version
|
21
20
|
* @param rb_sId [String] valid salesforce id
|
22
21
|
* @return [String] salesforce id in case-sensitive version
|
22
|
+
* @raise [ArgumentError] If ID contains invalid characters or it's not correct
|
23
|
+
* length
|
23
24
|
*/
|
24
25
|
VALUE salesforce_id_to_sensitive(VALUE self, VALUE rb_sId);
|
25
26
|
|
26
27
|
/*
|
27
|
-
* Converts any valid salesforce ID to case-insensitive version
|
28
|
-
* ArgumentError if ID contains invalid characters or it's not correct length
|
28
|
+
* Converts any valid salesforce ID to case-insensitive version
|
29
29
|
* @param rb_sId [String] valid salesforce id
|
30
30
|
* @return [String] salesforce id in case-insensitive version
|
31
|
+
* @raise [ArgumentError] If ID contains invalid characters or it's not correct
|
32
|
+
* length
|
31
33
|
*/
|
32
34
|
VALUE salesforce_id_to_insensitive(VALUE self, VALUE rb_sId);
|
33
35
|
|
@@ -47,6 +49,8 @@ VALUE salesforce_id_is_valid(VALUE self, VALUE rb_sId);
|
|
47
49
|
* @return [String] case-insensitive salesforce id with casing fixed, which
|
48
50
|
* means you can strip the last 3 characters to obtain the case-sensitive
|
49
51
|
* format
|
52
|
+
* @raise [ArgumentError] If ID contains invalid characters or it's not correct
|
53
|
+
* length
|
50
54
|
*/
|
51
55
|
VALUE salesforce_insensitive_repair_casing(VALUE self, VALUE rb_sId);
|
52
56
|
|
@@ -6,13 +6,66 @@
|
|
6
6
|
#include "salesforce_id_ext.h"
|
7
7
|
#include "charmap.h"
|
8
8
|
|
9
|
+
const char VALID_CHARMAP[VALID_CHARMAP_SIZE] = {
|
10
|
+
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
|
11
|
+
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
12
|
+
|
13
|
+
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
|
14
|
+
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
|
15
|
+
|
16
|
+
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
|
17
|
+
};
|
18
|
+
|
19
|
+
static bool is_valid_insensitive_id(char* cId);
|
20
|
+
static bool is_valid_sensitive_id(char* cId);
|
21
|
+
static bool is_valid_char_for_id(char idChar);
|
22
|
+
|
9
23
|
// rb_sId MUST be a string
|
10
24
|
bool is_id_valid(VALUE rb_sId)
|
11
25
|
{
|
12
|
-
|
26
|
+
unsigned long id_size = 0;
|
27
|
+
VALUE id = rb_sId;
|
28
|
+
char* cId = NULL;
|
29
|
+
|
30
|
+
id_size = RSTRING_LEN(id);
|
31
|
+
|
32
|
+
if (id_size != SALESFORCE_ID_SENSITIVE_LENGTH &&
|
33
|
+
id_size != SALESFORCE_ID_INSENSITIVE_LENGTH) return false;
|
34
|
+
|
35
|
+
// XXX: Careful, cId is NOT NULL TERMINATED!
|
36
|
+
// Useful because it saves various allocations
|
37
|
+
cId = StringValuePtr(rb_sId);
|
38
|
+
|
39
|
+
if (!is_valid_sensitive_id(cId)) return false;
|
40
|
+
if (id_size == SALESFORCE_ID_INSENSITIVE_LENGTH &&
|
41
|
+
!is_valid_insensitive_id(cId)) return false;
|
42
|
+
|
43
|
+
return true;
|
44
|
+
}
|
45
|
+
|
46
|
+
bool is_valid_insensitive_id(char* cId)
|
47
|
+
{
|
48
|
+
const unsigned long insensitive_size = SALESFORCE_ID_INSENSITIVE_LENGTH;
|
49
|
+
unsigned long index = 0;
|
50
|
+
|
51
|
+
for (index = SALESFORCE_ID_SENSITIVE_LENGTH; index < insensitive_size; ++index)
|
52
|
+
if (charmap_index(cId[index]) < 0) return false;
|
53
|
+
|
54
|
+
return true;
|
55
|
+
}
|
56
|
+
|
57
|
+
bool is_valid_sensitive_id(char* cId)
|
58
|
+
{
|
59
|
+
for (unsigned long index = 0; index < SALESFORCE_ID_SENSITIVE_LENGTH; ++index)
|
60
|
+
if (!is_valid_char_for_id(cId[index])) return false;
|
13
61
|
|
14
|
-
|
15
|
-
|
62
|
+
return true;
|
63
|
+
}
|
64
|
+
|
65
|
+
bool is_valid_char_for_id(char idChar)
|
66
|
+
{
|
67
|
+
for (int index = 0; index < VALID_CHARMAP_SIZE; ++index)
|
68
|
+
if (VALID_CHARMAP[index] == idChar) return true;
|
16
69
|
|
17
70
|
return false;
|
18
71
|
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'salesforce_id'
|
2
|
+
|
3
|
+
module ::SalesforceId
|
4
|
+
|
5
|
+
# Factory for random generation of salesforce ids
|
6
|
+
module Random
|
7
|
+
extend self
|
8
|
+
|
9
|
+
# Creates a random salesforce id in case-sensitive format
|
10
|
+
# @return [String]
|
11
|
+
def sensitive
|
12
|
+
id = ""
|
13
|
+
|
14
|
+
# Fetch samples in this way to allow repetition of values
|
15
|
+
::SalesforceId::SENSITIVE_SIZE.times do
|
16
|
+
id << ::SalesforceId::VALID_CHARACTERS.sample
|
17
|
+
end
|
18
|
+
|
19
|
+
id
|
20
|
+
end
|
21
|
+
|
22
|
+
# Creates a random salesforce id in case-insensitive format
|
23
|
+
# @return [String]
|
24
|
+
def insensitive
|
25
|
+
safe.to_insensitive
|
26
|
+
end
|
27
|
+
|
28
|
+
# Create a random salesforce id in case-sensitive format with
|
29
|
+
# one invalid character, making it invalid
|
30
|
+
# @return [String]
|
31
|
+
def invalid_sensitive
|
32
|
+
id = sensitive
|
33
|
+
|
34
|
+
id[rand(id.size)] = '-'
|
35
|
+
|
36
|
+
id
|
37
|
+
end
|
38
|
+
|
39
|
+
# Create a random salesforce id in case-insensitive format with
|
40
|
+
# one **invalid character in the case-sensitive part** (first 15
|
41
|
+
# characters), making it invalid
|
42
|
+
# @return [String]
|
43
|
+
def invalid_insensitive
|
44
|
+
id = insensitive
|
45
|
+
|
46
|
+
id[rand(::SalesforceId::SENSITIVE_SIZE)] = '-'
|
47
|
+
|
48
|
+
id
|
49
|
+
end
|
50
|
+
|
51
|
+
# Create a random salesforce id in case-insensitive format with
|
52
|
+
# one **invalid character in the case-insensitive part** (last 3 characters # from 15 to 18), making it invalid
|
53
|
+
# @return [String]
|
54
|
+
def invalid_insensitive_checksum
|
55
|
+
id = insensitive
|
56
|
+
checksum_size = ::SalesforceId::INSENSITIVE_SIZE
|
57
|
+
checksum_size -= ::SalesforceId::SENSITIVE_SIZE
|
58
|
+
|
59
|
+
# Gets a random number between -1 and -3 and set that char to a valid
|
60
|
+
# case-sensitive character which is however invalid for case-insensitive
|
61
|
+
# id
|
62
|
+
id[(-checksum_size) + rand(checksum_size)] = '9'
|
63
|
+
|
64
|
+
id
|
65
|
+
end
|
66
|
+
|
67
|
+
# Creates a random salesforce id enclosed in {SalesforceId::Safe} object
|
68
|
+
# @return [SalesforceId::Safe]
|
69
|
+
def safe
|
70
|
+
SalesforceId(sensitive)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'salesforce_id'
|
2
|
+
require 'salesforce_id/rspec'
|
3
|
+
require 'rspec/expectations'
|
4
|
+
|
5
|
+
module ::SalesforceId::RSpec
|
6
|
+
|
7
|
+
module BeInsensitiveSalesforceIdMatcher
|
8
|
+
extend RSpec::Matchers::DSL
|
9
|
+
|
10
|
+
matcher :be_insensitive_salesforce_id do
|
11
|
+
match { |id| SalesforceId.insensitive?(id) }
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'salesforce_id'
|
2
|
+
require 'salesforce_id/rspec'
|
3
|
+
require 'rspec/expectations'
|
4
|
+
|
5
|
+
module ::SalesforceId::RSpec
|
6
|
+
|
7
|
+
module BeSafeSalesforceIdMatcher
|
8
|
+
extend RSpec::Matchers::DSL
|
9
|
+
|
10
|
+
matcher :be_safe_salesforce_id do
|
11
|
+
match do |id|
|
12
|
+
SalesforceId.valid?(id) && SalesforceId(id).to_s == id.to_s
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'salesforce_id'
|
2
|
+
require 'salesforce_id/rspec'
|
3
|
+
require 'rspec/expectations'
|
4
|
+
|
5
|
+
module ::SalesforceId::RSpec
|
6
|
+
|
7
|
+
module BeSalesforceIdMatcher
|
8
|
+
extend RSpec::Matchers::DSL
|
9
|
+
|
10
|
+
matcher :be_salesforce_id do
|
11
|
+
match { |id| SalesforceId.valid?(id) }
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'salesforce_id'
|
2
|
+
require 'salesforce_id/rspec'
|
3
|
+
require 'rspec/expectations'
|
4
|
+
|
5
|
+
module ::SalesforceId::RSpec
|
6
|
+
|
7
|
+
module BeSensitiveSalesforceIdMatcher
|
8
|
+
extend RSpec::Matchers::DSL
|
9
|
+
|
10
|
+
matcher :be_sensitive_salesforce_id do
|
11
|
+
match { |id| SalesforceId.sensitive?(id) }
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'salesforce_id'
|
2
|
+
require 'salesforce_id/rspec/be_sensitive_salesforce_id_matcher'
|
3
|
+
require 'salesforce_id/rspec/be_insensitive_salesforce_id_matcher'
|
4
|
+
require 'salesforce_id/rspec/be_salesforce_id_matcher'
|
5
|
+
require 'salesforce_id/rspec/be_safe_salesforce_id_matcher'
|
6
|
+
|
7
|
+
module SalesforceId
|
8
|
+
|
9
|
+
module RSpec
|
10
|
+
include ::SalesforceId::RSpec::BeSensitiveSalesforceIdMatcher
|
11
|
+
include ::SalesforceId::RSpec::BeInsensitiveSalesforceIdMatcher
|
12
|
+
include ::SalesforceId::RSpec::BeSalesforceIdMatcher
|
13
|
+
include ::SalesforceId::RSpec::BeSafeSalesforceIdMatcher
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
data/lib/salesforce_id/safe.rb
CHANGED
@@ -26,12 +26,12 @@ module SalesforceId
|
|
26
26
|
value
|
27
27
|
end
|
28
28
|
|
29
|
-
def as_json(*
|
29
|
+
def as_json(*)
|
30
30
|
to_s
|
31
31
|
end
|
32
32
|
|
33
33
|
# In JSON format, it's a plain string
|
34
|
-
def to_json(*
|
34
|
+
def to_json(*)
|
35
35
|
as_json
|
36
36
|
end
|
37
37
|
|
@@ -40,7 +40,7 @@ module SalesforceId
|
|
40
40
|
# format
|
41
41
|
# @param other [SalesforceId::Safe]
|
42
42
|
def <=>(other)
|
43
|
-
return nil unless other.
|
43
|
+
return nil unless other.is_a?(self.class)
|
44
44
|
|
45
45
|
to_s <=> other.to_s
|
46
46
|
end
|
data/lib/salesforce_id.rb
CHANGED
@@ -1,18 +1,61 @@
|
|
1
1
|
require 'salesforce_id/version'
|
2
2
|
require 'salesforce_id/salesforce_id'
|
3
3
|
require 'salesforce_id/safe'
|
4
|
+
require 'salesforce_id/random'
|
4
5
|
|
5
6
|
module SalesforceId
|
6
7
|
extend self
|
7
8
|
|
9
|
+
# [FixNum] SENSITIVE_SIZE
|
10
|
+
# [FixNum] INSENSITIVE_SIZE
|
11
|
+
# [Array<String>] VALID_CHARACTERS array of valid characters
|
12
|
+
# for salesforce id
|
13
|
+
|
14
|
+
# to_sensitive
|
15
|
+
# @param id [String]
|
16
|
+
# @return [String]
|
17
|
+
|
18
|
+
# to_insensitive
|
19
|
+
# @param id [String]
|
20
|
+
# @return [String]
|
21
|
+
|
22
|
+
# valid?
|
23
|
+
# @param id [String]
|
24
|
+
# @return [Boolean]
|
25
|
+
|
26
|
+
# repair_casing
|
27
|
+
# @param id [String]
|
28
|
+
# @return [String]
|
29
|
+
|
30
|
+
# sensitive?
|
31
|
+
# @param id [String]
|
32
|
+
# @return [Boolean]
|
33
|
+
|
34
|
+
# insensitive?
|
35
|
+
# @param id [String]
|
36
|
+
# @return [Boolean]
|
37
|
+
|
38
|
+
# Creates a salesforce id based on string
|
39
|
+
# @param salesforce_id [#to_s] An object that converts to a valid salesforce
|
40
|
+
# id in string format
|
41
|
+
# @return [SalesforceId::Safe] the original object if it's already a
|
42
|
+
# {SalesforceId::Safe}, otherwise a generated salesforce id
|
43
|
+
# @raise [ArgumentError] if passed id is not valid
|
8
44
|
def id(salesforce_id)
|
9
45
|
return salesforce_id if salesforce_id.kind_of?(::SalesforceId::Safe)
|
10
46
|
|
11
47
|
::SalesforceId::Safe.new(salesforce_id)
|
12
48
|
end
|
13
49
|
|
50
|
+
# Provides a randomly generated salesforce id using {Salesforce::Random}
|
51
|
+
# @return [SalesforceId::Safe]
|
52
|
+
def random
|
53
|
+
::SalesforceId::Random.safe
|
54
|
+
end
|
55
|
+
|
14
56
|
end
|
15
57
|
|
58
|
+
# Shortcut for {SalesforceId#id}
|
16
59
|
def SalesforceId(salesforce_id)
|
17
60
|
SalesforceId.id(salesforce_id)
|
18
61
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: salesforce_id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fire-Dragon-DoL
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -117,6 +117,7 @@ extensions:
|
|
117
117
|
- ext/salesforce_id/extconf.rb
|
118
118
|
extra_rdoc_files: []
|
119
119
|
files:
|
120
|
+
- ".codeclimate.yml"
|
120
121
|
- ".gitignore"
|
121
122
|
- ".rspec"
|
122
123
|
- ".travis.yml"
|
@@ -150,6 +151,12 @@ files:
|
|
150
151
|
- ext/salesforce_id/validate_id.c
|
151
152
|
- ext/salesforce_id/validate_id.h
|
152
153
|
- lib/salesforce_id.rb
|
154
|
+
- lib/salesforce_id/random.rb
|
155
|
+
- lib/salesforce_id/rspec.rb
|
156
|
+
- lib/salesforce_id/rspec/be_insensitive_salesforce_id_matcher.rb
|
157
|
+
- lib/salesforce_id/rspec/be_safe_salesforce_id_matcher.rb
|
158
|
+
- lib/salesforce_id/rspec/be_salesforce_id_matcher.rb
|
159
|
+
- lib/salesforce_id/rspec/be_sensitive_salesforce_id_matcher.rb
|
153
160
|
- lib/salesforce_id/safe.rb
|
154
161
|
- lib/salesforce_id/version.rb
|
155
162
|
- salesforce_id.gemspec
|