eucalypt 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8eb746d923adcac06b4aa32dde5d5071924dbf30cd11e480e81d56d97de81b79
4
- data.tar.gz: 1efd75b49e8b74db94b4b272afeba91cdda268a0f5e661f65a1eb579117a7d82
3
+ metadata.gz: 6c60fdfe8acbb3fc20522a15ba2b2ae84ae44e0bf38cac367e0cb8e68ca27d93
4
+ data.tar.gz: 44a5f0030d260eed36904ff8b25d5604b37168dec7bdc6e0da7a65ef6c4d5838
5
5
  SHA512:
6
- metadata.gz: a7e945e2f4c9d52b593c7cf4444f7bb3b00c27ad12f6dfc3d38bc1ccc5e7dcbc7e44d528fe8fba23fedc47d4ee7279c8165fefd13ecddeac51885028463be645
7
- data.tar.gz: 9d3dc2aeaf568d90ff2f5ceebff6668a5ddfa0a64373ccb97f32f6da52b13af98b37db520ba798ab41bee23a2b27be33ee22b7050968c1e427ec1a4c788de018
6
+ metadata.gz: 4327801d427b9edf24794acac2cf0dc27149aacefdc93c3a2819395237c93fc78dc180119c34cbc9397f7d2730ee2b6b5377f38b81c87d6219ce2abb4e72ef79
7
+ data.tar.gz: c365dc1bf0e21686501762fb4bb7408e6a1873eec45285fd930f214e1e94501c2b017512c6e10b9a1e9a9726fed6c35f1558abd457074a16e48a7d38b1a62771
data/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  # Eucalypt
10
10
 
11
- Micro-framework and CLI wrapped around the Sinatra DSL.
11
+ Micro-framework, application generator and CLI wrapped around the Sinatra DSL.
12
12
 
13
13
  ## Installation
14
14
 
@@ -26,20 +26,18 @@ Initialize a new application with:
26
26
  $ eucalypt init my-new-app
