Skip to content

Instantly share code, notes, and snippets.

@bmaddy
Last active August 29, 2015 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmaddy/10937497 to your computer and use it in GitHub Desktop.
Save bmaddy/10937497 to your computer and use it in GitHub Desktop.
select lens
attribute :subject, [Lenses.get_predicate(RDF::DC11.subject), Lenses.literals_to_strings, Lenses.select(only_foos)]
attribute :subject2, [Lenses.get_predicate(RDF::DC11.subject), Lenses.literals_to_strings, Lenses.select(only_bars)]
def select(test)
Lens[
get: lambda do |source_values|
raise unless source_values.is_a?(Set)
source_values.select{|v| test(v)}
end,
put: lambda do |source_values, new_values|
raise unless source_values.is_a?(Set)
source_values.reject{|v| test(v)} + new_values
end
]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment