pakyow 0.11.3 → 1.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE +3 -19
- data/README.md +96 -23
- data/lib/pakyow/all.rb +12 -0
- data/lib/pakyow/version.rb +5 -1
- metadata +49 -98
- data/bin/pakyow +0 -4
- data/lib/generators/pakyow/app/app_generator.rb +0 -93
- data/lib/generators/pakyow/app/templates/Gemfile +0 -18
- data/lib/generators/pakyow/app/templates/README.md +0 -28
- data/lib/generators/pakyow/app/templates/Rakefile +0 -3
- data/lib/generators/pakyow/app/templates/app/lib/bindings.rb +0 -3
- data/lib/generators/pakyow/app/templates/app/lib/helpers.rb +0 -3
- data/lib/generators/pakyow/app/templates/app/lib/routes.rb +0 -7
- data/lib/generators/pakyow/app/templates/app/setup.rb +0 -24
- data/lib/generators/pakyow/app/templates/app/views/_templates/default.html +0 -33
- data/lib/generators/pakyow/app/templates/app/views/index.html +0 -96
- data/lib/generators/pakyow/app/templates/config.ru +0 -5
- data/lib/generators/pakyow/app/templates/env +0 -1
- data/lib/generators/pakyow/app/templates/env.example +0 -3
- data/lib/generators/pakyow/app/templates/gitignore +0 -8
- data/lib/generators/pakyow/app/templates/public/apple-touch-icon-precomposed.png +0 -0
- data/lib/generators/pakyow/app/templates/public/apple-touch-icon.png +0 -0
- data/lib/generators/pakyow/app/templates/public/favicon.ico +0 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/LICENSE +0 -20
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/fastlink.js +0 -14
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/fastlink.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/ga.js +0 -34
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/ga.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/loader.js +0 -9
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/loader.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/modal.js +0 -98
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/modal.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/mutable.js +0 -70
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/mutable.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/navigator.js +0 -154
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/navigator.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/notifier.js +0 -29
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/notifier.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/scripts/ring/pakyow.js +0 -1936
- data/lib/generators/pakyow/app/templates/public/scripts/ring/pakyow.min.js +0 -1
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/LICENSE +0 -20
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/VERSION +0 -1
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/reset.css +0 -2
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/structure.css +0 -2
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/syntax.css +0 -2
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/theme.css +0 -2
- data/lib/generators/pakyow/app/templates/rspec +0 -3
- data/lib/generators/pakyow/app/templates/spec/integration/app_spec.rb +0 -17
- data/lib/generators/pakyow/app/templates/spec/spec_helper.rb +0 -7
- data/lib/pakyow.rb +0 -12
- data/lib/pakyow/command_line_interface.rb +0 -79
- data/lib/pakyow/commands/console.rb +0 -27
- data/lib/pakyow/commands/console_methods.rb +0 -10
- data/lib/pakyow/commands/server.rb +0 -38
data/bin/pakyow
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
require 'erb'
|
2
|
-
require 'fileutils'
|
3
|
-
require 'securerandom'
|
4
|
-
require 'pakyow/version.rb'
|
5
|
-
|
6
|
-
module Pakyow
|
7
|
-
module Generators
|
8
|
-
class AppGenerator
|
9
|
-
class << self
|
10
|
-
def start(destination)
|
11
|
-
generator = self.new(destination)
|
12
|
-
generator.build
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
FILENAME_TRANSLATIONS = {
|
17
|
-
'rspec' => '.rspec',
|
18
|
-
'gitignore' => '.gitignore',
|
19
|
-
'env' => '.env',
|
20
|
-
'env.example' => '.env.example'
|
21
|
-
}
|
22
|
-
|
23
|
-
def initialize(dest)
|
24
|
-
@src = "#{File.expand_path('../', __FILE__)}/templates/."
|
25
|
-
@dest = dest
|
26
|
-
end
|
27
|
-
|
28
|
-
def build
|
29
|
-
puts "Generating project: #{@dest}"
|
30
|
-
|
31
|
-
if !File.directory?(@dest) || (Dir.entries(@dest) - ['.', '..']).empty?
|
32
|
-
copy
|
33
|
-
else
|
34
|
-
ARGV.clear
|
35
|
-
print "The folder '#{@dest}' is in use. Would you like to populate it anyway? [Yn] "
|
36
|
-
|
37
|
-
if gets.chomp! == 'Y'
|
38
|
-
copy
|
39
|
-
else
|
40
|
-
puts "Aborted!"
|
41
|
-
exit
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
exec
|
46
|
-
puts "Done! Run `cd #{@dest}; bundle exec pakyow server` to get started!"
|
47
|
-
end
|
48
|
-
|
49
|
-
protected
|
50
|
-
|
51
|
-
def copy
|
52
|
-
FileUtils.mkdir(@dest) unless File.exists?(@dest)
|
53
|
-
|
54
|
-
Dir.glob(File.join(@src, '**', '*')).each do |path|
|
55
|
-
relative_path = path[@src.length..-1]
|
56
|
-
generated_path = File.join(@dest, File.dirname(relative_path), translated_filename(File.basename(relative_path)))
|
57
|
-
|
58
|
-
if File.directory?(path)
|
59
|
-
FileUtils.mkdir(generated_path)
|
60
|
-
next
|
61
|
-
end
|
62
|
-
|
63
|
-
erb = ERB.new(File.read(path))
|
64
|
-
File.open(generated_path, 'w') { |f| f.write(erb.result(binding)) }
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def exec
|
69
|
-
FileUtils.cd(@dest) do
|
70
|
-
puts "Running `bundle install` in #{Dir.pwd}"
|
71
|
-
system("bundle install --binstubs")
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def generating_locally?
|
76
|
-
local_pakyow = Gem::Specification.sort_by{ |g| [g.name.downcase, g.version] }.group_by{ |g| g.name }.detect{|k,v| k == 'pakyow'}
|
77
|
-
!local_pakyow || local_pakyow.last.last.version < Gem::Version.new(Pakyow::VERSION)
|
78
|
-
end
|
79
|
-
|
80
|
-
def translated_filename(filename)
|
81
|
-
FILENAME_TRANSLATIONS.fetch(filename, filename)
|
82
|
-
end
|
83
|
-
|
84
|
-
def generate_session_secret
|
85
|
-
SecureRandom.hex(64)
|
86
|
-
end
|
87
|
-
|
88
|
-
def app_name
|
89
|
-
File.basename(@dest)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
<% if generating_locally? %>
|
3
|
-
gem 'pakyow', github: 'pakyow/pakyow'
|
4
|
-
<% else %>
|
5
|
-
gem 'pakyow', '~> <%= Pakyow::VERSION %>'
|
6
|
-
<% end %>
|
7
|
-
# app server
|
8
|
-
gem 'puma', platforms: :ruby
|
9
|
-
gem 'thin', platforms: :mswin
|
10
|
-
|
11
|
-
# use dotenv to load environment variables
|
12
|
-
gem 'dotenv'
|
13
|
-
|
14
|
-
group :test do
|
15
|
-
gem 'rspec'
|
16
|
-
end
|
17
|
-
|
18
|
-
# your gems here
|
@@ -1,28 +0,0 @@
|
|
1
|
-
This is a Pakyow v0.10 project.
|
2
|
-
|
3
|
-
# Getting Started
|
4
|
-
|
5
|
-
Start the server:
|
6
|
-
|
7
|
-
`bundle exec pakyow server`
|
8
|
-
|
9
|
-
You'll find your app running at [http://localhost:3000](http://localhost:3000)!
|
10
|
-
|
11
|
-
Need to interact with your code? Fire up a console:
|
12
|
-
|
13
|
-
`bundle exec pakyow console`
|
14
|
-
|
15
|
-
# Next Steps
|
16
|
-
|
17
|
-
The following resources might be handy:
|
18
|
-
|
19
|
-
- [Website](http://pakyow.org)
|
20
|
-
- [Docs](http://pakyow.org/docs)
|
21
|
-
- [Code](http://github.com/pakyow/pakyow)
|
22
|
-
|
23
|
-
Want to keep up with the latest development? Follow along:
|
24
|
-
|
25
|
-
- [Blog](http://pakyow.org/blog)
|
26
|
-
- [Forums](http://forums.pakyow.org)
|
27
|
-
- [Gitter](https://gitter.im/pakyow/chat)
|
28
|
-
- [Twitter](http://twitter.com/pakyow)
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'bundler/setup'
|
2
|
-
require 'pakyow'
|
3
|
-
|
4
|
-
Pakyow::App.define do
|
5
|
-
configure do
|
6
|
-
Bundler.require :default, Pakyow::Config.env
|
7
|
-
|
8
|
-
if defined?(Dotenv)
|
9
|
-
env_path = ".env.#{Pakyow::Config.env}"
|
10
|
-
Dotenv.load env_path if File.exist?(env_path)
|
11
|
-
Dotenv.load
|
12
|
-
end
|
13
|
-
|
14
|
-
app.name = '<%= app_name %>'
|
15
|
-
end
|
16
|
-
|
17
|
-
configure :development do
|
18
|
-
# development config goes here
|
19
|
-
end
|
20
|
-
|
21
|
-
configure :production do
|
22
|
-
# production config goes here
|
23
|
-
end
|
24
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>
|
5
|
-
<%= app_name %>
|
6
|
-
</title>
|
7
|
-
|
8
|
-
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport">
|
9
|
-
|
10
|
-
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/reset.css">
|
11
|
-
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/structure.css">
|
12
|
-
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/syntax.css">
|
13
|
-
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/theme.css">
|
14
|
-
|
15
|
-
<script src="/scripts/ring/pakyow.js"></script>
|
16
|
-
|
17
|
-
<meta charset="UTF-8">
|
18
|
-
</head>
|
19
|
-
|
20
|
-
<body>
|
21
|
-
<main class="container-1">
|
22
|
-
<!-- @container -->
|
23
|
-
</main>
|
24
|
-
|
25
|
-
<footer class="container-1 margin-t">
|
26
|
-
<p>
|
27
|
-
Built with
|
28
|
-
<svg class="icon" width="10" height="10" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M896 1664q-26 0-44-18l-624-602q-10-8-27.5-26t-55.5-65.5-68-97.5-53.5-121-23.5-138q0-220 127-344t351-124q62 0 126.5 21.5t120 58 95.5 68.5 76 68q36-36 76-68t95.5-68.5 120-58 126.5-21.5q224 0 351 124t127 344q0 221-229 450l-623 600q-18 18-44 18z"></svg>
|
29
|
-
and <a href="http://pakyow.org">Pakyow</a>.
|
30
|
-
</p>
|
31
|
-
</footer>
|
32
|
-
</body>
|
33
|
-
</html>
|
@@ -1,96 +0,0 @@
|
|
1
|
-
<h1>
|
2
|
-
Welcome to Pakyow :)
|
3
|
-
</h1>
|
4
|
-
|
5
|
-
<p class="lead margin-t">
|
6
|
-
The following links might be handy:
|
7
|
-
</p>
|
8
|
-
|
9
|
-
<ul>
|
10
|
-
<li>
|
11
|
-
<a href="http://pakyow.org/">Official Website</a>
|
12
|
-
</li>
|
13
|
-
|
14
|
-
<li>
|
15
|
-
<a href="http://pakyow.org/docs">Guides & Documentation</a>
|
16
|
-
</li>
|
17
|
-
|
18
|
-
<li>
|
19
|
-
<a href="http://github.com/pakyow/pakyow">Source Code</a>
|
20
|
-
</li>
|
21
|
-
</ul>
|
22
|
-
|
23
|
-
<h3 class="margin-t">
|
24
|
-
Show Your Support
|
25
|
-
</h3>
|
26
|
-
|
27
|
-
<p>
|
28
|
-
Give us a star on <a href="http://github.com/pakyow">Github</a>. But don't
|
29
|
-
stop there – tell your friends about the project! Writing blog posts,
|
30
|
-
giving talks to local user groups, and screencasting your experiences with
|
31
|
-
Pakyow all help spread the word. We'll return the favor by helping promote
|
32
|
-
the things you create. Also consider adding a link back to pakyow.org from your
|
33
|
-
project.
|
34
|
-
</p>
|
35
|
-
|
36
|
-
<ul class="plain social-links inline margin-t">
|
37
|
-
<li>
|
38
|
-
<iframe src="https://ghbtns.com/github-btn.html?user=pakyow&repo=pakyow&type=star&count=true&v=2" frameborder="0" scrolling="0" width="85px" height="20px"></iframe>
|
39
|
-
</li>
|
40
|
-
|
41
|
-
<li>
|
42
|
-
<a href="https://twitter.com/pakyow" class="twitter-follow-button" data-show-count="false">Follow @pakyow</a>
|
43
|
-
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
44
|
-
</li>
|
45
|
-
|
46
|
-
<li>
|
47
|
-
<div id="fb-root"></div>
|
48
|
-
<script>(function(d, s, id) {
|
49
|
-
var js, fjs = d.getElementsByTagName(s)[0];
|
50
|
-
if (d.getElementById(id)) return;
|
51
|
-
js = d.createElement(s); js.id = id;
|
52
|
-
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.3&appId=1611480632444271";
|
53
|
-
fjs.parentNode.insertBefore(js, fjs);
|
54
|
-
}(document, 'script', 'facebook-jssdk'));</script>
|
55
|
-
<div class="fb-like" data-href="https://www.facebook.com/pakyow.rb" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div>
|
56
|
-
</li>
|
57
|
-
|
58
|
-
<li>
|
59
|
-
<!-- Place this tag in your head or just before your close body tag. -->
|
60
|
-
<script src="https://apis.google.com/js/platform.js" async defer></script>
|
61
|
-
<!-- Place this tag where you want the +1 button to render. -->
|
62
|
-
<div class="g-plusone" data-size="medium" data-href="http://pakyow.org"></div>
|
63
|
-
</li>
|
64
|
-
</ul>
|
65
|
-
|
66
|
-
<div style="clear:both"></div>
|
67
|
-
|
68
|
-
<h3 class="margin-t">
|
69
|
-
Join the Conversation
|
70
|
-
</h3>
|
71
|
-
|
72
|
-
<p>
|
73
|
-
Come hang out on our <a href="https://gitter.im/pakyow/chat">Gitter channel</a>,
|
74
|
-
which took the place of our IRC channel in 2015. You should also join the
|
75
|
-
<a href="http://forums.pakyow.org">forums</a>, where early discussions about new Pakyow features often take place.
|
76
|
-
Don't forget to lend a hand – ask and answer <a href="http://stackoverflow.com/questions/tagged/pakyow">questions on Stack Overflow</a>.
|
77
|
-
</p>
|
78
|
-
|
79
|
-
<h3 class="margin-t">
|
80
|
-
Contribute to the Project
|
81
|
-
</h3>
|
82
|
-
|
83
|
-
<p>
|
84
|
-
We'd love your contributions to Pakyow code or documentation. Everything is hosted publicly on <a href="http://github.com/pakyow">Github</a>.
|
85
|
-
Looking through the list of open issues would be a great place to start. If you need more direction, jump on
|
86
|
-
one of the communication channels listed above; we're happy to help!
|
87
|
-
</p>
|
88
|
-
|
89
|
-
<h3 class="margin-t">
|
90
|
-
Report Problems you Encounter
|
91
|
-
</h3>
|
92
|
-
|
93
|
-
<p>
|
94
|
-
Found a bug or have an idea for a new feature?
|
95
|
-
Open up an issue on our <a href="https://github.com/pakyow/pakyow/issues">Github issues page</a>.
|
96
|
-
</p>
|
@@ -1 +0,0 @@
|
|
1
|
-
SESSION_SECRET=<%= generate_session_secret %>
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) 2015 Bryan Powell
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,14 +0,0 @@
|
|
1
|
-
pw.component.register('fastlink', function (view, config) {
|
2
|
-
if (window.history) {
|
3
|
-
view.node.addEventListener('click', function (evt) {
|
4
|
-
// don't break open in new tab!
|
5
|
-
if (evt.metaKey || evt.ctrlKey) return;
|
6
|
-
|
7
|
-
evt.preventDefault();
|
8
|
-
window.history.pushState({ uri: this.href }, this.href, this.href);
|
9
|
-
return false;
|
10
|
-
});
|
11
|
-
} else {
|
12
|
-
// unsupported
|
13
|
-
}
|
14
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
pw.component.register("fastlink",function(t,e){window.history&&t.node.addEventListener("click",function(t){return t.metaKey||t.ctrlKey?void 0:(t.preventDefault(),window.history.pushState({uri:this.href},this.href,this.href),!1)})});
|
@@ -1,34 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Ring.js - Google Analytics Component
|
3
|
-
|
4
|
-
Sets up Google Analytics and tracks the immediate pageview along with any
|
5
|
-
pageviews that occur over a WebSocket connection with Navigator. To use,
|
6
|
-
attach the component to the <body> tag and configure the trackingId:
|
7
|
-
|
8
|
-
<body data-ui="ga" data-config="trackingId: yourTrackingIdHere">
|
9
|
-
|
10
|
-
It will automatically ignore pageviews that occur locally.
|
11
|
-
*/
|
12
|
-
|
13
|
-
pw.component.register('ga', function (view, config) {
|
14
|
-
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
15
|
-
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
16
|
-
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
17
|
-
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
18
|
-
ga('create', config.trackingId, 'auto');
|
19
|
-
|
20
|
-
this.track = function (uri) {
|
21
|
-
if (document.domain.indexOf('local') != -1) {
|
22
|
-
return;
|
23
|
-
}
|
24
|
-
|
25
|
-
ga('send', 'pageview', uri);
|
26
|
-
};
|
27
|
-
|
28
|
-
this.listen('navigator:change', function (payload) {
|
29
|
-
this.track(payload.uri);
|
30
|
-
});
|
31
|
-
|
32
|
-
// track the current pageview
|
33
|
-
this.track(location.pathname);
|
34
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
pw.component.register("ga",function(t,n){!function(t,n,e,a,c,i,o){t.GoogleAnalyticsObject=c,t[c]=t[c]||function(){(t[c].q=t[c].q||[]).push(arguments)},t[c].l=1*new Date,i=n.createElement(e),o=n.getElementsByTagName(e)[0],i.async=1,i.src=a,o.parentNode.insertBefore(i,o)}(window,document,"script","//www.google-analytics.com/analytics.js","ga"),ga("create",n.trackingId,"auto"),this.track=function(t){-1==document.domain.indexOf("local")&&ga("send","pageview",t)},this.listen("navigator:change",function(t){this.track(t.uri)}),this.track(location.pathname)});
|