Using Gem::Dependency class manually to ensure version matching

I needed to add a mechanism to ensure that some actions of a controller were available only for specific versions, and I thought it was super similar of what Gemfile does, so I started to look how to use Gem::Dependency to solve this, and turns out it was super easy:

```ruby
class Controller
  def feeds_one
    check_for_version_support('>= 1.0', '< 3')
    
    render json: SomeData.all
  end
  
  def feeds_two
    check_for_version_support('= 1.0')
    
    render json: SomeData.all
  end

  def feeds_three
    check_for_version_support('>= 2.1')
    
    render json: SomeData.all
  end
  
  private
  
  def check_for_version_support(*specification)
    checker = Gem::Dependency.new(action_name, specification)
    
    return if checker.match?(action_name, params[:version])
    
    raise VersionNotSupported, "Version not upported"
  end
end

```

Edwin Cruz
April 8, 2021
