CanLII Ruby
A lightweight Ruby client for accessing Canadian legal information via the CanLII API.
Installation
Add this line to your application's Gemfile:
gem 'canlii'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install canlii
Configuration
Basic Configuration
require 'canlii'
CanLII.configure do |config|
config.api_key = ENV["CANLII_API_KEY"]
config.logger = Logger.new(STDOUT)
config.timeout = 30 # Optional: timeout in seconds (default: 30)
end
Rails Configuration
In config/initializers/canlii.rb
:
CanLII.configure do |config|
config.api_key = ENV["CANLII_API_KEY"]
config.logger = Rails.logger
config.timeout = 30 # Optional: timeout in seconds (default: 30)
end
Usage
List All Databases
databases = CanLII::Database.all
databases.each do |db|
puts "#{db.database_id}: #{db.name} (#{db.jurisdiction})"
end
Browse Cases
# Recent Supreme Court cases
cases = CanLII::Case.browse("csc-scc", limit: 10)
cases.each do |c|
puts "#{c.citation}: #{c.title}"
end
# Cases from last 30 days
recent = CanLII::Case.browse("onca",
published_after: 30.days.ago,
limit: 100
)
Find Specific Case
# Find returns nil if not found
case_detail = CanLII::Case.find("csc-scc", "2024scc1")
# Find! raises error if not found
case_detail = CanLII::Case.find!("csc-scc", "2024scc1")
Language Support
# Temporary language switch
CanLII.with_language("fr") do
databases = CanLII::Database.all # Returns French names
cases = CanLII::Case.browse("qcca") # Quebec cases
end
# Permanent language switch
CanLII.configuration.language = "fr"
Using Custom Clients (Advanced)
# For testing or using multiple API keys
mock_client = MyMockClient.new
CanLII::Case.with_client(mock_client) do
case_detail = CanLII::Case.find("on", "2024onca1")
# This will use mock_client instead of the default HTTP client
end
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/ajaynomics/canlii-ruby.
License
The gem is available as open source under the terms of the MIT License.