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.
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .idea
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in refinerycms-page_seeder.gemspec
4
+ gemspec
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,2 @@
1
+ require 'refinerycms-page_seeder/version'
2
+ require 'refinerycms-page_seeder/seeder'
@@ -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
@@ -0,0 +1,5 @@
1
+ module Refinerycms
2
+ module PageSeeder
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -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: []