prague 0.0.1 → 0.0.2

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.
@@ -4,7 +4,7 @@ module Prague
4
4
  module Generators
5
5
  class ModelGenerator < ::ActiveRecord::Generators::Base
6
6
  desc 'This generator generates a model for pages'
7
- argument :name, default: 'Page'
7
+ argument :name, default: 'page'
8
8
  source_root File.expand_path('../templates', __FILE__)
9
9
 
10
10
  def create_migration
@@ -12,7 +12,7 @@ module Prague
12
12
  end
13
13
 
14
14
  def create_model
15
- template 'model.rb.erb', "app/models/#{name}.rb"
15
+ template 'model.rb.erb', "app/models/#{singular_name}.rb"
16
16
  end
17
17
  end
18
18
  end
@@ -5,6 +5,7 @@ class PragueCreate<%= table_name.camelize %> < ActiveRecord::Migration
5
5
  t.string :permalink, null: false, uniq: true
6
6
  t.string :link_title, null: false
7
7
  t.string :sort_value, limit: 100
8
+ t.text :head, null: false
8
9
  t.text :body, null: false
9
10
  t.boolean :online, default: false
10
11
  end
@@ -1,10 +1,23 @@
1
+ # Prague-model for pages.
2
+ #
3
+ # Attributes:
4
+ #
5
+ # title - Title of the page.
6
+ # permalink - Path the page should be accessed by.
7
+ # link_title - Title for links in views.
8
+ # sort_value - Pages are returned sorted by the the sort_value by default.
9
+ # head - Content for meta tags for the page.
10
+ # body - Content for main content of the page.
11
+ # online - Whether or not the page should be visible to the outside world.
12
+ #
1
13
  class <%= class_name %> < ActiveRecord::Base
2
- attr_accessible :title, :permalink, :link_title, :sort_value, :body, :online
14
+ attr_accessible :title, :permalink, :link_title, :sort_value, :head, :body, :online
3
15
 
4
16
  validates :title, presence: true
5
17
  validates :permalink, presence: true, uniqueness: true
6
18
  validates :link_title, presence: true
7
19
  validates :sort_value, length: {maximum: 100}
20
+ validates :head, presence: true
8
21
  validates :body, presence: true
9
22
 
10
23
  default_scope order('sort_value DESC')
@@ -4,7 +4,7 @@ module Prague
4
4
  include Rails::Generators::ResourceHelpers
5
5
 
6
6
  desc 'This generator generates a scaffold for pages'
7
- argument :name, default: 'Page'
7
+ argument :name, default: 'page'
8
8
  source_root File.expand_path('../templates', __FILE__)
9
9
 
10
10
  def create_model_and_migration
@@ -12,7 +12,8 @@ module Prague
12
12
  end
13
13
 
14
14
  def create_controller
15
- invoke 'scaffold_controller', [singular_name.classify]
15
+ generate 'scaffold_controller', singular_name.classify +
16
+ ' title permalink link_title sort_value head:text body:text online:boolean'
16
17
  inject_into_class "app/controllers/#{plural_name}_controller.rb",
17
18
  "#{controller_class_name}Controller", erb('action.rb.erb')
18
19
  end
@@ -21,14 +22,24 @@ module Prague
21
22
  template 'view.html.erb.erb', "app/views/#{plural_name}/display.html.erb"
22
23
  end
23
24
 
25
+ def add_display_link_to_show_view
26
+ append_to_file "app/views/#{plural_name}/show.html.erb",
27
+ "| <%= link_to 'Display', display_#{singular_name}_path(permalink: @#{singular_name}.permalink) %>"
28
+ end
29
+
30
+ def add_meta_tags_to_application_layout
31
+ gsub_file 'app/views/layouts/application.html.erb', '</head>',
32
+ " <%= content_for :meta_tags if content_for? :meta_tags %>\n</head>"
33
+ end
34
+
24
35
  def create_display_helper
25
36
  template 'helper.rb.erb', "app/helpers/#{plural_name}_display_helper.rb"
26
37
  end
27
38
 
28
39
  def add_routes
29
- route erb('route.rb.erb')
40
+ route "\n resources :#{plural_name}"
30
41
  gsub_file 'config/routes.rb', /end\Z/,
31
- "\n match ':permalink' => '#{plural_name}#display'\nend"
42
+ "\n match ':permalink' => '#{plural_name}#display', as: 'display_#{singular_name}'\nend"
32
43
  end
33
44
 
34
45
  private
@@ -2,7 +2,6 @@ module <%= plural_name.camelize %>DisplayHelper
2
2
  #
3
3
  # Helper for linking to <%= plural_name %> with a fallback.
4
4
  # html_options are the same as for link_to helper.
