diff --git a/heroics.gemspec b/heroics.gemspec index 0549177..da1f99f 100644 --- a/heroics.gemspec +++ b/heroics.gemspec @@ -14,6 +14,7 @@ Gem::Specification.new do |spec| spec.summary = 'A Ruby client generator for HTTP APIs described with a JSON schema' spec.homepage = 'https://github.com/interagent/heroics' spec.license = 'MIT' + spec.required_ruby_version = '>= 2.5.0' spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|example)/}) } spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } @@ -27,7 +28,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'yard' spec.add_development_dependency 'pry' - spec.add_dependency 'erubis', '~> 2.0' spec.add_dependency 'excon' spec.add_dependency 'multi_json', '>= 1.9.2' spec.add_dependency 'moneta' diff --git a/lib/heroics.rb b/lib/heroics.rb index e9a4ac5..a001178 100644 --- a/lib/heroics.rb +++ b/lib/heroics.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true require 'base64' -require 'erubis' +require 'erb' require 'excon' require 'multi_json' require 'uri' diff --git a/lib/heroics/client_generator.rb b/lib/heroics/client_generator.rb index 1da1012..ab79cf0 100644 --- a/lib/heroics/client_generator.rb +++ b/lib/heroics/client_generator.rb @@ -4,12 +4,12 @@ module Heroics # option if you want to ship a gem or generate API documentation using Yard. def self.generate_client filename = File.dirname(__FILE__) + '/views/client.erb' - eruby = Erubis::Eruby.new(File.read(filename)) + eruby = ERB.new(File.read(filename)) context = build_context(Heroics::Configuration.defaults.module_name, Heroics::Configuration.defaults.schema, Heroics::Configuration.defaults.base_url, Heroics::Configuration.defaults.options) - eruby.evaluate(context) + eruby.result_with_hash(context) end private diff --git a/lib/heroics/views/client.erb b/lib/heroics/views/client.erb index 82ebf98..8815447 100644 --- a/lib/heroics/views/client.erb +++ b/lib/heroics/views/client.erb @@ -11,7 +11,7 @@ require 'heroics' require 'uri' require 'moneta' -module <%= @module_name %> +module <%= module_name %> # Get a Client configured to use HTTP Basic or header-based authentication. # # @param api_key [String] The API key to use when connecting. @@ -75,7 +75,7 @@ module <%= @module_name %> if options[:default_headers] final_options[:default_headers].merge!(options[:default_headers]) end - final_options[:cache] = options[:cache] || <%= @cache %> + final_options[:cache] = options[:cache] || <%= cache %> final_options[:url] = options[:url] if options[:url] final_options[:user] = options[:user] if options[:user] final_options @@ -83,21 +83,21 @@ module <%= @module_name %> # Get the default options. def self.default_options - default_headers = <%= @default_headers %> + default_headers = <%= default_headers %> { default_headers: default_headers, - url: "<%= @url %>" + url: "<%= url %>" } end private_class_method :default_options, :custom_options - # <%= @description %> + # <%= description %> class Client def initialize(client) @client = client end - <% for resource in @resources %> + <% for resource in resources %> # <%= resource.description %> # @@ -109,7 +109,7 @@ module <%= @module_name %> end private - <% for resource in @resources %> + <% for resource in resources %> # <%= resource.description %> class <%= resource.class_name %> @@ -133,6 +133,6 @@ module <%= @module_name %> <% end %> SCHEMA = Heroics::Schema.new(MultiJson.load(<<-'HEROICS_SCHEMA')) -<%= @schema %> +<%= schema %> HEROICS_SCHEMA end