middleman-csv 0.1.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 +7 -0
- data/.gitignore +5 -0
- data/Gemfile +18 -0
- data/Rakefile +14 -0
- data/features/support/env.rb +4 -0
- data/lib/middleman-csv/extension.rb +46 -0
- data/lib/middleman-csv.rb +6 -0
- data/lib/middleman_extension.rb +1 -0
- data/middleman-csv.gemspec +21 -0
- metadata +66 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 92b39ded14850a825c99ea6e5ed4dc088d7f673adbf144468dc7da1268b64183
|
4
|
+
data.tar.gz: 3ba5b52e3377f1c86916219655152e2093a65f7e820942f11a7d9c9a4accc227
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f18a8d9d6f33a752a11c25e23027574b7ebc0f7609a080032388830e508d6ada3e243e94ea6ebd85c37bbe11a001e79a9de4289ce7c289e98d323962156b6a05
|
7
|
+
data.tar.gz: a51794083172ab631ff9da9e1d3f4f2596a45e69d25088b0bad1feb2a1eb10dd1c1a92711639ecc1dd53cd04ce274aadb3e9736b1ec4c1eb99f257d2e33c36ff
|
data/.gitignore
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# If you do not have OpenSSL installed, update
|
2
|
+
# the following line to use "http://" instead
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in middleman-csv.gemspec
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem 'rake'
|
10
|
+
gem 'rdoc'
|
11
|
+
gem 'yard'
|
12
|
+
end
|
13
|
+
|
14
|
+
group :test do
|
15
|
+
gem 'cucumber'
|
16
|
+
gem 'aruba'
|
17
|
+
gem 'rspec'
|
18
|
+
end
|
data/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require 'cucumber/rake/task'
|
5
|
+
|
6
|
+
Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
|
7
|
+
t.cucumber_opts = '--color --tags ~@wip --strict'
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'rake/clean'
|
11
|
+
|
12
|
+
task test: ['cucumber']
|
13
|
+
|
14
|
+
task default: :test
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'csv'
|
2
|
+
|
3
|
+
class CsvGenerator < ::Middleman::Extension
|
4
|
+
option :my_option, 'default', 'An example option'
|
5
|
+
|
6
|
+
def initialize(app, options_hash = {}, &block)
|
7
|
+
super
|
8
|
+
end
|
9
|
+
|
10
|
+
def after_build(builder)
|
11
|
+
@builder = builder
|
12
|
+
build_csv('posts.csv', posts)
|
13
|
+
end
|
14
|
+
|
15
|
+
def build_csv(name, pages)
|
16
|
+
build_dir = app.config.build_dir
|
17
|
+
file_path = File.join(build_dir, name)
|
18
|
+
generte_csv(pages, file_path)
|
19
|
+
|
20
|
+
@builder.thor.say_status :create, file_path
|
21
|
+
|
22
|
+
return file_path
|
23
|
+
end
|
24
|
+
|
25
|
+
def generte_csv(pages, path)
|
26
|
+
CSV.open(path, "wb") do |csv|
|
27
|
+
csv << %w[title summary slug locale body published_on]
|
28
|
+
pages.each do |page|
|
29
|
+
if page.is_a?(Middleman::Blog::BlogArticle)
|
30
|
+
csv << [
|
31
|
+
page.title,
|
32
|
+
page.summary,
|
33
|
+
page.slug,
|
34
|
+
page.locale,
|
35
|
+
page.render(layout: false),
|
36
|
+
page.date.strftime("%Y-%m-%d")
|
37
|
+
]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def posts
|
44
|
+
@posts ||= app.sitemap.resources.find_all { |p| p.ext == ".html" && !p.data.ignore }
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'middleman-csv'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "middleman-csv"
|
6
|
+
s.version = "0.1.0"
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Yuri Kovalov"]
|
9
|
+
s.email = ["yuri@yurikoval.com"]
|
10
|
+
s.homepage = 'https://www.yurikoval.com/middleman-csv'
|
11
|
+
s.summary = 'Middleman plugin for generating CSV from blog posts'
|
12
|
+
s.description = 'A Middleman plugin that renders all blog posts in CSV format'
|
13
|
+
s.license = 'MIT'
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
|
20
|
+
s.add_runtime_dependency("middleman-core", ["~> 4.0"])
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-csv
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yuri Kovalov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-06-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: middleman-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
27
|
+
description: A Middleman plugin that renders all blog posts in CSV format
|
28
|
+
email:
|
29
|
+
- yuri@yurikoval.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- ".gitignore"
|
35
|
+
- Gemfile
|
36
|
+
- Rakefile
|
37
|
+
- features/support/env.rb
|
38
|
+
- lib/middleman-csv.rb
|
39
|
+
- lib/middleman-csv/extension.rb
|
40
|
+
- lib/middleman_extension.rb
|
41
|
+
- middleman-csv.gemspec
|
42
|
+
homepage: https://www.yurikoval.com/middleman-csv
|
43
|
+
licenses:
|
44
|
+
- MIT
|
45
|
+
metadata: {}
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements: []
|
61
|
+
rubygems_version: 3.3.26
|
62
|
+
signing_key:
|
63
|
+
specification_version: 4
|
64
|
+
summary: Middleman plugin for generating CSV from blog posts
|
65
|
+
test_files:
|
66
|
+
- features/support/env.rb
|