parchemin 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +16 -1
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/bin/articles/azerty.markdown +1 -1
- data/lib/parchemin/models/article.rb +3 -1
- data/spec/article_spec.rb +17 -0
- metadata +24 -5
data/README.markdown
CHANGED
@@ -10,7 +10,22 @@ Just run the following command :
|
|
10
10
|
|
11
11
|
## Usage ##
|
12
12
|
|
13
|
-
|
13
|
+
Install the gem as described above, then run the executable :
|
14
|
+
|
15
|
+
parchemin BLOG_NAME AUTHOR_NAME
|
16
|
+
|
17
|
+
Any Rack-compliant server can run your newly created blog. For example, run the following command from inside the blog directory :
|
18
|
+
|
19
|
+
thin start
|
20
|
+
|
21
|
+
Then just add your articles in the articles directory. Parchemin only support Markdown as markup language. So your articles files must have a '.markdown' extension. Don't forget to add a meta-data header at the top of every files you add. For example :
|
22
|
+
|
23
|
+
<!-- title : "Lorem ipsum" -->
|
24
|
+
<!-- created_at : Date.civil(2010, 3, 23) -->
|
25
|
+
<!-- abstract : "Lorem ipsum dolor sit amet, consectetur adipisicing elit...mollit anim id est laborum." -->
|
26
|
+
<!-- tags : %w(tutorial sinatra) -->
|
27
|
+
|
28
|
+
That's all!! You will find some examples in GEM_PATH/bin/articles. For more information, visit [http://parchemin.raw1z.fr](http://parchemin.raw1z.fr).
|
14
29
|
|
15
30
|
## Note on Patches/Pull Requests ##
|
16
31
|
|
data/Rakefile
CHANGED
@@ -18,6 +18,7 @@ begin
|
|
18
18
|
gem.add_dependency 'compass', '>= 0.10.1'
|
19
19
|
gem.add_dependency 'compass-susy-plugin', '>= 0.7.0.pre8'
|
20
20
|
gem.add_dependency 'rdiscount', '>= 1.6.3'
|
21
|
+
gem.add_dependency 'mongoid', '>= 2.0.0.beta6'
|
21
22
|
gem.files = FileList["[A-Z]*", "{lib}/**/*", "{bin}/**/*", "{app}/**/*"]
|
22
23
|
end
|
23
24
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.1
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<!-- title : "Cillum facilisis" -->
|
2
2
|
<!-- created_at : Date.civil(2010, 3, 26) -->
|
3
3
|
<!-- abstract : "Cillum facilisis metus turpis wisi interdum rutrum, pharetra aenean feugiat velit facilisi penatibus deserunt nonummy praesent blandit. Quisque augue adipiscing penatibus sociosqu eros torquent curabitur, vel praesent consequat aliquet sapien quam adipisicing. A dolore elit luctus scelerisque suspendisse pretium, commodo fringilla mus tellus nulla mollis suspendisse justo enim tempor congue cursus mus." -->
|
4
|
-
<!-- tags : %w(editorial rails) -->
|
4
|
+
<!-- tags : %w(editorial rails test) -->
|
5
5
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
6
6
|
|
7
7
|
Cillum facilisis metus turpis wisi interdum rutrum, pharetra aenean feugiat velit facilisi penatibus deserunt nonummy praesent blandit. Quisque augue adipiscing penatibus sociosqu eros torquent curabitur, vel praesent consequat aliquet sapien quam adipisicing. A dolore elit luctus scelerisque suspendisse pretium, commodo fringilla mus tellus nulla mollis suspendisse justo enim tempor congue cursus mus.
|
@@ -80,8 +80,9 @@ module Parchemin
|
|
80
80
|
Comment.where(:article => @id)
|
81
81
|
end
|
82
82
|
|
83
|
-
|
83
|
+
private
|
84
84
|
|
85
|
+
# Parse the header of an article's file
|
85
86
|
def parse_attributes(filename)
|
86
87
|
body = ""
|
87
88
|
File.open(filename) do |f|
|
@@ -98,6 +99,7 @@ module Parchemin
|
|
98
99
|
@body = RDiscount.new(body).to_html
|
99
100
|
end
|
100
101
|
|
102
|
+
# Test if an article will be filtered depending on a condition
|
101
103
|
def self.filtered?(article, conditions)
|
102
104
|
filtered = true
|
103
105
|
conditions.each do |attribute, value|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe Parchemin::Article do
|
4
|
+
it "parses its header" do
|
5
|
+
article = Parchemin::Article.new('lorem')
|
6
|
+
article.title.should == "Lorem ipsum"
|
7
|
+
article.created_at.should == Date.civil(2010, 3, 23)
|
8
|
+
article.abstract == "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
|
9
|
+
article.tags.should == ['news', 'sinatra']
|
10
|
+
|
11
|
+
article = Parchemin::Article.new('azerty')
|
12
|
+
article.title.should == "Cillum facilisis"
|
13
|
+
article.created_at.should == Date.civil(2010, 3, 26)
|
14
|
+
article.abstract == "Cillum facilisis metus turpis wisi interdum rutrum, pharetra aenean feugiat velit facilisi penatibus deserunt nonummy praesent blandit. Quisque augue adipiscing penatibus sociosqu eros torquent curabitur, vel praesent consequat aliquet sapien quam adipisicing. A dolore elit luctus scelerisque suspendisse pretium, commodo fringilla mus tellus nulla mollis suspendisse justo enim tempor congue cursus mus."
|
15
|
+
article.tags.should == ['editorial', 'rails', 'test']
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parchemin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Rawane ZOSSOU
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-06-13 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -121,7 +121,7 @@ dependencies:
|
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
hash:
|
124
|
+
hash: -602048428
|
125
125
|
segments:
|
126
126
|
- 0
|
127
127
|
- 7
|
@@ -146,6 +146,23 @@ dependencies:
|
|
146
146
|
version: 1.6.3
|
147
147
|
type: :runtime
|
148
148
|
version_requirements: *id008
|
149
|
+
- !ruby/object:Gem::Dependency
|
150
|
+
name: mongoid
|
151
|
+
prerelease: false
|
152
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
hash: 1132205928
|
158
|
+
segments:
|
159
|
+
- 2
|
160
|
+
- 0
|
161
|
+
- 0
|
162
|
+
- beta6
|
163
|
+
version: 2.0.0.beta6
|
164
|
+
type: :runtime
|
165
|
+
version_requirements: *id009
|
149
166
|
description: Parchemin allows you to create and manage a blog whose contents are not stored in a database but directly in files
|
150
167
|
email: dev@raw1z.fr
|
151
168
|
executables:
|
@@ -188,6 +205,7 @@ files:
|
|
188
205
|
- lib/parchemin/models/comment.rb
|
189
206
|
- lib/parchemin/models/static.rb
|
190
207
|
- lib/parchemin/utils.rb
|
208
|
+
- spec/article_spec.rb
|
191
209
|
- spec/parchemin_spec.rb
|
192
210
|
- spec/spec_helper.rb
|
193
211
|
has_rdoc: true
|
@@ -225,5 +243,6 @@ signing_key:
|
|
225
243
|
specification_version: 3
|
226
244
|
summary: File-based blog engine
|
227
245
|
test_files:
|
246
|
+
- spec/article_spec.rb
|
228
247
|
- spec/parchemin_spec.rb
|
229
248
|
- spec/spec_helper.rb
|