tinypress 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7b6bfb136ff4d7540430e3b2eb8db255ef7b1c1a
4
+ data.tar.gz: 95f25e6e55852358dda976a4be9831c2ad380627
5
+ SHA512:
6
+ metadata.gz: 8bc22432441bfa6d2c734d013cefce6ae3e3f9e34fd31257b8f40067791bc013ab7ed2e0974fc705bebd4708141b7a0e97ae96f380854d7fcd793792e94c722f
7
+ data.tar.gz: 7c47d55a1bbdcd0e757eefc91b7aafa35f1599fc9a3615d730310a58b917311a2b51190fc3ab002ff9803a3cb3d5a1f0997ad4e0638bdd9b601295b87449b00a
data/bin/tinypress ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tinypress'
4
+
5
+ TinyPress::Main.start(ARGV)
data/lib/tinypress.rb ADDED
@@ -0,0 +1,59 @@
1
+ # Add tinypress's lib into the load path
2
+ $:.unshift File.join(File.dirname(__FILE__), 'lib')
3
+
4
+ # Load external dependencies
5
+ begin
6
+ # Nice CLI interface toolkit
7
+ require 'thor'
8
+
9
+ # A better ERB
10
+ require 'erubis'
11
+
12
+ # Manipulating filesystem via Ruby
13
+ require 'fileutils'
14
+
15
+ # YAML file support
16
+ require 'yaml'
17
+
18
+ # Pretty output
19
+ require 'colorize'
20
+
21
+ rescue LoadError => e
22
+ puts "Oops. Looks like you're missing the '#{e.path}' gem."
23
+ puts "Try running 'bundle install' to resolve this."
24
+ exit(1)
25
+ end
26
+
27
+ # Load TinyPress components
28
+ require 'tinypress/post'
29
+ require 'tinypress/site'
30
+
31
+ module TinyPress
32
+ class Main < Thor
33
+
34
+ desc "establish", "Generates a TinyPress blog in the current directory"
35
+ def establish
36
+ begin
37
+ TinyPress::Site.generate
38
+ rescue Exception => e
39
+ abort_with_message( e.message )
40
+ end
41
+ end
42
+
43
+ desc "publish", "Publishes content/ using provided templates/ to generate published/"
44
+ def publish
45
+ begin
46
+ TinyPress::Site.publish
47
+ rescue Exception => e
48
+ abort_with_message( e.message )
49
+ end
50
+ end
51
+
52
+ no_commands do
53
+ def abort_with_message( message )
54
+ puts message
55
+ exit(1)
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,21 @@
1
+ module TinyPress
2
+ class CLI < Thor
3
+
4
+ no_commands do
5
+ def self.setup(command_handlers)
6
+ @@command_handlers = command_handlers
7
+ end
8
+ end
9
+
10
+ desc "establish", "Generates a TinyPress blog in the current directory"
11
+ def establish
12
+ @@command_handlers[:establish].call()
13
+ end
14
+
15
+ desc "publish", "Publishes content/ using provided templates/ to generate published/"
16
+ def publish
17
+ @@command_handlers[:publish].call()
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ module TinyPress
2
+ class Config
3
+
4
+ end
5
+ end
@@ -0,0 +1,33 @@
1
+ module TinyPress
2
+ class Post
3
+ attr_reader :title, :description, :date, :publish, :body
4
+
5
+ # Public: Create a new instance of Post.
6
+ #
7
+ # title - A String that represents the Post's title.
8
+ # description - A short String description of the Post.
9
+ # date - A Date object that indicates when this Post was written.
10
+ # publish - A Boolean value indicating if this post should be published
11
+ # body - A String representing the body of the post
12
+ #
13
+ # Returns an instance of Post.
14
+ def initialize( title, description, date, publish, body )
15
+ @title = title
16
+ @description = description
17
+ @date = date
18
+ @publish = publish
19
+ @body = body
20
+ end
21
+
22
+ # Public: Indicates if this Post should be published.
23
+ #
24
+ # Examples
25
+ #
26
+ # print post if post.publish?
27
+ #
28
+ # Returns true if this Post should be published, otherwise returns false.
29
+ def publish?
30
+ @publish
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,31 @@
1
+ module TinyPress
2
+ class Site
3
+ def self.generate
4
+ if self.site_exists?
5
+ raise "Whoops! Looks like there's TinyPress site at this location already.".red
6
+ else
7
+ %x( touch .tinypressrc )
8
+ end
9
+ puts "Established a new TinyPress site.".green
10
+ end
11
+
12
+ def self.publish
13
+ self.abort_unless_site_exists
14
+
15
+ puts "Published whole site.".green
16
+ end
17
+
18
+ def self.site_exists?
19
+ File.exists?('.tinypressrc')
20
+ end
21
+
22
+ def self.abort_unless_site_exists
23
+ unless site_exists?
24
+ message = ""
25
+ message += "Cannot find a TinyPress install at this location.\n".red
26
+ message += "You can try setting up a new site with 'tinypress establish' to resolve this.\n".red
27
+ raise message
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,3 @@
1
+ module TinyPress
2
+ VERSION = "0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tinypress
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Vidur Murali
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.7.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.7.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: erubis
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.7.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.7.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: thor
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.19.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.19.1
55
+ description: My version of a tiny blogging platform. Powers http://vidur.io/writes
56
+ email:
57
+ - vidur.murali@gmail.com
58
+ executables:
59
+ - tinypress
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - lib/tinypress/cli.rb
64
+ - lib/tinypress/config.rb
65
+ - lib/tinypress/post.rb
66
+ - lib/tinypress/site.rb
67
+ - lib/tinypress/version.rb
68
+ - lib/tinypress.rb
69
+ - bin/tinypress
70
+ homepage: http://github.com/vyder/tinypress
71
+ licenses:
72
+ - LICENSE
73
+ metadata: {}
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 1.3.6
88
+ requirements: []
89
+ rubyforge_project:
90
+ rubygems_version: 2.0.3
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: A tiny static blog generator
94
+ test_files: []