From 3902d7a731c9227671ae80941231d04516a377a7 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Sun, 30 Dec 2018 20:10:24 +0400 Subject: [PATCH 01/20] Change README.md code block language --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5fcce0f..8894ea5 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```bash +```assembly $ eucalypt Commands: From a56d76cf7399cbd7d466ac7af942af2c8e1b928d Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Tue, 1 Jan 2019 05:11:55 +0400 Subject: [PATCH 02/20] Rework public static file serving --- lib/eucalypt.rb | 1 - lib/eucalypt/core/helpers/static.rb | 54 +++++++++++++++---- lib/eucalypt/core/templates/eucalypt/app.rb | 7 ++- .../app/controllers/application_controller.rb | 7 ++- .../app/static/{ => public}/maintenance.html | 0 .../eucalypt/app/static/public/robots.txt | 0 lib/eucalypt/load.rb | 1 + 7 files changed, 54 insertions(+), 16 deletions(-) rename lib/eucalypt/core/templates/eucalypt/app/static/{ => public}/maintenance.html (100%) create mode 100644 lib/eucalypt/core/templates/eucalypt/app/static/public/robots.txt diff --git a/lib/eucalypt.rb b/lib/eucalypt.rb index 566c960..56bcee3 100644 --- a/lib/eucalypt.rb +++ b/lib/eucalypt.rb @@ -13,7 +13,6 @@ require 'eucalypt/core/helpers/manifest' require 'eucalypt/core/helpers/partial' require 'eucalypt/whitelist' -require 'eucalypt/core/helpers/static' Eucalypt::CLI.extend Eucalypt::List diff --git a/lib/eucalypt/core/helpers/static.rb b/lib/eucalypt/core/helpers/static.rb index 5413c14..85dff84 100644 --- a/lib/eucalypt/core/helpers/static.rb +++ b/lib/eucalypt/core/helpers/static.rb @@ -1,15 +1,49 @@ require 'sinatra' -class ApplicationController < Sinatra::Base - def static(uri, *args) - if env['HTTP_VERSION'] == 'HTTP/1.1' and env["REQUEST_METHOD"] != 'GET' - status 303 - else - status 302 +module Eucalypt + class Static::Router + attr_reader :routes + + def initialize(public_folder) + @routes = [] + @public_folder = public_folder end - # According to RFC 2616 section 14.30, "the field value consists of a - # single absolute URI" - response['Location'] = uri(uri.to_s, settings.absolute_redirects?, settings.prefixed_redirects?) - halt(*args) + def route(file, aliases: []) + raise ArgumentError.new("Invalid argument #{file} for 'file' - Expected string (file path with preceding /)") unless file.is_a?(String) && file.start_with?('/') + location = File.join @public_folder, file.sub('/', '') + raise ArgumentError.new("Invalid argument #{file} for 'file' - File \"#{location}\" doesn't exist") unless File.file? location + raise ArgumentError.new("Invalid keyword argument #{aliases} for 'aliases' - Expected Array of String") unless aliases.is_a?(Array) && aliases.all?{|a| a.is_a? String} + raise ArgumentError.new("Invalid keyword argument #{aliases} for 'aliases' - Expected Array of route names (preceded by /)") unless aliases.all?{|a| a.start_with? '/'} + @routes << {file: file, aliases: aliases} + end + + alias_method :<<, :route + end +end + +class ApplicationController < Sinatra::Base + set :static_router, ->{ Eucalypt::Static::Router.new settings.public_folder } + + def self.static(file = nil, aliases: []) + if settings.static_router.is_a? Eucalypt::Static::Router + if block_given? + yield settings.static_router + settings.static_router.routes.each do |route| + route.values.flatten.each do |path| + get(path) { send_file File.join(settings.public_folder, route[:file].sub('/','')) } + end + end + else + if file && aliases + raise ArgumentError.new("Invalid argument #{file} for 'file' - Expected string (file path with preceding /)") unless file.is_a?(String) && file.start_with?('/') + location = File.join settings.public_folder, file.sub('/', '') + raise ArgumentError.new("Invalid argument #{file} for 'file' - File \"#{location}\" doesn't exist") unless File.file? location + raise ArgumentError.new("Invalid keyword argument #{aliases} for 'aliases' - Expected Array of String") unless aliases.is_a?(Array) && aliases.all?{|a| a.is_a? String} + raise ArgumentError.new("Invalid keyword argument #{aliases} for 'aliases' - Expected Array of route names (preceded by /)") unless aliases.all?{|a| a.start_with? '/'} + routes = [file] + aliases + routes.each {|path| get(path){send_file location} } + end + end + end end end \ No newline at end of file diff --git a/lib/eucalypt/core/templates/eucalypt/app.rb b/lib/eucalypt/core/templates/eucalypt/app.rb index 6c2c49a..046cb15 100644 --- a/lib/eucalypt/core/templates/eucalypt/app.rb +++ b/lib/eucalypt/core/templates/eucalypt/app.rb @@ -9,11 +9,10 @@ class ApplicationController < Sinatra::Base set :app_file, __FILE__ # Set public folder for static files - set :public_folder, Eucalypt.path('app', 'static') + set :public_folder, Eucalypt.path('app', 'static', 'public') - # Allow static files to be served - set :static, true - ::Static = Eucalypt::Static.new(settings.public_folder, symbolize: true).freeze + # Set static data accessor + ::Static = Eucalypt::Static.new(Eucalypt.path('app', 'static'), symbolize: true).freeze # Set views directory set :views, Eucalypt.path('app', 'views') diff --git a/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb b/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb index ba49c1c..8acdeae 100644 --- a/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb +++ b/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb @@ -1,8 +1,13 @@ class ApplicationController < Sinatra::Base helpers ApplicationHelper if defined? ApplicationHelper + static do |s| + s.route '/maintenance.html', aliases: %w[/maintenance] + s.route '/robots.txt' + end + maintenance do - static '/maintenance.html' + redirect '/maintenance' end get '/' do diff --git a/lib/eucalypt/core/templates/eucalypt/app/static/maintenance.html b/lib/eucalypt/core/templates/eucalypt/app/static/public/maintenance.html similarity index 100% rename from lib/eucalypt/core/templates/eucalypt/app/static/maintenance.html rename to lib/eucalypt/core/templates/eucalypt/app/static/public/maintenance.html diff --git a/lib/eucalypt/core/templates/eucalypt/app/static/public/robots.txt b/lib/eucalypt/core/templates/eucalypt/app/static/public/robots.txt new file mode 100644 index 0000000..e69de29 diff --git a/lib/eucalypt/load.rb b/lib/eucalypt/load.rb index 9a2dd44..02980cf 100644 --- a/lib/eucalypt/load.rb +++ b/lib/eucalypt/load.rb @@ -2,6 +2,7 @@ Eucalypt.require 'config', 'initializers', '*.rb' require 'eucalypt/core/helpers/maintenance' +require 'eucalypt/core/helpers/static' Eucalypt.require 'app', 'helpers', '{application_helper.rb}' Eucalypt.require 'app', 'controllers', 'application_controller.rb' From 0d396f97ea08d147a970c09fea7ae4fe4d1aedee Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Tue, 1 Jan 2019 05:14:46 +0400 Subject: [PATCH 03/20] Remove robotx.txt --- .../eucalypt/app/controllers/application_controller.rb | 5 +---- .../core/templates/eucalypt/app/static/public/robots.txt | 0 2 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 lib/eucalypt/core/templates/eucalypt/app/static/public/robots.txt diff --git a/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb b/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb index 8acdeae..26aed79 100644 --- a/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb +++ b/lib/eucalypt/core/templates/eucalypt/app/controllers/application_controller.rb @@ -1,10 +1,7 @@ class ApplicationController < Sinatra::Base helpers ApplicationHelper if defined? ApplicationHelper - static do |s| - s.route '/maintenance.html', aliases: %w[/maintenance] - s.route '/robots.txt' - end + static '/maintenance.html', aliases: %w[/maintenance] maintenance do redirect '/maintenance' diff --git a/lib/eucalypt/core/templates/eucalypt/app/static/public/robots.txt b/lib/eucalypt/core/templates/eucalypt/app/static/public/robots.txt deleted file mode 100644 index e69de29..0000000 From e968da46b2669eb605654d9cb6e343766e617d81 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 01:43:17 +0400 Subject: [PATCH 04/20] Move IP whitelisting to ipwatch gem --- eucalypt.gemspec | 1 - lib/eucalypt.rb | 2 +- lib/eucalypt/core/helpers/maintenance.rb | 6 +- lib/eucalypt/core/templates/Gemfile.tt | 4 +- lib/eucalypt/core/templates/eucalypt/app.rb | 3 - .../core/templates/eucalypt/config/guard.rb | 12 ++++ lib/eucalypt/exceptions.rb | 12 ---- lib/eucalypt/guard.rb | 7 ++ lib/eucalypt/whitelist.rb | 70 ------------------- ...{whitelist_spec.rb => whitelist_unused.rb} | 0 10 files changed, 26 insertions(+), 91 deletions(-) create mode 100644 lib/eucalypt/core/templates/eucalypt/config/guard.rb delete mode 100644 lib/eucalypt/exceptions.rb create mode 100644 lib/eucalypt/guard.rb delete mode 100644 lib/eucalypt/whitelist.rb rename spec/eucalypt/whitelist/{whitelist_spec.rb => whitelist_unused.rb} (100%) diff --git a/eucalypt.gemspec b/eucalypt.gemspec index 0caa355..3e4cfa3 100644 --- a/eucalypt.gemspec +++ b/eucalypt.gemspec @@ -27,7 +27,6 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "string-builder", "~> 2.3" spec.add_runtime_dependency "activesupport", "~> 5.2" spec.add_runtime_dependency "activerecord", "~> 5.2" - spec.add_runtime_dependency "bcrypt", "~> 3.1" spec.add_runtime_dependency "front_matter_parser", "0.2.0" spec.add_runtime_dependency "thor", "~> 0.20" spec.add_runtime_dependency "sinatra", "~> 2.0", ">= 2.0.4" diff --git a/lib/eucalypt.rb b/lib/eucalypt.rb index 56bcee3..ab3590a 100644 --- a/lib/eucalypt.rb +++ b/lib/eucalypt.rb @@ -12,7 +12,7 @@ require 'eucalypt/list' require 'eucalypt/core/helpers/manifest' require 'eucalypt/core/helpers/partial' -require 'eucalypt/whitelist' +require 'eucalypt/guard' Eucalypt::CLI.extend Eucalypt::List diff --git a/lib/eucalypt/core/helpers/maintenance.rb b/lib/eucalypt/core/helpers/maintenance.rb index 71de4ee..1d8b941 100644 --- a/lib/eucalypt/core/helpers/maintenance.rb +++ b/lib/eucalypt/core/helpers/maintenance.rb @@ -1,5 +1,5 @@ require 'sinatra' -require 'bcrypt' +require 'securerandom' class ApplicationController < Sinatra::Base if settings.methods(false).include?(:maintenance) if settings.maintenance @@ -14,9 +14,9 @@ class ApplicationController < Sinatra::Base unlink '*', &block end else - define_singleton_method(:maintenance) {|&block| get "/#{BCrypt::Password.create(?1)}", &block} + define_singleton_method(:maintenance) {|&block| get "/#{SecureRandom.random_bytes 16}", &block} end else - define_singleton_method(:maintenance) {|&block| get "/#{BCrypt::Password.create(?1)}", &block} + define_singleton_method(:maintenance) {|&block| get "/#{SecureRandom.random_bytes 16}", &block} end end \ No newline at end of file diff --git a/lib/eucalypt/core/templates/Gemfile.tt b/lib/eucalypt/core/templates/Gemfile.tt index 8d5f8fa..059fe2a 100644 --- a/lib/eucalypt/core/templates/Gemfile.tt +++ b/lib/eucalypt/core/templates/Gemfile.tt @@ -27,4 +27,6 @@ gem 'sassc', '~> 1.12' gem 'uglifier', '~> 4.1' # Hanami HTML/asset helpers gem 'hanami-helpers', '~> 1.2', require: 'hanami/helpers' -gem 'hanami-assets', '~> 1.2', require: ['hanami/assets','hanami/assets/helpers'] \ No newline at end of file +gem 'hanami-assets', '~> 1.2', require: ['hanami/assets','hanami/assets/helpers'] +# IP protection +gem 'ipwatch', '0.1.0' \ No newline at end of file diff --git a/lib/eucalypt/core/templates/eucalypt/app.rb b/lib/eucalypt/core/templates/eucalypt/app.rb index 046cb15..8557c5f 100644 --- a/lib/eucalypt/core/templates/eucalypt/app.rb +++ b/lib/eucalypt/core/templates/eucalypt/app.rb @@ -20,9 +20,6 @@ class ApplicationController < Sinatra::Base # Set default ERB template set :erb, layout: :'layouts/main' - # Set IP whitelist - set :whitelist, Eucalypt::Whitelist.new(Eucalypt.path 'config', 'whitelist') - # Toggle maintenance mode disable :maintenance diff --git a/lib/eucalypt/core/templates/eucalypt/config/guard.rb b/lib/eucalypt/core/templates/eucalypt/config/guard.rb new file mode 100644 index 0000000..87c2303 --- /dev/null +++ b/lib/eucalypt/core/templates/eucalypt/config/guard.rb @@ -0,0 +1,12 @@ +require 'ipwatch' +class ApplicationController < Sinatra::Base + set :guard, IPWatch::Guard.new do |config| + config.default_key = ENV['IP_GUARD_KEY'] || "\xFD\xE1{\x9B\x97n\x01)\xB2Hp^Bg\xE3S" + + config[:site] = IPWatch::Whitelist.new do |list| + list.path = Eucalypt.path 'config', 'lists', 'whitelist.txt' + end + end + + guard.site.add '127.0.0.1', '0.0.0.0' +end \ No newline at end of file diff --git a/lib/eucalypt/exceptions.rb b/lib/eucalypt/exceptions.rb deleted file mode 100644 index 7651082..0000000 --- a/lib/eucalypt/exceptions.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Eucalypt - class NotWhitelistedError < Exception - def initialize(ip) - super "IP address #{ip} not whitelisted" - end - end - class InvalidSettingTypeError < Exception - def initialize(setting, actual, classes) - super "!\nInvalid type for setting :#{setting}, got:\n\t#{actual},\nmust be one of:\n\t#{classes}" - end - end -end \ No newline at end of file diff --git a/lib/eucalypt/guard.rb b/lib/eucalypt/guard.rb new file mode 100644 index 0000000..fe89aab --- /dev/null +++ b/lib/eucalypt/guard.rb @@ -0,0 +1,7 @@ +class ApplicationController < Sinatra::Base + helpers do + def guard + settings.guard + end + end +end \ No newline at end of file diff --git a/lib/eucalypt/whitelist.rb b/lib/eucalypt/whitelist.rb deleted file mode 100644 index 34bce77..0000000 --- a/lib/eucalypt/whitelist.rb +++ /dev/null @@ -1,70 +0,0 @@ -require 'sinatra' -require 'bcrypt' -require_relative 'exceptions' -module Eucalypt - class Whitelist - def initialize(file) - @file = file - File.new(file, "a").close - add '::1', '127.0.0.1', '0.0.0.0' - end - - def add(*to_add) - to_add.flatten.each do |ip| - next if include? ip - File.open(@file, 'a+') do |f| - lines = File.readlines(@file) - if lines.empty? || lines.all? {|line| line == "\n"} - File.open(@file, 'w') do |f1| - f1.write "#{BCrypt::Password.create(ip)}\n" - end - else - prefix = f.read.last == "\n" ? '' : "\n" - f.puts prefix + BCrypt::Password.create(ip) - end - end - end - end - - def remove(*to_remove) - whitelist = [] - hashed = File.readlines(@file).select{|ip| /\$.*/.match ip}.map(&:strip) - - hashed.each do |ip| - if to_remove.flatten.any? {|request| BCrypt::Password.new(ip) == request} - next - else - whitelist << ip unless whitelist.include?(ip) - end - end - - File.open(@file, 'w') {|f| f.write whitelist*("\n")<<"\n"} - end - - def ips() - File.readlines(@file).map(&:strip). - select{|ip| /\$.*/.match ip}. - map {|ip| BCrypt::Password.new ip} - end - - def include?(ip) - ips.any? {|whitelisted| whitelisted == ip} - end - end -end - -class ApplicationController < Sinatra::Base - helpers do - def whitelisted? - case settings.whitelist - when Eucalypt::Whitelist then settings.whitelist.include?(request.ip) - when FalseClass then true - else raise Eucalypt::InvalidSettingTypeError.new(:whitelist, settings.whitelist.class, %w[FalseClass Eucalypt::Whitelist]) - end - end - - def ip_check() - raise Eucalypt::NotWhitelistedError.new(request.ip) unless whitelisted? - end - end -end \ No newline at end of file diff --git a/spec/eucalypt/whitelist/whitelist_spec.rb b/spec/eucalypt/whitelist/whitelist_unused.rb similarity index 100% rename from spec/eucalypt/whitelist/whitelist_spec.rb rename to spec/eucalypt/whitelist/whitelist_unused.rb From dcfd79870ae7195c338f6e00edf0a16cae21b6f9 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:06:22 +0400 Subject: [PATCH 05/20] Remove ipwatch + eucalypt/guard.rb --- lib/eucalypt.rb | 1 - lib/eucalypt/core/templates/Gemfile.tt | 4 +- .../core/templates/eucalypt/config/guard.rb | 12 - spec/eucalypt/whitelist/resources/empty | 0 spec/eucalypt/whitelist/resources/newline | 1 - spec/eucalypt/whitelist/resources/newlines | 4 - spec/eucalypt/whitelist/resources/unexpected | 1 - spec/eucalypt/whitelist/resources/unexpecteds | 3 - spec/eucalypt/whitelist/whitelist_unused.rb | 382 ------------------ 9 files changed, 1 insertion(+), 407 deletions(-) delete mode 100644 lib/eucalypt/core/templates/eucalypt/config/guard.rb delete mode 100644 spec/eucalypt/whitelist/resources/empty delete mode 100644 spec/eucalypt/whitelist/resources/newline delete mode 100644 spec/eucalypt/whitelist/resources/newlines delete mode 100644 spec/eucalypt/whitelist/resources/unexpected delete mode 100644 spec/eucalypt/whitelist/resources/unexpecteds delete mode 100644 spec/eucalypt/whitelist/whitelist_unused.rb diff --git a/lib/eucalypt.rb b/lib/eucalypt.rb index ab3590a..7b99385 100644 --- a/lib/eucalypt.rb +++ b/lib/eucalypt.rb @@ -12,7 +12,6 @@ require 'eucalypt/list' require 'eucalypt/core/helpers/manifest' require 'eucalypt/core/helpers/partial' -require 'eucalypt/guard' Eucalypt::CLI.extend Eucalypt::List diff --git a/lib/eucalypt/core/templates/Gemfile.tt b/lib/eucalypt/core/templates/Gemfile.tt index 059fe2a..8d5f8fa 100644 --- a/lib/eucalypt/core/templates/Gemfile.tt +++ b/lib/eucalypt/core/templates/Gemfile.tt @@ -27,6 +27,4 @@ gem 'sassc', '~> 1.12' gem 'uglifier', '~> 4.1' # Hanami HTML/asset helpers gem 'hanami-helpers', '~> 1.2', require: 'hanami/helpers' -gem 'hanami-assets', '~> 1.2', require: ['hanami/assets','hanami/assets/helpers'] -# IP protection -gem 'ipwatch', '0.1.0' \ No newline at end of file +gem 'hanami-assets', '~> 1.2', require: ['hanami/assets','hanami/assets/helpers'] \ No newline at end of file diff --git a/lib/eucalypt/core/templates/eucalypt/config/guard.rb b/lib/eucalypt/core/templates/eucalypt/config/guard.rb deleted file mode 100644 index 87c2303..0000000 --- a/lib/eucalypt/core/templates/eucalypt/config/guard.rb +++ /dev/null @@ -1,12 +0,0 @@ -require 'ipwatch' -class ApplicationController < Sinatra::Base - set :guard, IPWatch::Guard.new do |config| - config.default_key = ENV['IP_GUARD_KEY'] || "\xFD\xE1{\x9B\x97n\x01)\xB2Hp^Bg\xE3S" - - config[:site] = IPWatch::Whitelist.new do |list| - list.path = Eucalypt.path 'config', 'lists', 'whitelist.txt' - end - end - - guard.site.add '127.0.0.1', '0.0.0.0' -end \ No newline at end of file diff --git a/spec/eucalypt/whitelist/resources/empty b/spec/eucalypt/whitelist/resources/empty deleted file mode 100644 index e69de29..0000000 diff --git a/spec/eucalypt/whitelist/resources/newline b/spec/eucalypt/whitelist/resources/newline deleted file mode 100644 index 8b13789..0000000 --- a/spec/eucalypt/whitelist/resources/newline +++ /dev/null @@ -1 +0,0 @@ - diff --git a/spec/eucalypt/whitelist/resources/newlines b/spec/eucalypt/whitelist/resources/newlines deleted file mode 100644 index fd40910..0000000 --- a/spec/eucalypt/whitelist/resources/newlines +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/spec/eucalypt/whitelist/resources/unexpected b/spec/eucalypt/whitelist/resources/unexpected deleted file mode 100644 index 2e65efe..0000000 --- a/spec/eucalypt/whitelist/resources/unexpected +++ /dev/null @@ -1 +0,0 @@ -a \ No newline at end of file diff --git a/spec/eucalypt/whitelist/resources/unexpecteds b/spec/eucalypt/whitelist/resources/unexpecteds deleted file mode 100644 index 1c943a9..0000000 --- a/spec/eucalypt/whitelist/resources/unexpecteds +++ /dev/null @@ -1,3 +0,0 @@ -a -b -c \ No newline at end of file diff --git a/spec/eucalypt/whitelist/whitelist_unused.rb b/spec/eucalypt/whitelist/whitelist_unused.rb deleted file mode 100644 index 8f99b2b..0000000 --- a/spec/eucalypt/whitelist/whitelist_unused.rb +++ /dev/null @@ -1,382 +0,0 @@ -require 'spec_helper' - -def prepare(file, remove: false) - FileUtils.copy File.join(@resources, file), @file -end - -describe Eucalypt::Whitelist do - before(:all) do - @resources = File.join __dir__, 'resources' - @file = File.join __dir__, 'whitelist' - end - after { File.delete @file } - - context "when whitelist doesn't exist" do - before { Whitelist.new @file } - - it { expect(File).to exist @file } - end - context 'when whitelist exists' do - let(:whitelist) { Whitelist.new @file } - - context 'and file is empty' do - before { prepare 'empty' } - let(:contents) { File.open @file, &:read } - - context '#initialize' do - context 'default IPs' do - it 'should exist' do - ['::1', '0.0.0.0', '127.0.0.1'].each do |ip| - expect(whitelist.include? ip).to be true - end - end - end - end - context '#add' do - context 'with one IP' do - context '(new)' do - before { whitelist.add '255.255.255.255' } - - it 'should exist' do - expect(whitelist.include? '255.255.255.255').to be true - end - end - context '(existing)' do - before { whitelist.add '255.255.255.255', '255.255.255.255' } - - it 'should exist' do - expect(whitelist.include? '255.255.255.255').to be true - end - it 'should exist once' do - expect(File.readlines(@file).size).to eq 4 - end - end - end - context 'with multiple IPs' do - context '(new)' do - before { whitelist.add '0.0.0.1', '0.0.0.2', '0.0.0.3' } - - it 'should exist' do - ['0.0.0.1', '0.0.0.2', '0.0.0.3'].each do |ip| - expect(whitelist.include? ip).to be true - end - end - end - context '(existing)' do - before { whitelist.add '0.0.0.1', '0.0.0.2', '0.0.0.3', '0.0.0.1', '0.0.0.2', '0.0.0.3' } - - it 'should exist' do - ['0.0.0.1', '0.0.0.2', '0.0.0.3'].each do |ip| - expect(whitelist.include? ip).to be true - end - end - it 'should exist once' do - expect(File.readlines(@file).size).to eq 6 - end - end - end - end - context '#remove' do - context 'with one IP' do - context '(present)' do - before { whitelist.remove '::1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be true - expect(whitelist.include? '127.0.0.1').to be true - end - end - context '(not present)' do - before { whitelist.remove '255.255.255.255' } - - it 'should retain file contents' do - expect(File.open @file, &:read).to eq contents - end - end - end - context 'with multiple IPs' do - context '(present)' do - before { whitelist.remove '::1', '0.0.0.0', '127.0.0.1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be false - end - end - context '(not present)' do - before { whitelist.remove '0.0.0.1', '0.0.0.2', '0.0.0.3' } - - it 'should retain file contents' do - ['0.0.0.1', '0.0.0.2', '0.0.0.3'].each do |ip| - expect(File.open @file, &:read).to eq contents - end - end - end - end - end - end - context 'and file contains one newline character' do - before { prepare 'newline' } - let(:contents) { File.open @file, &:read } - - context '#initialize' do - it 'should contain the newline character' do - expect(contents).to eq "\n" - end - end - context '#add' do - context 'with one IP' do - before { whitelist.add '255.255.255.255' } - - it 'should exist' do - expect(whitelist.include? '255.255.255.255').to be true - end - - it { expect(contents).not_to start_with "\n" } - end - context 'with multiple IPs' do - before { whitelist.add '0.0.0.1', '0.0.0.2', '0.0.0.3' } - - it 'should exist' do - ['0.0.0.1', '0.0.0.2', '0.0.0.3'].each do |ip| - expect(whitelist.include? ip).to be true - end - end - - it { expect(contents).not_to start_with "\n" } - end - end - context '#remove' do - context 'with one IP' do - before { whitelist.remove '::1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be true - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "\n" } - end - context 'with multiple IPs' do - before { whitelist.remove '::1', '0.0.0.0' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "\n" } - end - context 'with all IPs' do - before { whitelist.remove '::1', '0.0.0.0', '127.0.0.1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be false - end - - it { expect(contents).to start_with "\n" } - end - end - end - context 'and file contains multiple newline characters' do - before { prepare 'newlines' } - let(:contents) { File.open @file, &:read } - - context '#initialize' do - it { expect(contents).to eq "\n\n\n\n" } - end - context '#add' do - context 'with one IP' do - before { whitelist.add '255.255.255.255' } - - it 'should exist' do - expect(whitelist.include? '255.255.255.255').to be true - end - - it { expect(contents).not_to start_with "\n\n\n\n" } - end - context 'with multiple IPs' do - before { whitelist.add '0.0.0.1', '0.0.0.2', '0.0.0.3' } - - it 'should exist' do - ['0.0.0.1', '0.0.0.2', '0.0.0.3'].each do |ip| - expect(whitelist.include? ip).to be true - end - end - - it { expect(contents).not_to start_with "\n\n\n\n" } - end - end - context '#remove' do - context 'with one IP' do - before { whitelist.remove '::1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be true - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "\n\n\n\n" } - end - context 'with multiple IPs' do - before { whitelist.remove '::1', '0.0.0.0' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "\n\n\n\n" } - end - context 'with all IPs' do - before { whitelist.remove '::1', '0.0.0.0', '127.0.0.1' } - - it 'should not exist' do - ['::1', '0.0.0.0', '127.0.0.1'].each do |ip| - expect(whitelist.include? ip).to be false - end - end - it { expect(contents).not_to start_with "\n\n\n\n" } - end - end - end - context 'and file contains an unexpected character' do - before { prepare 'unexpected' } - - let(:contents) { File.open @file, &:read } - - context '#initialize' do - it { expect(contents).to eq "a" } - end - context '#add' do - context 'with one IP' do - before { whitelist.add '255.255.255.255' } - - it 'should exist' do - expect(whitelist.include? '255.255.255.255').to be true - end - - it { expect(contents).to start_with "a" } - end - context 'with multiple IPs' do - before { whitelist.add '0.0.0.1', '0.0.0.2', '0.0.0.3' } - - it 'should exist' do - ['0.0.0.1', '0.0.0.2', '0.0.0.3'].each do |ip| - expect(whitelist.include? ip).to be true - end - end - - it { expect(contents).to start_with "a" } - end - end - context '#remove' do - context 'with one IP' do - before { whitelist.remove '::1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be true - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "a" } - end - context 'with multiple IPs' do - before { whitelist.remove '::1', '0.0.0.0' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "a" } - end - context 'with all IPs' do - before { whitelist.remove '::1', '0.0.0.0', '127.0.0.1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be false - end - it { expect(contents).not_to start_with "a" } - end - end - end - context 'and file contains multiple unexpected characters' do - before { prepare 'unexpecteds' } - - let(:contents) { File.open @file, &:read } - - context '#initialize' do - it { expect(contents).to eq "a\nb\nc" } - end - context '#add' do - context 'with one IP' do - before { whitelist.add '255.255.255.255' } - - it 'should exist' do - expect(whitelist.include? '255.255.255.255').to be true - end - - it { expect(contents).to start_with "a\nb\nc" } - end - context 'with multiple IPs' do - before { whitelist.add '0.0.0.1', '0.0.0.2', '0.0.0.3' } - - it 'should exist' do - ['0.0.0.1', '0.0.0.2', '0.0.0.3'].each do |ip| - expect(whitelist.include? ip).to be true - end - end - - it { expect(contents).to start_with "a\nb\nc" } - end - end - context '#remove' do - context 'with one IP' do - before { whitelist.remove '::1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be true - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "a\nb\nc" } - end - context 'with multiple IPs' do - before { whitelist.remove '::1', '0.0.0.0' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be true - end - - it { expect(contents).not_to start_with "a\nb\nc" } - end - context 'with all IPs' do - before { whitelist.remove '::1', '0.0.0.0', '127.0.0.1' } - - it 'should not exist' do - expect(whitelist.include? '::1').to be false - expect(whitelist.include? '0.0.0.0').to be false - expect(whitelist.include? '127.0.0.1').to be false - end - it { expect(contents).not_to start_with "a\nb\nc" } - end - end - end - end -end \ No newline at end of file From 2dce8e4e774be0a3fd01cbe8e62fcdcf1d3686cb Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:16:34 +0400 Subject: [PATCH 06/20] Change assets.rb to automatically append paths --- lib/eucalypt/core/templates/eucalypt/config/assets.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/eucalypt/core/templates/eucalypt/config/assets.rb b/lib/eucalypt/core/templates/eucalypt/config/assets.rb index 1baff55..66d6f36 100644 --- a/lib/eucalypt/core/templates/eucalypt/config/assets.rb +++ b/lib/eucalypt/core/templates/eucalypt/config/assets.rb @@ -1,13 +1,13 @@ class ApplicationController < Sinatra::Base set :assets, Sprockets::Environment.new - assets.append_path Eucalypt.path 'app', 'assets', 'stylesheets' - assets.append_path Eucalypt.path 'app', 'assets', 'scripts' - assets.append_path Eucalypt.path 'app', 'assets', 'images' - assets.append_path Eucalypt.path 'app', 'assets', 'fonts' assets.css_compressor = :scss assets.js_compressor = :uglify + Eucalypt.glob 'app', 'assets', '*' do |item| + assets.append_path item if File.directory? item + end + get '/assets/*' do env["PATH_INFO"].sub! '/assets', '' settings.assets.call env From 2cf1d9528f3556efa0f51926ea536a9bdf507698 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:17:44 +0400 Subject: [PATCH 07/20] Remove assets.rb path appending from blog setup command --- lib/eucalypt/blog/namespaces/blog/cli/blog.rb | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/eucalypt/blog/namespaces/blog/cli/blog.rb b/lib/eucalypt/blog/namespaces/blog/cli/blog.rb index 299f9d5..1df6f5e 100644 --- a/lib/eucalypt/blog/namespaces/blog/cli/blog.rb +++ b/lib/eucalypt/blog/namespaces/blog/cli/blog.rb @@ -31,18 +31,6 @@ def setup generator.helper generator.controller(route: options[:route]) generator.views - - assets_file = File.join(directory, 'config', 'assets.rb') - - File.open(assets_file) do |f| - return if f.read.include? "assets.append_path Eucalypt.path 'app', 'assets', 'blog'" - end - - insert_into_file( - assets_file, - " assets.append_path Eucalypt.path 'app', 'assets', 'blog'\n", - after: "set :assets, Sprockets::Environment.new\n" - ) else Eucalypt::Error.wrong_directory end From 62e070bad23bc3fa97698337dce8e82611aee446 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:24:36 +0400 Subject: [PATCH 08/20] Change rack-test, rspec and should-matchers to be in test env --- lib/eucalypt/core/templates/Gemfile.tt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/eucalypt/core/templates/Gemfile.tt b/lib/eucalypt/core/templates/Gemfile.tt index 8d5f8fa..936b397 100644 --- a/lib/eucalypt/core/templates/Gemfile.tt +++ b/lib/eucalypt/core/templates/Gemfile.tt @@ -7,7 +7,7 @@ gem 'rake', '~> 12.3' gem 'thin', '~> 1.7' # Test environment -group :test, :production do +group :test do gem 'rack-test', '~> 1.0', require: 'rack/test' gem 'rspec', '~> 3.7' gem 'shoulda-matchers', '~> 3.1' From 6516e76787cab915de07f3f34b1a4eed4330caae Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:27:40 +0400 Subject: [PATCH 09/20] Bump VERSION to 0.5.2 --- lib/eucalypt/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/eucalypt/version.rb b/lib/eucalypt/version.rb index 9d885b6..3756452 100644 --- a/lib/eucalypt/version.rb +++ b/lib/eucalypt/version.rb @@ -1,3 +1,3 @@ module Eucalypt - VERSION = '0.5.1' + VERSION = '0.5.2' end \ No newline at end of file From 977c6fb267c4aa9a60c11d2bb1de65aeeb714bae Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:35:24 +0400 Subject: [PATCH 10/20] Update CHANGELOG.md --- CHANGELOG.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d034d75..21dcd3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# 0.5.2 + +#### Major changes + +- Remove IP whitelisting feature (remove `Eucalypt::Whitelist` and `eucalypt/whitelist.rb`) +- (**`config/assets.rb`**): Change `assets.rb` to automatically append the paths of any directories under `app/assets` to the `Sprockets::Environment` object. +- Rework `static` method for serving static files + +#### Minor changes + +- (**`Gemfile`**): Remove `:production` symbol from what should be the test environment for requiring the `rspec`, `rack-test` and `should-matchers` gems. + # 0.5.1 #### Major changes @@ -13,7 +25,7 @@ #### Major changes -- Introduced IP whitelisting with the `Eucalypt::Whitelist` class, and IP-protected routes with the `ip_check` helper method +- Introduce IP whitelisting with the `Eucalypt::Whitelist` class, and IP-protected routes with the `ip_check` helper method - Rework maintenance mode to be defined with a special route in the `ApplicationController`: ```ruby @@ -41,7 +53,7 @@ #### Minor changes -- Fix a minor whitespace issue in `config/assets.rb` when blogging environment is setup +- Fix a minor whitespace issue in `config/asset_pipeline.rb` when blogging environment is setup # 0.4.1 From 1c9bf3cc7e73253ec56f9e44b8a02e873b4e8d6c Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:48:52 +0400 Subject: [PATCH 11/20] Update CHANGELOG.md + README code block highlight --- CHANGELOG.md | 7 +++++-- README.md | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21dcd3b..6dc9e87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,17 +5,20 @@ - Remove IP whitelisting feature (remove `Eucalypt::Whitelist` and `eucalypt/whitelist.rb`) - (**`config/assets.rb`**): Change `assets.rb` to automatically append the paths of any directories under `app/assets` to the `Sprockets::Environment` object. - Rework `static` method for serving static files +- Revert static data accessor to be configured to `app/static` rather than the value of `settings.public_folder` +- Change `settings.public_folder` to `app/static/public` (to differentiate between static files which are public, and static files which should remain internal to the application unless exposed at other endpoints) #### Minor changes -- (**`Gemfile`**): Remove `:production` symbol from what should be the test environment for requiring the `rspec`, `rack-test` and `should-matchers` gems. +- (**`Gemfile`**): Remove `:production` symbol from what should be the test environment for requiring the `rspec`, `rack-test` and `should-matchers` gems +- Change `README.md` code block highlighting # 0.5.1 #### Major changes - Move policy role models from `app/models` to `app/models/roles` to avoid cluttering the `models` directory, preserving it for proper models such as `User` -- Add `lib/eucalypt/security/permissions.rb` to dynamically define permission methods for each policy in `app/policies` to avoid cluttering the policy file. +- Add `lib/eucalypt/security/permissions.rb` to dynamically define permission methods for each policy in `app/policies` to avoid cluttering the policy file #### Minor changes diff --git a/README.md b/README.md index 8894ea5..c64661f 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```assembly +```D $ eucalypt Commands: From f9c06cbe85db57a0d0b644d8f4687db5fd4ddb0e Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:52:13 +0400 Subject: [PATCH 12/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c64661f..0c6abf2 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```D +```haskell $ eucalypt Commands: From 6d28004417a28106d52f93ba29b5b84d94ec0f87 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:53:46 +0400 Subject: [PATCH 13/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c6abf2..4704559 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```haskell +```mathematica $ eucalypt Commands: From 3df0231fcc160596ca530adac295ecb456a19772 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:54:48 +0400 Subject: [PATCH 14/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4704559..24493ad 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```mathematica +```lua $ eucalypt Commands: From 2fe5d84e91b10455bd8fd9c44da13fee6d1468f8 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:56:08 +0400 Subject: [PATCH 15/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 24493ad..9f511fb 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```lua +```coffeescript $ eucalypt Commands: From c342d4ffd1190fe57c4d79fd61ace10e97cd77b3 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:56:55 +0400 Subject: [PATCH 16/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f511fb..fa085a8 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```coffeescript +```gas $ eucalypt Commands: From a04fbe955210494b5bf88ed289bc4e1b469c1fc2 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 02:57:27 +0400 Subject: [PATCH 17/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fa085a8..e84f4ed 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```gas +```go $ eucalypt Commands: From dd718e15d871810b4c43e24207a1bf947a843526 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 03:05:22 +0400 Subject: [PATCH 18/20] Add CLI screenshot to README --- CHANGELOG.md | 4 ++-- README.md | 20 +------------------- eucalypt.gemspec | 2 +- gfx/cli.png | Bin 0 -> 130844 bytes 4 files changed, 4 insertions(+), 22 deletions(-) create mode 100644 gfx/cli.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dc9e87..7d73edd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ #### Major changes - Remove IP whitelisting feature (remove `Eucalypt::Whitelist` and `eucalypt/whitelist.rb`) -- (**`config/assets.rb`**): Change `assets.rb` to automatically append the paths of any directories under `app/assets` to the `Sprockets::Environment` object. +- (**`config/assets.rb`**): Change `assets.rb` to automatically append the paths of any directories under `app/assets` to the `Sprockets::Environment` object - Rework `static` method for serving static files - Revert static data accessor to be configured to `app/static` rather than the value of `settings.public_folder` - Change `settings.public_folder` to `app/static/public` (to differentiate between static files which are public, and static files which should remain internal to the application unless exposed at other endpoints) @@ -11,7 +11,7 @@ #### Minor changes - (**`Gemfile`**): Remove `:production` symbol from what should be the test environment for requiring the `rspec`, `rack-test` and `should-matchers` gems -- Change `README.md` code block highlighting +- (**`README.md`**): Remove `README.md` code highlighting, replace with screenshot of CLI # 0.5.1 diff --git a/README.md b/README.md index e84f4ed..50a815a 100644 --- a/README.md +++ b/README.md @@ -32,25 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -```go -$ eucalypt - -Commands: - eucalypt init [NAME] ·› Sets up your application - eucalypt launch [ENV] ·› Launches your application - eucalypt console ·› Interactive console with all files loaded - eucalypt test ·› Run all application tests - eucalypt version ·› Display installed Eucalypt version - eucalypt rake ·› Run all database migrations - eucalypt blog [COMMAND] ·› Manage static blog environment - eucalypt generate [COMMAND] ·› Generate individual MVC files or scaffolds - eucalypt destroy [COMMAND] ·› Destroy individual MVC files or scaffolds - eucalypt security [COMMAND] ·› Manage authentication and authorization - eucalypt migration [COMMAND] ·› Generate ActiveRecord migrations - -For more information about a specific command, use eucalypt -H. -Example: eucalypt -H generate scaffold -``` +

