Module: RailsVersionedRouting

Defined in:
lib/rails_versioned_routing.rb,
lib/rails_versioned_routing/railtie.rb

Defined Under Namespace

Classes: Railtie, VersionConstraint, VersionedGroup

Constant Summary collapse

VERSION =
"1.3.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.group_by_versionObject



214
215
216
# File 'lib/rails_versioned_routing.rb', line 214

def self.group_by_version
  VersionedGroup.new(Rails.application.routes.routes).grouped_by_version
end

Instance Method Details

#match(*args) ⇒ Object

temporarily overrides ‘match` method in routes file



203
204
205
# File 'lib/rails_versioned_routing.rb', line 203

def match(*args)
  @real_match.call(args[0], to: Proc.new { raise ActionController::RoutingError.new('Not Found') }, via: args[1][:via])
end

#removedObject



199
200
201
202
203
204
205
206
207
208
209
210
211
212
# File 'lib/rails_versioned_routing.rb', line 199

def removed
  @real_match = method(:match)

  # temporarily overrides `match` method in routes file
  def match(*args)
    @real_match.call(args[0], to: Proc.new { raise ActionController::RoutingError.new('Not Found') }, via: args[1][:via])
  end

  yield

  def match(*args)
    @real_match.call(*args)
  end
end

#version(version_number, &routes) ⇒ Object



194
195
196
197
# File 'lib/rails_versioned_routing.rb', line 194

def version(version_number, &routes)
  api_constraint = VersionConstraint.new(version: version_number)
  scope(module: "v#{version_number}", constraints: api_constraint, &routes)
end