diff --git a/lib/travis/api/v3.rb b/lib/travis/api/v3.rb index 221df59b..8e0d3909 100644 --- a/lib/travis/api/v3.rb +++ b/lib/travis/api/v3.rb @@ -37,3 +37,4 @@ module Travis end end end + diff --git a/lib/travis/api/v3/queries/repositories.rb b/lib/travis/api/v3/queries/repositories.rb index 2e5c1194..c5b08e9b 100644 --- a/lib/travis/api/v3/queries/repositories.rb +++ b/lib/travis/api/v3/queries/repositories.rb @@ -19,7 +19,7 @@ module Travis::API::V3 list = list.where(private: bool(private)) unless private.nil? list = list.includes(:owner) if includes? 'repository.owner'.freeze - if includes? 'repository.last_build'.freeze + if includes? 'repository.last_build'.freeze or includes? 'build'.freeze list = list.includes(:last_build) list = list.includes(last_build: :commit) if includes? 'build.commit'.freeze end diff --git a/lib/travis/api/v3/query.rb b/lib/travis/api/v3/query.rb index 6cf049ab..5c89da27 100644 --- a/lib/travis/api/v3/query.rb +++ b/lib/travis/api/v3/query.rb @@ -26,7 +26,7 @@ module Travis::API::V3 attr_reader :params, :main_type - def initialize(params, main_type, includes = nil) + def initialize(params, main_type, includes: nil) @params = params @main_type = main_type.to_s @includes = includes @@ -43,7 +43,7 @@ module Travis::API::V3 def includes?(key) @includes ||= @params['include'.freeze].to_s.split(?,.freeze) - @includes.include? key + key.include?(?.) ? @includes.include?(key) : @includes.any? { |k| k.start_with? key } end def bool(value) diff --git a/lib/travis/api/v3/renderer/commit.rb b/lib/travis/api/v3/renderer/commit.rb index 70276a98..218e2a04 100644 --- a/lib/travis/api/v3/renderer/commit.rb +++ b/lib/travis/api/v3/renderer/commit.rb @@ -3,7 +3,7 @@ require 'travis/api/v3/renderer/model_renderer' module Travis::API::V3 class Renderer::Commit < Renderer::ModelRenderer representation(:minimal, :id, :sha, :ref, :message, :compare_url, :committed_at) - representation(:standard, *representations[:minimal], :repository, :branch, :committer, :author) + representation(:standard, *representations[:minimal], :committer, :author) def sha model.commit diff --git a/lib/travis/api/v3/renderer/model_renderer.rb b/lib/travis/api/v3/renderer/model_renderer.rb index b62c8537..be2ea006 100644 --- a/lib/travis/api/v3/renderer/model_renderer.rb +++ b/lib/travis/api/v3/renderer/model_renderer.rb @@ -12,8 +12,9 @@ module Travis::API::V3 end def self.representation(name, *fields) + location = caller_locations.first fields.each do |field| - class_eval "def #{field}; @model.#{field}; end" unless method_defined?(field) + class_eval "def #{field}; @model.#{field}; end", location.path, location.lineno unless method_defined?(field) available_attributes << field.to_s end representations[name] ||= []