
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
This application is a ruby client to the Tabela Fipe Api - http://www.fipe.org.br/pt-br/indices/veiculos/. It makes use of the excellent http gem to make http requests and nokogiri to parse the response
Add this line to your application's Gemfile:
gem 'fipe_api'
And then execute:
$ bundle
Or install it yourself as:
$ gem install fipe_api
The base class to use is a FipeApi::Vehicle. The Fipe data makes use of three Vehicles types wich are mapped to a FipeApi::Vehicle constant. The constants are:
FipeApi::Vehicle::CAR
FipeApi::Vehicle::MOTORCYCLE
FipeApi::Vehicle::TRUCK
You can get all Vehicles types with:
vehicles = FipeApi::Vehicle.all
You can access the first vehicle like this:
vehicles.first.id => 1
vehicles.first.name => Car
or you can initialize an specific Vehicle type, let`s say a CAR, with:
vehicle = FipeApi::Vehicle.new(FipeApi::Vehicle::CAR, "Car")
Given a vehicle you can get all of its tables. A Table is generated each month with updated values for some vehicles. So, to get all tables you may do:
tables = vehicle.get_tables
Frequently you will be using the latest table generated, i.e. that was generated for the current month and year, to get the vehicles data. It`s possible to retrieve the latest table for an specific vehicle with:
latest_table = FipeApi::Table.latest(vehicle)
or you can get a table for an specific month and year:
table = FipeApi::Table.find_by_month_and_year(vehicle, 3, 2015) # Table from March/2015
Once you have a vehicle and a given table, you can get all of the vehicle`s Brands(Ford, Fiat, GM/Chevrolet, BMW, etc...), like so:
brands = vehicle.get_brands(table) #If you don`t pass a table, it will use the latest table for the vehicle.
You can also filter the the array by name if you want to get an specific brand:
brand = vehicle.get_brands.find{|b| b.name == 'Ford' }
Now you can retrieve all Models for an specific brand. For the Ford brand we have as examples of models: Fiesta, Fusion, Taurus, etc. Use this syntax to get all models:
models = brand.get_models(table) #If you don`t pass a table, it will use the latest table for the vehicle.
Now, let`s get the years of a model. Examples of years, for a Ford Fusion Titanium 2.0 GTDI EcoBo. Awd Aut, are: Zero KM Gasolina, 2015 Gasolina, 2014 Gasolina, 2013 Gasolina. You can get the years with:
years = model.get_years(table) #If you don`t pass a table, it will use the latest table for the vehicle.
Finally, once you have an specific year for a vehicle, it`s possible to get its price like the following:
result = year.get_result(table) #If you don`t pass a table, it will use the latest table for the vehicle.
# Result of type FipeApi::FipeResult
result.price # => R$ 124.638,00
result.authentication # => g1gj386ctbp
result.year # => FipeApi::Year(month: 7, year: 2015)
result.fuel # => Gasolina
result.query_time # => quinta-feira, 9 de julho de 2015 09:54:03
result.url #=> http://www.fipe.org.br/pt-br/indices/veiculos/carro/ford/7-2015/003376-6/32000/g/g1gj386ctbp
After checking out the repo, run bin/setup
to install dependencies. Then, run bin/console
for an interactive prompt that will allow you to experiment. To run the tests, use rake spec
.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
to create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)FAQs
Unknown package
We found that fipe_api demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.