refinerycms-page_seeder 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.
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/lib/refinerycms-page_seeder.rb +2 -0
- data/lib/refinerycms-page_seeder/seeder.rb +45 -0
- data/lib/refinerycms-page_seeder/version.rb +5 -0
- data/readme.md +36 -0
- data/refinerycms-page_seeder.gemspec +22 -0
- metadata +70 -0
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Refinerycms
|
2
|
+
module PageSeeder
|
3
|
+
|
4
|
+
class Seeder
|
5
|
+
|
6
|
+
# Create a page if it does not already exist
|
7
|
+
def self.create_page(name, options=nil)
|
8
|
+
unless ::Refinery::Page.find_by_title(name)
|
9
|
+
options ||= {}
|
10
|
+
options.merge!(:title => name)
|
11
|
+
page = ::Refinery::Page.create(options)
|
12
|
+
|
13
|
+
::Refinery::Pages.config.default_parts.each do |default_page_part|
|
14
|
+
page.parts.create(:title => default_page_part, :body => nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
page
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# Create a parent page with an array of children (optional)
|
22
|
+
def self.create_parent_and_children(parent_name, children_names=nil)
|
23
|
+
unless ::Refinery::Page.find_by_title(parent_name)
|
24
|
+
parent_page = ::Refinery::Page.create(:title => parent_name)
|
25
|
+
|
26
|
+
::Refinery::Pages.config.default_parts.each do |default_page_part|
|
27
|
+
parent_page.parts.create(:title => default_page_part, :body => nil)
|
28
|
+
end
|
29
|
+
|
30
|
+
if children_names.present?
|
31
|
+
children_names.each do |child|
|
32
|
+
unless ::Refinery::Page.find_by_title(child)
|
33
|
+
child_page = parent_page.children.create(:title => child)
|
34
|
+
|
35
|
+
::Refinery::Pages.config.default_parts.each do |default_page_part|
|
36
|
+
child_page.parts.create(:title => default_page_part, :body => nil)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/readme.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# Refinery CMS Page Seeder
|
2
|
+
|
3
|
+
Simple helper class to make life a bit easier when seeding RefineryCMS pages. Depends on the RefineryCMS Pages engine:
|
4
|
+
|
5
|
+
+ Pages - https://github.com/resolve/refinerycms-pages
|
6
|
+
|
7
|
+
This version of `refinerycms-page_seeder` supports Rails 3.0.x. and upwards.
|
8
|
+
|
9
|
+
## Requirements
|
10
|
+
|
11
|
+
Refinery CMS version 2.0.x.
|
12
|
+
|
13
|
+
## Install
|
14
|
+
|
15
|
+
Open up your ``Gemfile`` and add the following:
|
16
|
+
|
17
|
+
gem 'refinerycms-page_seeder', '~> 0.0.1'
|
18
|
+
|
19
|
+
Now, run:
|
20
|
+
|
21
|
+
bundle install
|
22
|
+
|
23
|
+
## Note
|
24
|
+
|
25
|
+
The generated pages are blank, based on the default page parts as specified by Refinery. The seeder will not overwrite existing pages (matched by page title).
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
Create a page:
|
30
|
+
|
31
|
+
Refinerycms::PageSeeder::Seeder.create_page('Home', :deletable => false, :link_url => "/")
|
32
|
+
|
33
|
+
You can create a parent page, along with children pages. Pass the child page names through as an array of strings.
|
34
|
+
|
35
|
+
Refinerycms::PageSeeder::Seeder.create_parent_and_children('About Us', ['History', 'Vision'])
|
36
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "refinerycms-page_seeder/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "refinerycms-page_seeder"
|
7
|
+
s.version = Refinerycms::PageSeeder::VERSION
|
8
|
+
s.authors = ["James Thompson"]
|
9
|
+
s.email = ["james.b.thompson@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/julesce/refinerycms-page_seeder"
|
11
|
+
s.summary = %q{Page seeding helper class for RefineryCMS pages.}
|
12
|
+
s.description = %q{Simple helper class to make life a bit easier when seeding RefineryCMS pages.}
|
13
|
+
|
14
|
+
#s.rubyforge_project = "refinerycms-page_seeder"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_runtime_dependency 'refinerycms-pages', '~> 2.0.0'
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: refinerycms-page_seeder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- James Thompson
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-18 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: refinerycms-pages
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.0.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.0.0
|
30
|
+
description: Simple helper class to make life a bit easier when seeding RefineryCMS
|
31
|
+
pages.
|
32
|
+
email:
|
33
|
+
- james.b.thompson@gmail.com
|
34
|
+
executables: []
|
35
|
+
extensions: []
|
36
|
+
extra_rdoc_files: []
|
37
|
+
files:
|
38
|
+
- .gitignore
|
39
|
+
- Gemfile
|
40
|
+
- Rakefile
|
41
|
+
- lib/refinerycms-page_seeder.rb
|
42
|
+
- lib/refinerycms-page_seeder/seeder.rb
|
43
|
+
- lib/refinerycms-page_seeder/version.rb
|
44
|
+
- readme.md
|
45
|
+
- refinerycms-page_seeder.gemspec
|
46
|
+
homepage: https://github.com/julesce/refinerycms-page_seeder
|
47
|
+
licenses: []
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
require_paths:
|
51
|
+
- lib
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
requirements: []
|
65
|
+
rubyforge_project:
|
66
|
+
rubygems_version: 1.8.18
|
67
|
+
signing_key:
|
68
|
+
specification_version: 3
|
69
|
+
summary: Page seeding helper class for RefineryCMS pages.
|
70
|
+
test_files: []
|