smort 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d5c031f80c300eccb14f8e5ec1761f11ca52eb63
4
+ data.tar.gz: fdbeb3e340bf6a3e015f37e0c3bb3ac207fd393d
5
+ SHA512:
6
+ metadata.gz: 1e05da8bdbf46b33c2ed7ce7e036dccb1a8a9194367d14031cd5822ea8e494516203c797c29cdbf41bb688a40998ef950c8aa38359ff8a5da0242177b9bef2df
7
+ data.tar.gz: c04dbc65d90289350ad84f315d0016560fc9a5f25cb00ed4b22204b18aaf1804506cb329aba3f7dfbc38ee2f94b4567a5e1de4434e512002639dde2d72640f38
data/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2015 Sean Clemmer
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any
4
+ purpose with or without fee is hereby granted, provided that the above
5
+ copyright notice and this permission notice appear in all copies.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
+ PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,3 @@
1
+ # Smort ![Version](https://img.shields.io/gem/v/smort.svg?style=flat-square)
2
+
3
+ An erudite JSON schema and document manager
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'smort'
3
+ Smort::Main.start ARGV
@@ -0,0 +1 @@
1
+ require_relative 'smort/main'
@@ -0,0 +1,53 @@
1
+ require 'logger'
2
+
3
+ require_relative 'metadata'
4
+ require_relative 'mjolnir'
5
+ require_relative 'web'
6
+
7
+
8
+ module Smort
9
+ class Main < Mjolnir
10
+
11
+ desc 'version', 'Echo the application version'
12
+ def version
13
+ puts VERSION
14
+ end
15
+
16
+
17
+ desc 'art', 'View the application art'
18
+ def art
19
+ puts "\n%s\n" % ART
20
+ end
21
+
22
+ desc 'web', 'Serve the Web interface'
23
+ option :bind, \
24
+ type: :string,
25
+ aliases: %w[ -b ],
26
+ desc: 'Set Sinatra interface',
27
+ default: '0.0.0.0'
28
+ option :port, \
29
+ type: :numeric,
30
+ aliases: %w[ -p ],
31
+ desc: 'Set Sinatra port',
32
+ default: 4567
33
+ option :environment, \
34
+ type: :string,
35
+ aliases: %w[ -e ],
36
+ desc: 'Set Sinatra environment',
37
+ default: 'development'
38
+ include_common_options
39
+ def web
40
+ Web.set :environment, options.environment
41
+ Web.set :port, options.port
42
+ Web.set :bind, options.bind
43
+ if log.level >= ::Logger::DEBUG
44
+ Web.set :raise_errors, true
45
+ Web.set :dump_errors, true
46
+ Web.set :show_exceptions, true
47
+ Web.set :logging, ::Logger::DEBUG
48
+ end
49
+ Web.run!
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,43 @@
1
+ module Smort
2
+ # Project root
3
+ ROOT = File.dirname(__FILE__), '..', '..'
4
+
5
+ # Pull the project version out of the VERSION file
6
+ VERSION = File.read(File.join(ROOT, 'VERSION')).strip
7
+
8
+ # We don't really do all that much, be humble
9
+ SUMMARY = 'An erudite JSON schema and document manager'
10
+
11
+ # Your benevolent dictator for life
12
+ AUTHOR = 'Sean Clemmer'
13
+
14
+ # Turn here to strangle your dictator
15
+ EMAIL = 'sclemmer@bluejeans.com'
16
+
17
+ # Like the MIT license, but even simpler
18
+ LICENSE = 'ISC'
19
+
20
+ # If you really just can't get enough
21
+ HOMEPAGE = 'https://github.com/sczizzo/smort'
22
+
23
+ # Bundled extensions
24
+ TRAVELING_RUBY_VERSION = '20150210-2.2.0'
25
+ THIN_VERSION = '1.6.3'
26
+ EM_VERSION = '1.0.4'
27
+
28
+ # Every project deserves its own ASCII art
29
+ ART = <<-'EOART' % VERSION
30
+ ___ ___ ___ ___
31
+ / /\ /__/\ / /\ / /\ ___
32
+ / /:/_ | |::\ / /::\ / /::\ / /\
33
+ / /:/ /\ | |:|:\ / /:/\:\ / /:/\:\ / /:/
34
+ / /:/ /::\ __|__|:|\:\ / /:/ \:\ / /:/~/:/ / /:/
35
+ /__/:/ /:/\:\ /__/::::| \:\ /__/:/ \__\:\ /__/:/ /:/___ / /::\
36
+ \ \:\/:/~/:/ \ \:\~~\__\/ \ \:\ / /:/ \ \:\/:::::/ /__/:/\:\
37
+ \ \::/ /:/ \ \:\ \ \:\ /:/ \ \::/~~~~ \__\/ \:\
38
+ \__\/ /:/ \ \:\ \ \:\/:/ \ \:\ \ \:\
39
+ /__/:/ \ \:\ \ \::/ \ \:\ \__\/
40
+ \__\/ \__\/ \__\/ \__\/
41
+ v%s
42
+ EOART
43
+ end
@@ -0,0 +1,56 @@
1
+ require 'slog'
2
+ require 'thor'
3
+
4
+
5
+ # Thor's hammer! Like Thor with better logging
6
+ class Mjolnir < Thor
7
+
8
+ # Common options for Thor commands
9
+ COMMON_OPTIONS = {
10
+ log: {
11
+ type: :string,
12
+ aliases: %w[ -L ],
13
+ desc: 'Log to file instead of STDOUT',
14
+ default: ENV['SMORT_LOG'] || nil
15
+ },
16
+ debug: {
17
+ type: :boolean,
18
+ aliases: %w[ -V ],
19
+ desc: 'Enable DEBUG-level logging',
20
+ default: ENV['SMORT_DEBUG'] || false
21
+ },
22
+ trace: {
23
+ type: :boolean,
24
+ aliases: %w[ -VV ],
25
+ desc: 'Enable TRACE-level logging',
26
+ default: ENV['SMORT_TRACE'] || false
27
+ }
28
+ }
29
+
30
+ # Decorate Thor commands with the options above
31
+ def self.include_common_options
32
+ COMMON_OPTIONS.each do |name, spec|
33
+ option name, spec
34
+ end
35
+ end
36
+
37
+
38
+ no_commands do
39
+
40
+ # Construct a Logger given the command-line options
41
+ def log
42
+ return @logger if defined? @logger
43
+ level = :info
44
+ level = :debug if options.debug?
45
+ level = :trace if options.trace?
46
+ device = options.log || $stderr
47
+ pretty = device.tty? rescue false
48
+ @logger = Slog.new \
49
+ out: device,
50
+ level: level,
51
+ colorize: pretty,
52
+ prettify: pretty
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,36 @@
1
+ require 'pathname'
2
+ require 'thread'
3
+ require 'json'
4
+
5
+ require 'sinatra/base'
6
+
7
+ require_relative 'metadata'
8
+
9
+ Thread.abort_on_exception = true
10
+
11
+
12
+ module Smort
13
+ class Web < Sinatra::Application
14
+ set :root, File.join(Smort::ROOT, 'web')
15
+
16
+ get '/v' do
17
+ content_type :text
18
+ ART
19
+ end
20
+
21
+ get '/' do
22
+ erb :app
23
+ end
24
+
25
+ get '/favicon.ico' do
26
+ send_file File.join(settings.root, 'favicon.ico'), \
27
+ disposition: 'inline'
28
+ end
29
+
30
+ get %r|/app/(.*)| do |fn|
31
+ send_file File.join(settings.root, 'app', fn), \
32
+ disposition: 'inline'
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,5 @@
1
+ ;(function(){
2
+ jQuery(document).ready(function($){
3
+ console.log('Smort');
4
+ });
5
+ })();
@@ -0,0 +1,3 @@
1
+ body {
2
+ margin: 2em;
3
+ }
Binary file
@@ -0,0 +1,2 @@
1
+ <h1>Smort</h1>
2
+ <p>An erudite JSON schema and document manager</p>
@@ -0,0 +1,21 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Smort</title>
5
+ <meta charset="utf-8" />
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
8
+ <meta name="description" content="Weave." />
9
+ <meta name="author" content="Sean Clemmer" />
10
+ <link rel="icon" href="/favicon.ico" />
11
+ <link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.4/superhero/bootstrap.min.css" rel="stylesheet" />
12
+ <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" />
13
+ <link href="/app/style/smort.css" rel="stylesheet" />
14
+ </head>
15
+ <body>
16
+ <%= yield %>
17
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
18
+ <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
19
+ <script src="/app/smort.js"></script>
20
+ </body>
21
+ </html>
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: smort
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Sean Clemmer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: slog
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sinatra
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.4'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: eventmachine
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.4
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: thin
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 1.6.3
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 1.6.3
83
+ description: An erudite JSON schema and document manager.
84
+ email: sclemmer@bluejeans.com
85
+ executables:
86
+ - smort
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - LICENSE
91
+ - Readme.md
92
+ - VERSION
93
+ - bin/smort
94
+ - lib/smort.rb
95
+ - lib/smort/main.rb
96
+ - lib/smort/metadata.rb
97
+ - lib/smort/mjolnir.rb
98
+ - lib/smort/web.rb
99
+ - web/app/smort.js
100
+ - web/app/style/smort.css
101
+ - web/public/favicon.ico
102
+ - web/views/app.erb
103
+ - web/views/layout.erb
104
+ homepage: https://github.com/sczizzo/smort
105
+ licenses:
106
+ - ISC
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.4.5
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: An erudite JSON schema and document manager
128
+ test_files: []