27
27
  ```
28
28
 
29
- > Once the setup is complete, make sure the required gems have been installed (without any errors). This is indicated by the presence of a `Gemfile.lock` file.
29
+ > Once the setup is complete, make sure the required gems have been installed (without any errors).
30
30
  >
31
31
  > This should have been done automatically unless you used the `--no-bundle` flag during initialization.
32
32
 
33
- Move into your new application's directory and run the top-level `eucalypt` command to display a list of all available commands.
33
+ Move into your new application's directory and run the top-level `$ eucalypt` command to display a list of all available commands.
34
34
 
35
35
  ## Documentation
36
36
 
37
- The full documentation of the CLI and micro-framework can be found [here](https://eucalypt.gitbook.io/eucalypt).
37
+ Full documentation can be found in the form of a GitBook, [here](https://eucalypt.gitbook.io/eucalypt).
38
38
 
39
39
  ## Features
40
40
 
41
- Some of these features are pretty set in stone, but it may be possible to change some of them around with a little bit of work.
42
-
43
41
  | Type | Feature |
44
42
  | -------------------- | ------------------------------------------------------------ |
45
43
  | Core/DSL | [Sinatra](http://sinatrarb.com/) |
data/eucalypt.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Edwin Onuonga"]
9
9
  spec.email = ["edwinonuonga@gmail.com"]
10
10
 
11
- spec.summary = %q{Micro-framework and CLI wrapped around the Sinatra DSL.}
11
+ spec.summary = %q{Micro-framework, application generator and CLI wrapped around the Sinatra DSL.}
12
12
  spec.homepage = "https://eucalypt.gitbook.io/eucalypt"
13
13
  spec.license = "MIT"
14
14
  spec.files = Dir.glob('lib/**/*', File::FNM_DOTMATCH) + %w[Gemfile LICENSE README.md Rakefile eucalypt.gemspec bin/eucalypt]
@@ -4,8 +4,6 @@ require 'sinatra'
4
4
  Bundler.require :default, settings.environment
5
5
  Eucalypt.set_root __dir__
6
6
 
7
- Static = Eucalypt::Static.new(Eucalypt.path('app', 'static'), symbolize: true).freeze
8
-
9
7
  class ApplicationController < Sinatra::Base
10
8
  # Set server
11
9
  set :server, %w[thin webrick]
@@ -16,6 +14,13 @@ class ApplicationController < Sinatra::Base
16
14
  # Set application root directory
17
15
  set :root, Eucalypt.root
18
16
 
17
+ # Set public folder for static files
18
+ set :public_folder, Eucalypt.path('app', 'static')
19
+
20
+ # Allow static files to be served
21
+ set :static, true
22
+ ::Static = Eucalypt::Static.new(settings.public_folder, symbolize: true).freeze
23
+
19
24
  # Set views directory
20
25
  set :views, Eucalypt.path('app', 'views')
21
26
 
@@ -3,12 +3,16 @@ class ApplicationController < Sinatra::Base
3
3
  set :logger, Lumberjack::Logger.new
4
4
  helpers { def logger() settings.logger end }
5
5
 
6
- # General logging
7
- %i[production test].each do |app_env|
6
+ configure(:test) { disable :logging }
7
+ configure(:development) { enable :logging }
8
+
9
+ # Environments where STDOUT should be redirected to log file
10
+ %i[production].each do |app_env|
8
11
  configure app_env do
12
+ enable :logging
9
13
  use Rack::CommonLogger, $stdout
10
14
 
11
- time = Time.now.strftime("%Y-%m-%dT%H-%M-%S_%z")
15
+ time = Time.now.strftime("%Y-%m-%d_%H-%M-%S")
12
16
  log_path = Eucalypt.path 'log', time.sub(/_\+/, ?p).sub(/_\-/, ?m)
13
17
  FileUtils.mkdir_p log_path
14
18
 
@@ -1,7 +1,5 @@
1
- require './app'
2
- Bundler.require :test
3
-
4
1
  ENV['APP_ENV'] = 'test'
2
+ require './app'
5
3
 
6
4
  Shoulda::Matchers.configure do |config|
7
5
  config.integrate do |with|
@@ -1,4 +1,5 @@
1
1
  require 'eucalypt/helpers/inflect'
2
+ require 'active_support/core_ext/hash'
2
3
  require 'json'
3
4
  require 'yaml'
4
5
 
@@ -6,7 +7,7 @@ module Eucalypt
6
7
  class Static
7
8
  include Eucalypt::Helpers
8
9
 
9
- FILE_TYPES = {yaml: %w[yml yaml], json: %w[json geojson]}
10
+ FILE_TYPES = {yaml: %w[yml yaml], json: %w[json geojson], xml: %w[xml]}
10
11
 
11
12
  def initialize(directory, symbolize: false)
12
13
  contents = Dir[File.join directory, '*']
@@ -23,7 +24,7 @@ module Eucalypt
23
24
  extension = File.extname(file).sub /\A./, ''
24
25
  file_type = nil
25
26
  FILE_TYPES.each {|t, e| file_type = t if e.include? extension}
26
- raise TypeError.new("Unsupported extension: .#{extension}") if file_type.nil?
27
+ return if file_type.nil? # Unsupported extension
27
28
  define_singleton_method Inflect.resource_keep_inflection(file_name) do
28
29
  hash = parse(file_type, file)
29
30
  hash = hash ? hash : {}
@@ -42,6 +43,7 @@ module Eucalypt
42
43
  case file_type
43
44
  when :yaml then YAML.load_file(file)
44
45
  when :json then JSON.parse(File.read file)
46
+ when :xml then Hash.from_xml(File.read file)
45
47
  end
46
48
  end
47
49
 
@@ -1,3 +1,3 @@
1
1
  module Eucalypt
2
- VERSION = '0.3.5'
2
+ VERSION = '0.4.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eucalypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edwin Onuonga
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-07 00:00:00.000000000 Z
11
+ date: 2018-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -377,5 +377,6 @@ rubyforge_project:
377
377
  rubygems_version: 2.7.6
378
378
  signing_key:
379
379
  specification_version: 4
380
- summary: Micro-framework and CLI wrapped around the Sinatra DSL.
380
+ summary: Micro-framework, application generator and CLI wrapped around the Sinatra
381
+ DSL.
381
382
  test_files: []