5
- # Additionally you can switch between link_to and link_to_unless_current with option unless_current.
6
5
  #
7
6
  # link_to_display_<%= singular_name %> 'about'
8
7
  # # => <a href="/about" title="About's link title">About's link title</a>
@@ -26,17 +25,16 @@ module <%= plural_name.camelize %>DisplayHelper
26
25
  # If the <%= singular_name %> doesn't exist and you want to display just nothing use the unless_missing option.
27
26
  #
28
27
  def link_to_display_<%= singular_name %>(permalink, html_options={})
29
- method_name = html_options.delete(:unless_current) ? :link_to_unless_current : :link_to
30
28
  unless_missing = html_options.delete :unless_missing
31
- if <%= singular_name %> = <%= plural_name.classify %>.find_by_permalink permalink
29
+ if <%= singular_name %> = <%= plural_name.classify %>.find_by_permalink(permalink)
32
30
  url = display_<%= singular_name %>_path permalink: <%= singular_name %>.permalink
33
31
  html_options = html_options.reverse_merge title: <%= singular_name %>.link_title
34
32
  if block_given?
35
- send :method_name, url, html_options do
33
+ link_to url, html_options do
36
34
  yield <%= singular_name %>
37
35
  end
38
36
  else
39
- send :method_name, <%= singular_name %>.link_title, url, html_options
37
+ link_to <%= singular_name %>.link_title, url, html_options
40
38
  end
41
39
  elsif !unless_missing
42
40
  link_to permalink, "##{permalink}", title: t('prague.missing.<%= singular_name %>',
@@ -1,7 +1,17 @@
1
+ <%% if @<%= singular_name %>.head.present? %>
2
+ <%%= content_for :meta_tags do %>
3
+ <%%= raw @<%=singular_name%>.head %>
4
+ <%% end %>
5
+ <%% end %>
6
+
1
7
  <h1><%%= @<%= singular_name %>.title %></h1>
2
8
  <p><%%= raw @<%= singular_name %>.body %></p>
3
9
  <ul>
4
- <%% <%= plural_name.classify %>.online.each do |b| %>
5
- <li><%%= link_to_display_<%= singular_name %> b.permalink, unless_current: true %></li>
10
+ <%% <%= plural_name.classify %>.online.each do |<%= singular_name %>| %>
11
+ <li>
12
+ <%%= link_to_display_<%= singular_name %> <%= singular_name %>.permalink do |<%= singular_name.first %>| %>
13
+ <b><%%= <%= singular_name.first %>.title %></b>
14
+ <%% end %>
15
+ </li>
6
16
  <%% end %>
7
17
  </ul>
@@ -1,3 +1,3 @@
1
1
  module Prague
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -4,3 +4,12 @@ Connecting to database specified by database.yml
4
4
  Connecting to database specified by database.yml
5
5
   (0.4ms) begin transaction
6
6
   (0.0ms) rollback transaction
7
+ Connecting to database specified by database.yml
8
+  (2.8ms) begin transaction
9
+  (0.0ms) rollback transaction
10
+ Connecting to database specified by database.yml
11
+  (3.7ms) begin transaction
12
+  (0.0ms) rollback transaction
13
+ Connecting to database specified by database.yml
14
+  (4.1ms) begin transaction
15
+  (0.0ms) rollback transaction
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prague
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-09 00:00:00.000000000 Z
12
+ date: 2012-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -56,7 +56,6 @@ files:
56
56
  - lib/generators/prague/scaffold/scaffold_generator.rb
57
57
  - lib/generators/prague/scaffold/templates/action.rb.erb
58
58
  - lib/generators/prague/scaffold/templates/helper.rb.erb
59
- - lib/generators/prague/scaffold/templates/route.rb.erb
60
59
  - lib/generators/prague/scaffold/templates/view.html.erb.erb
61
60
  - lib/prague/version.rb
62
61
  - lib/prague.rb
@@ -105,10 +104,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
104
  requirements:
106
105
  - - ! '>='
107
106
  - !ruby/object:Gem::Version
108
- version: '0'
109
- segments:
110
- - 0
111
- hash: -3324856822940849551
107
+ version: 1.9.3
112
108
  required_rubygems_version: !ruby/object:Gem::Requirement
113
109
  none: false
114
110
  requirements:
@@ -117,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
113
  version: '0'
118
114
  segments:
119
115
  - 0
120
- hash: -3324856822940849551
116
+ hash: 4527774159099249935
121
117
  requirements: []
122
118
  rubyforge_project:
123
119
  rubygems_version: 1.8.23
@@ -1,4 +0,0 @@
1
-
2
- resources :<%= plural_name %> do
3
- get :display, on: :member
4
- end