## Documentation diff --git a/eucalypt.gemspec b/eucalypt.gemspec index 3e4cfa3..a3d6872 100644 --- a/eucalypt.gemspec +++ b/eucalypt.gemspec @@ -13,7 +13,7 @@ Gem::Specification.new do |spec| spec.license = "MIT" spec.files = Dir.glob('lib/**/*', File::FNM_DOTMATCH) + %w[Gemfile LICENSE README.md Rakefile eucalypt.gemspec bin/eucalypt] spec.bindir = "bin" - spec.executables = spec.files.grep(%r{^bin/}) {|f| File.basename(f)} + spec.executables = "eucalypt" spec.require_paths = ["lib"] spec.required_ruby_version = "~> 2.5" diff --git a/gfx/cli.png b/gfx/cli.png new file mode 100644 index 0000000000000000000000000000000000000000..eb2461070617690728588ba6925a89e3b2d33c56 GIT binary patch literal 130844 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

&r_&9ApO1 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 JrJ5H0{|AW!*R%it literal 0 HcmV?d00001 From 426b8f5d25284b9a53dc50369b725dd7c7afb453 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 03:07:17 +0400 Subject: [PATCH 19/20] Add scaling for CLI image in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50a815a..d3869b1 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -

+

## Documentation From cd032705ce3a62e4c139a5b70d92d1f322c07ad3 Mon Sep 17 00:00:00 2001 From: Edwin Onuonga Date: Wed, 2 Jan 2019 03:08:29 +0400 Subject: [PATCH 20/20] Add scaling for CLI image in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3869b1..811dad3 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ $ eucalypt init my-new-app Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands: -

+

## Documentation