Commit 4d8cc8e
Changed files (2)
lib
scim
kit
v2
spec
scim
kit
lib/scim/kit/v2/parser.rb
@@ -43,7 +43,7 @@ subAttr = "." ATTRNAME
rule(:valFilter) { attrExp | logExp | (not_op? >> lparen >> valFilter >> rparen) }
rule(:attrExp) { (attrPath >> space >> presence) | (attrPath >> space >> compareOp >> space >> quote >> compValue >> quote) }
rule(:logExp) { filter >> space >> (and_op | or_op) >> space >> filter }
- rule(:compValue) { falsey | null | truthy | number | string | scim_schema_uri }
+ rule(:compValue) { (falsey | null | truthy | number | string | scim_schema_uri).repeat(1) }
rule(:compareOp) { equal | not_equal | contains | starts_with | ends_with | greater_than | less_than | less_than_equals | greater_than_equals }
rule(:attrPath) { scim_schema_uri | attrname >> subAttr.maybe }
rule(:attrname) { alpha >> nameChar.repeat(1) }
spec/scim/kit/v2/parser_spec.rb
@@ -5,30 +5,34 @@ RSpec.describe Scim::Kit::V2::Parser do
[
'userName',
- #'name.familyName',
- #'urn:ietf:params:scim:schemas:core:2.0:User:userName',
- #'meta.lastModified',
- #'schemas',
+ 'name.familyName',
+ 'urn:ietf:params:scim:schemas:core:2.0:User:userName',
+ 'meta.lastModified',
+ 'schemas',
].each do |attribute|
[
"eq",
- #"ne",
- #"co",
- #"sw",
- #"ew",
- #"gt",
- #"lt",
- #"ge",
- #"le"
+ "ne",
+ "co",
+ "sw",
+ "ew",
+ "gt",
+ "lt",
+ "ge",
+ "le"
].each do |operator|
[
- #"bjensen",
- #"O'Malley",
- #"J",
- #"2011-05-13T04:42:34Z",
+ "bjensen",
+ "O'Malley",
+ "J",
+ "2011-05-13T04:42:34Z",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
].each do |value|
- specify { expect(subject).to parse(%Q(#{attribute} #{operator} \"#{value}\")) }
+ let(:query) { %Q(#{attribute} #{operator} \"#{value}\") }
+ specify { expect(subject).to parse(query) }
+ specify do
+ expect(subject.parse_with_debug(query)).to be_truthy
+ end
end
end
end