ecm_references 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +27 -0
  4. data/app/admin/ecm_references_categories.rb +86 -0
  5. data/app/admin/ecm_references_references.rb +64 -0
  6. data/app/assets/stylesheets/ecm_references.css.less +7 -0
  7. data/app/controllers/ecm/references/categories_controller.rb +11 -0
  8. data/app/controllers/ecm/references/references_controller.rb +12 -0
  9. data/app/models/ecm/references.rb +5 -0
  10. data/app/models/ecm/references/category.rb +86 -0
  11. data/app/models/ecm/references/reference.rb +83 -0
  12. data/app/views/ecm/references/categories/_subtree.html.erb +8 -0
  13. data/app/views/ecm/references/categories/index.html.erb +6 -0
  14. data/app/views/ecm/references/categories/show.html.erb +14 -0
  15. data/app/views/ecm/references/pictures/_picture_for_gallery.html.erb +7 -0
  16. data/app/views/ecm/references/references/_pictures.html.erb +10 -0
  17. data/app/views/ecm/references/references/_reference_preview.html.erb +13 -0
  18. data/app/views/ecm/references/references/index.html.erb +5 -0
  19. data/app/views/ecm/references/references/show.html.erb +9 -0
  20. data/db/migrate/001_create_ecm_references_categories.rb +25 -0
  21. data/db/migrate/002_create_ecm_references_references.rb +26 -0
  22. data/lib/ecm/references/configuration.rb +24 -0
  23. data/lib/ecm/references/engine.rb +12 -0
  24. data/lib/ecm/references/routing.rb +11 -0
  25. data/lib/ecm/references/version.rb +5 -0
  26. data/lib/ecm_references.rb +20 -0
  27. data/lib/generators/ecm/references/install/install_generator.rb +15 -0
  28. data/lib/generators/ecm/references/install/templates/ecm_references.rb +22 -0
  29. data/lib/generators/ecm/references/locales/locales_generator.rb +17 -0
  30. data/lib/tasks/ecm_references_tasks.rake +4 -0
  31. metadata +532 -0
@@ -0,0 +1,20 @@
1
+ Copyright 2013 Roberto Vasquez Angel
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,3 @@
1
+ = ECM Module Template
2
+
3
+ This project rocks and uses MIT-LICENSE.
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'EcmReferences'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+
24
+
25
+
26
+ Bundler::GemHelper.install_tasks
27
+
@@ -0,0 +1,86 @@
1
+ ActiveAdmin.register Ecm::References::Category do
2
+ menu :parent => Proc.new { I18n.t('ecm.references.active_admin.menu') }.call
3
+
4
+ # Nested set settings
5
+ config.sort_order = 'lft_asc'
6
+ sortable_tree_member_actions
7
+
8
+ form do |f|
9
+ f.inputs do
10
+ f.input :parent, :as => :select, :collection => nested_set_options(Ecm::References::Category, f.object) { |c| "#{'&#160;&#160;&#160;&#160;' * c.depth}&bull; #{c.to_s}".html_safe }
11
+ end # f.inputs
12
+
13
+ f.inputs do
14
+ f.input :locale, :as => :select, :collection => I18n.available_locales.map(&:to_s)
15
+ f.input :name
16
+ f.input :description
17
+ end # f.inputs
18
+
19
+ f.inputs do
20
+ f.input :markup_language, :as => :select, :collection => Ecm::References::Configuration.markup_languages.map(&:to_s)
21
+ end # f.inputs
22
+
23
+ f.actions
24
+ end # form
25
+
26
+ index :as => :nested_set do
27
+ selectable_column
28
+ sortable_tree_columns
29
+ sortable_tree_indented_column :name
30
+ column :locale
31
+ column :reference_count
32
+ column :created_at
33
+ column :updated_at
34
+ default_actions
35
+ end # index
36
+
37
+ show :title => :to_s do
38
+ panel Ecm::References::Category.human_attribute_name(:description) do
39
+ ecm_references_category.description
40
+ end # panel
41
+
42
+ panel Ecm::References::Category.human_attribute_name(:children) do
43
+ table_for ecm_references_category.descendants, :i18n => Ecm::References::Category do
44
+ sortable_tree_columns
45
+ sortable_tree_indented_column :name
46
+ column :locale
47
+ column :reference_count
48
+ column :created_at
49
+ column :updated_at
50
+ column do |child|
51
+ link_to(I18n.t('active_admin.view'), [:admin, child], :class => "member_link view_link") +
52
+ link_to(I18n.t('active_admin.edit'), [:edit, :admin, child], :class => "member_link edit_link")
53
+ end
54
+ end # table_for
55
+ end # panel
56
+
57
+ panel Ecm::References::Category.human_attribute_name(:references) do
58
+ table_for ecm_references_category.references, :i18n => Ecm::References::Reference do
59
+ sortable_columns
60
+ column :preview_picture do |reference|
61
+ image_tag(reference.preview_picture_image_url(:small_thumb)) unless reference.preview_picture_image_url(:small_thumb).nil?
62
+ end
63
+ column :name
64
+ column :published
65
+ column :created_at
66
+ column :updated_at
67
+ column do |child|
68
+ link_to(I18n.t('active_admin.view'), [:admin, child], :class => "member_link view_link") +
69
+ link_to(I18n.t('active_admin.edit'), [:edit, :admin, child], :class => "member_link edit_link")
70
+ end
71
+ end # table_for
72
+ end # panel
73
+ end # show
74
+
75
+ sidebar Ecm::References::Category.human_attribute_name(:details), :only => :show do
76
+ attributes_table_for ecm_references_category do
77
+ row :parent
78
+ row :name
79
+ row :locale
80
+ row :reference_count
81
+ row :created_at
82
+ row :updated_at
83
+ end
84
+ end # sidebar
85
+ end # ActiveAdmin.register Ecm::References::Category
86
+
@@ -0,0 +1,64 @@
1
+ ActiveAdmin.register Ecm::References::Reference do
2
+ menu :parent => Proc.new { I18n.t('ecm.references.active_admin.menu') }.call
3
+
4
+ # List settings
5
+ sortable_member_actions
6
+
7
+ form do |f|
8
+ f.inputs do
9
+ f.input :category, :as => :select,
10
+ :collection => nested_set_options(Ecm::References::Category) { |c| "#{'&#160;&#160;&#160;&#160;' * c.depth}&bull; #{c.to_s}".html_safe },
11
+ :prompt => ''
12
+ end # f.inputs
13
+
14
+ f.inputs do
15
+ f.input :name
16
+ f.input :description
17
+ f.input :published, :as => :boolean
18
+ end # f.inputs
19
+
20
+ f.inputs do
21
+ f.input :markup_language, :as => :select, :collection => Ecm::References::Configuration.markup_languages.map(&:to_s)
22
+ end # f.inputs
23
+
24
+ form_inputs_for_pictureable(f)
25
+
26
+ f.actions
27
+
28
+ # f.inputs do
29
+ # span do f.object.errors.inspect end
30
+ # end
31
+ end # form
32
+
33
+ index do
34
+ selectable_column
35
+ column :preview_picture do |reference|
36
+ image_tag(reference.preview_picture_image_url(:small_thumb)) unless reference.preview_picture_image_url(:small_thumb).nil?
37
+ end
38
+ column :category
39
+ column :name
40
+ column :published
41
+ column :created_at
42
+ column :updated_at
43
+ default_actions
44
+ end # index
45
+
46
+ show :title => :to_s do
47
+ panel Ecm::References::Reference.human_attribute_name(:description) do
48
+ ecm_references_reference.description
49
+ end # panel
50
+
51
+ panel_for_pictureable
52
+ end # show
53
+
54
+ sidebar Ecm::References::Reference.human_attribute_name(:details), :only => :show do
55
+ attributes_table_for ecm_references_reference do
56
+ row :category
57
+ row :name
58
+ row :published
59
+ row :markup_language
60
+ row :created_at
61
+ row :updated_at
62
+ end
63
+ end # sidebar
64
+ end # ActiveAdmin.register Ecm::References::Reference
@@ -0,0 +1,7 @@
1
+ /*
2
+ *= require ecm_pictures
3
+ */
4
+
5
+ .reference-preview {
6
+ margin-bottom: 20px;
7
+ }
@@ -0,0 +1,11 @@
1
+ module Ecm::References
2
+ class CategoriesController < ApplicationController
3
+ def index
4
+ @reference_categories = Category.with_public_visibility.all
5
+ end # def
6
+
7
+ def show
8
+ @reference_category = Category.with_public_visibility.find(params[:id])
9
+ end # def
10
+ end # class CategoriesController < ApplicationController
11
+ end # module Ecm::References
@@ -0,0 +1,12 @@
1
+ module Ecm::References
2
+ class ReferencesController < ApplicationController
3
+ def index
4
+ @references = Reference.with_public_visibility.all
5
+ end # def
6
+
7
+ def show
8
+ @reference = Reference.with_public_visibility.find(params[:id])
9
+ end # def
10
+ end # class ReferencesController < ApplicationController
11
+ end # module Ecm::References
12
+
@@ -0,0 +1,5 @@
1
+ module Ecm::References
2
+ def self.table_name_prefix
3
+ 'ecm_references_'
4
+ end
5
+ end
@@ -0,0 +1,86 @@
1
+ module Ecm::References
2
+ class Category < ActiveRecord::Base
3
+ self.table_name = 'ecm_references_categories'
4
+
5
+ # associations
6
+ has_many :references, :foreign_key => :ecm_categories_category_id
7
+
8
+ # attributes
9
+ attr_accessible :description,
10
+ :locale,
11
+ :markup_language,
12
+ :name,
13
+ :parent_id,
14
+ :slug
15
+
16
+ # callbacks
17
+ after_initialize :set_defaults
18
+ before_validation :set_locale_from_parent
19
+ before_save :update_locale_on_children!, :if => Proc.new { |category| category.locale_changed? }
20
+
21
+ # default scope
22
+ default_scope :order => 'lft'
23
+
24
+ # friendly id support
25
+ extend FriendlyId
26
+ friendly_id :name, :use => :slugged
27
+
28
+ # markup support
29
+ acts_as_markup :language => :variable, :columns => [ :description ]
30
+
31
+ # nested set support
32
+ acts_as_nested_set
33
+
34
+ # validations
35
+ validates :locale, :inclusion => I18n.available_locales.map(&:to_s), :allow_blank => true
36
+ validate :equality_of_locale_and_parent_locale, :if => Proc.new { |category| category.parent.respond_to?(:locale) }
37
+ validates :markup_language, :presence => true,
38
+ :inclusion => Ecm::References::Configuration.markup_languages.map(&:to_s)
39
+ validates :name, :presence => true,
40
+ :uniqueness => { :scope => [ :parent_id ] }
41
+
42
+ def self.localized
43
+ where(:locale => I18n.locale)
44
+ end
45
+
46
+ def self.with_public_visibility
47
+ localized
48
+ end
49
+
50
+ def locale=(locale)
51
+ write_attribute(:locale, locale.to_s) if locale.respond_to?(:to_s)
52
+ end
53
+
54
+ def reference_count
55
+ references.count
56
+ end
57
+
58
+ def to_s
59
+ name
60
+ end # def
61
+
62
+ private
63
+
64
+ def equality_of_locale_and_parent_locale
65
+ locale == parent.locale
66
+ end # def
67
+
68
+ def set_defaults
69
+ if self.new_record?
70
+ self.markup_language ||= Ecm::References::Configuration.default_markup_language
71
+ end
72
+ end # def
73
+
74
+ def set_locale_from_parent
75
+ self.locale = parent.locale if parent.respond_to?(:locale)
76
+ end # def
77
+
78
+ def update_locale_on_children!
79
+ children.each do |child|
80
+ child.locale = self.locale
81
+ child.save!
82
+ end
83
+ end # def
84
+ end # class Category < ActiveRecord::Base
85
+ end # module Ecm::References
86
+
@@ -0,0 +1,83 @@
1
+ module Ecm::References
2
+ class Reference < ActiveRecord::Base
3
+ self.table_name = 'ecm_references_references'
4
+
5
+ # acts as list
6
+ acts_as_list :scope => :ecm_categories_category
7
+ default_scope :order => 'ecm_categories_category_id ASC, position ASC'
8
+
9
+ # acts as published
10
+ include ActsAsPublished::ActiveRecord
11
+ acts_as_published
12
+
13
+ # associations
14
+ belongs_to :category,
15
+ :foreign_key => :ecm_categories_category_id
16
+ has_many :attached_pictures, :as => :pictureable,
17
+ :class_name => Ecm::Pictures::AttachedPicture,
18
+ :inverse_of => :pictureable
19
+ has_many :pictures, :through => :attached_pictures,
20
+ :class_name => Ecm::Pictures::Picture
21
+
22
+ accepts_nested_attributes_for :attached_pictures, :allow_destroy => true
23
+ accepts_nested_attributes_for :pictures, :allow_destroy => true
24
+
25
+ # attributes
26
+ attr_accessible :attached_pictures_attributes,
27
+ :category,
28
+ :ecm_categories_category_id,
29
+ :description,
30
+ :markup_language,
31
+ :name,
32
+ :pictures_attributes
33
+
34
+ # callbacks
35
+ after_initialize :set_defaults
36
+ # before_validation do
37
+ # self.published = ["published"] # if @attributes.has_key?("published")
38
+ # end
39
+
40
+ # friendly id support
41
+ extend FriendlyId
42
+ friendly_id :name, :use => :slugged
43
+
44
+ # markup support
45
+ acts_as_markup :language => :variable, :columns => [ :description ]
46
+
47
+ # validations
48
+ validates :ecm_categories_category_id, :presence => true
49
+ validates :markup_language, :presence => true,
50
+ :inclusion => Ecm::References::Configuration.markup_languages.map(&:to_s)
51
+ validates :name, :presence => true,
52
+ :uniqueness => { :scope => [ :ecm_categories_category_id ] }
53
+
54
+ def self.localized
55
+ joins(:category).where(:ecm_references_categories => { :locale => I18n.locale })
56
+ end
57
+
58
+ def self.with_public_visibility
59
+ published.localized
60
+ end
61
+
62
+ def preview_picture
63
+ pictures.first
64
+ end
65
+
66
+ def preview_picture_image_url(style = nil)
67
+ preview_picture.image.url(style) if preview_picture.respond_to?(:image) && preview_picture.image.respond_to?(:url)
68
+ end
69
+
70
+ def to_s
71
+ name
72
+ end # def
73
+
74
+ private
75
+
76
+ def set_defaults
77
+ if self.new_record?
78
+ self.markup_language ||= Ecm::References::Configuration.default_markup_language
79
+ self.published = Ecm::References::Configuration.new_references_published_by_default if self.published_at.nil?
80
+ end
81
+ end # def
82
+ end # class Reference < ActiveRecord::Base
83
+ end # module Ecm::References
@@ -0,0 +1,8 @@
1
+ <%= nested_li(children, {}) do |reference_category, level| %>
2
+ <% if reference_category.reference_count > 0 %>
3
+ <%= link_to reference_category, reference_category %>
4
+ <% else %>
5
+ <%= reference_category %>
6
+ <% end %>
7
+ <% end %>
8
+
@@ -0,0 +1,6 @@
1
+ <h1><%= Ecm::References::Category.model_name.human(:count => :other) %></h1>
2
+
3
+ <div class="reference-categories-tree">
4
+ <%= render :partial => 'subtree', :locals => { :children => @reference_categories } %>
5
+ </div>
6
+
@@ -0,0 +1,14 @@
1
+ <h1><%= @reference_category %></h1>
2
+
3
+ <div class="reference-categories-tree">
4
+ <%= render :partial => 'subtree', :locals => { :children => @reference_category.children } %>
5
+ </div>
6
+
7
+
8
+ <%= render :partial => 'ecm/references/references/reference_preview', :collection => @reference_category.references.with_public_visibility, :as => :reference %>
9
+
10
+ <% if @reference_category.root? %>
11
+ <%= link_to t('ecm.references.actions.back_to_category_index'), ecm_references_categories_path %>
12
+ <% else %>
13
+ <%= link_to t('ecm.references.actions.back_to_category', :category => @reference_category.parent), @reference_category.parent %>
14
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <li class="<%= Ecm::Pictures::Configuration.picture_for_gallery_css_classes %>" id="picture-<%= picture.to_param %>">
2
+ <div class="thumbnail">
3
+ <%= link_to(image_tag(picture.image.url(:default_thumb), :alt => picture.name), "#{picture.image.url}#{File.extname(picture.image_file_name.downcase)}", { :"data-gallery" => "gallery", :title => picture.name }) %>
4
+ <div class="caption"><%= mu(picture, :description) %></div>
5
+ </div>
6
+ </li>
7
+
@@ -0,0 +1,10 @@
1
+ <div class="picture-gallery" data-toggle="modal-gallery" data-target="#modal-gallery">
2
+ <div class="picture-gallery_pictures row-fluid">
3
+ <ul class="thumbnails">
4
+ <% pictures.each do |picture| %>
5
+ <%= render :partial => 'ecm/references/pictures/picture_for_gallery', :locals => { :picture => picture } %>
6
+ <% end %>
7
+ </ul>
8
+ </div>
9
+ </div>
10
+
@@ -0,0 +1,13 @@
1
+ <div class="media reference-preview row" id="reference-<%= reference.to_param %>">
2
+ <%= link_to reference, :class => 'pull-left' do%>
3
+ <div class="thumbnail span2">
4
+ <%= image_tag(reference.preview_picture_image_url(:medium_thumb)) unless reference.preview_picture_image_url(:medium_thumb).nil? %>
5
+ </div>
6
+ <% end %>
7
+ <div class="media-body">
8
+ <h4 class="media-heading"><%= reference.name %></h4>
9
+ <p><%= truncate(mu(reference, :description), :length => Ecm::References::Configuration.reference_preview_length, :separator => ' ').html_safe %></p>
10
+ <%= link_to t('ecm.references.actions.more'), reference %>
11
+ </div>
12
+ </div>
13
+
@@ -0,0 +1,5 @@
1
+ <h1><%= Ecm::References::Reference.model_name.human(:count => :other) %></h1>
2
+
3
+ <div class="reference-previews">
4
+ <%= render :partial => 'reference_preview', :collection => @references, :as => :reference %>
5
+ </div>
@@ -0,0 +1,9 @@
1
+ <div class="reference" id="reference-<%= @reference.to_param %>">
2
+ <h1><%= @reference.name %></h1>
3
+ <div class="reference-main-picture thumbnail">
4
+ <%= image_tag(@reference.preview_picture_image_url(:original)) unless @reference.preview_picture_image_url(:original).nil? %>
5
+ </div>
6
+ <p><%= @reference.description.to_html.html_safe %></p>
7
+ <%= render :partial => 'pictures', :locals => { :pictures => @reference.pictures } %>
8
+ <%= link_to t('ecm.references.actions.back_to_category', :category => @reference.category), @reference.category %>
9
+ </div>
@@ -0,0 +1,25 @@
1
+ class CreateEcmReferencesCategories < ActiveRecord::Migration
2
+ def change
3
+ create_table :ecm_references_categories do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.string :locale
7
+
8
+ # acts as markup
9
+ t.string :markup_language
10
+
11
+ # awesome nested set
12
+ t.integer :lft
13
+ t.integer :rgt
14
+ t.references :parent
15
+ t.integer :depth
16
+
17
+ # friendly id
18
+ t.string :slug
19
+
20
+ t.timestamps
21
+ end
22
+ add_index :ecm_references_categories, :parent_id
23
+ end
24
+ end
25
+
@@ -0,0 +1,26 @@
1
+ class CreateEcmReferencesReferences < ActiveRecord::Migration
2
+ def change
3
+ create_table :ecm_references_references do |t|
4
+ t.string :name
5
+ t.text :description
6
+
7
+ # acts as list
8
+ t.integer :position
9
+
10
+ # acts as markup
11
+ t.string :markup_language
12
+
13
+ # acts as published
14
+ t.timestamp :published_at
15
+
16
+ # friendly id
17
+ t.string :slug
18
+
19
+ # references
20
+ t.references :ecm_categories_category
21
+
22
+ t.timestamps
23
+ end
24
+ end
25
+ end
26
+
@@ -0,0 +1,24 @@
1
+ require 'active_support/core_ext/module/delegation'
2
+ require 'active_support/core_ext/module/attribute_accessors'
3
+ require 'active_support/hash_with_indifferent_access'
4
+
5
+ module Ecm::References
6
+ module Configuration
7
+ def configure
8
+ yield self
9
+ end # def
10
+
11
+ mattr_accessor :default_markup_language
12
+ @@default_markup_language = nil
13
+
14
+ mattr_accessor :markup_languages
15
+ @@markup_languages = []
16
+
17
+ mattr_accessor :new_references_published_by_default
18
+ @@new_references_published_by_default = false
19
+
20
+ mattr_accessor :reference_preview_length
21
+ @@reference_preview_length = nil
22
+ end # module Configuration
23
+ end # module Ecm::References
24
+
@@ -0,0 +1,12 @@
1
+ module Ecm
2
+ module References
3
+ class Engine < Rails::Engine
4
+ initializer :ecm_references_engine do
5
+ ActiveAdmin.setup do |config|
6
+ config.load_paths << File.join(self.root, 'app/admin')
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+
@@ -0,0 +1,11 @@
1
+ module Ecm::References
2
+ class Routing
3
+ def self.routes(router, options = {})
4
+ options.reverse_merge!({})
5
+
6
+ router.resources :ecm_references_categories, :controller => 'ecm/references/categories'
7
+ router.resources :ecm_references_references, :controller => 'ecm/references/references'
8
+ end # def
9
+ end # class Routing
10
+ end # module Ecm::References
11
+
@@ -0,0 +1,5 @@
1
+ module Ecm
2
+ module References
3
+ VERSION = "0.0.1.pre"
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ require 'rails_tools-absence_validator'
2
+ require 'active_admin-acts_as_list'
3
+ require 'active_admin-awesome_nested_set'
4
+ require 'acts_as_list'
5
+ require 'acts_as_markup'
6
+ require 'acts_as_published'
7
+ require 'awesome_nested_set'
8
+ require 'awesome_nested_set-tools'
9
+ require 'ecm_pictures'
10
+ require 'friendly_id'
11
+
12
+ require 'ecm/references/engine'
13
+ require 'ecm/references/configuration'
14
+ require 'ecm/references/routing'
15
+
16
+ module Ecm
17
+ module References
18
+ extend Configuration
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module Ecm
2
+ module References
3
+ module Generators
4
+ class InstallGenerator < Rails::Generators::Base
5
+ desc "Generates the intializer"
6
+
7
+ source_root File.expand_path('../templates', __FILE__)
8
+
9
+ def generate_intializer
10
+ copy_file "ecm_references.rb", "config/initializers/ecm_references.rb"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,22 @@
1
+ Ecm::References.configure do |config|
2
+ # Accepted markup languages
3
+ #
4
+ # default: config.markup_languages = %w[ markdown rdoc textile ]
5
+ config.markup_languages = %w[ markdown rdoc textile ]
6
+
7
+ # Default markup language
8
+ #
9
+ # default: config.default_markup_language = 'textile'
10
+ config.default_markup_language = 'textile'
11
+
12
+ # Controls if new references are marked as published by default when created
13
+ #
14
+ # default: config.new_references_published_by_default = false
15
+ config.new_references_published_by_default = false
16
+
17
+ # Number of characters to render in reference preview
18
+ #
19
+ # default: config.news_preview_length = 250
20
+ config.reference_preview_length = 250
21
+ end
22
+
@@ -0,0 +1,17 @@
1
+ module Ecm
2
+ module References
3
+ module Generators
4
+ class LocalesGenerator < Rails::Generators::Base
5
+ desc "Copies the locale files to your application"
6
+
7
+ source_root File.expand_path('../../../../../../locales', __FILE__)
8
+
9
+ def generate_locales
10
+ copy_file "en.yml", "config/locales/ecm.references.en.yml"
11
+ copy_file "de.yml", "config/locales/ecm.references.de.yml"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :ecm_references do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,532 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ecm_references
3
+ version: !ruby/object:Gem::Version
4
+ hash: 961915968
5
+ prerelease: 6
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ - pre
11
+ version: 0.0.1.pre
12
+ platform: ruby
13
+ authors:
14
+ - Roberto Vasquez Angel
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2014-02-07 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 21
30
+ segments:
31
+ - 3
32
+ - 2
33
+ - 13
34
+ version: 3.2.13
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rails_tools-absence_validator
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: active_admin-acts_as_list
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 17
60
+ segments:
61
+ - 0
62
+ - 0
63
+ - 7
64
+ version: 0.0.7
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: active_admin-awesome_nested_set
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 21
76
+ segments:
77
+ - 0
78
+ - 0
79
+ - 5
80
+ version: 0.0.5
81
+ type: :runtime
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: acts_as_list
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - <
90
+ - !ruby/object:Gem::Version
91
+ hash: 19
92
+ segments:
93
+ - 0
94
+ - 3
95
+ - 0
96
+ version: 0.3.0
97
+ type: :runtime
98
+ version_requirements: *id005
99
+ - !ruby/object:Gem::Dependency
100
+ name: acts_as_markup
101
+ prerelease: false
102
+ requirement: &id006 !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ hash: 3
108
+ segments:
109
+ - 0
110
+ version: "0"
111
+ type: :runtime
112
+ version_requirements: *id006
113
+ - !ruby/object:Gem::Dependency
114
+ name: acts_as_published
115
+ prerelease: false
116
+ requirement: &id007 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ hash: 3
122
+ segments:
123
+ - 0
124
+ version: "0"
125
+ type: :runtime
126
+ version_requirements: *id007
127
+ - !ruby/object:Gem::Dependency
128
+ name: awesome_nested_set
129
+ prerelease: false
130
+ requirement: &id008 !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ hash: 3
136
+ segments:
137
+ - 0
138
+ version: "0"
139
+ type: :runtime
140
+ version_requirements: *id008
141
+ - !ruby/object:Gem::Dependency
142
+ name: awesome_nested_set-tools
143
+ prerelease: false
144
+ requirement: &id009 !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ hash: 3
150
+ segments:
151
+ - 0
152
+ version: "0"
153
+ type: :runtime
154
+ version_requirements: *id009
155
+ - !ruby/object:Gem::Dependency
156
+ name: ecm_pictures
157
+ prerelease: false
158
+ requirement: &id010 !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ hash: 961915980
164
+ segments:
165
+ - 1
166
+ - 0
167
+ - 6
168
+ - pre
169
+ version: 1.0.6.pre
170
+ type: :runtime
171
+ version_requirements: *id010
172
+ - !ruby/object:Gem::Dependency
173
+ name: friendly_id
174
+ prerelease: false
175
+ requirement: &id011 !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ hash: 3
181
+ segments:
182
+ - 0
183
+ version: "0"
184
+ type: :runtime
185
+ version_requirements: *id011
186
+ - !ruby/object:Gem::Dependency
187
+ name: sqlite3
188
+ prerelease: false
189
+ requirement: &id012 !ruby/object:Gem::Requirement
190
+ none: false
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ hash: 3
195
+ segments:
196
+ - 0
197
+ version: "0"
198
+ type: :development
199
+ version_requirements: *id012
200
+ - !ruby/object:Gem::Dependency
201
+ name: thin
202
+ prerelease: false
203
+ requirement: &id013 !ruby/object:Gem::Requirement
204
+ none: false
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ hash: 3
209
+ segments:
210
+ - 0
211
+ version: "0"
212
+ type: :development
213
+ version_requirements: *id013
214
+ - !ruby/object:Gem::Dependency
215
+ name: yard
216
+ prerelease: false
217
+ requirement: &id014 !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ hash: 3
223
+ segments:
224
+ - 0
225
+ version: "0"
226
+ type: :development
227
+ version_requirements: *id014
228
+ - !ruby/object:Gem::Dependency
229
+ name: activeadmin
230
+ prerelease: false
231
+ requirement: &id015 !ruby/object:Gem::Requirement
232
+ none: false
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ hash: 3
237
+ segments:
238
+ - 0
239
+ version: "0"
240
+ type: :development
241
+ version_requirements: *id015
242
+ - !ruby/object:Gem::Dependency
243
+ name: coffee-rails
244
+ prerelease: false
245
+ requirement: &id016 !ruby/object:Gem::Requirement
246
+ none: false
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ hash: 3
251
+ segments:
252
+ - 0
253
+ version: "0"
254
+ type: :development
255
+ version_requirements: *id016
256
+ - !ruby/object:Gem::Dependency
257
+ name: ecm_lightbox
258
+ prerelease: false
259
+ requirement: &id017 !ruby/object:Gem::Requirement
260
+ none: false
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ hash: 3
265
+ segments:
266
+ - 0
267
+ version: "0"
268
+ type: :development
269
+ version_requirements: *id017
270
+ - !ruby/object:Gem::Dependency
271
+ name: i18n_routing
272
+ prerelease: false
273
+ requirement: &id018 !ruby/object:Gem::Requirement
274
+ none: false
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ hash: 3
279
+ segments:
280
+ - 0
281
+ version: "0"
282
+ type: :development
283
+ version_requirements: *id018
284
+ - !ruby/object:Gem::Dependency
285
+ name: less-rails
286
+ prerelease: false
287
+ requirement: &id019 !ruby/object:Gem::Requirement
288
+ none: false
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ hash: 3
293
+ segments:
294
+ - 0
295
+ version: "0"
296
+ type: :development
297
+ version_requirements: *id019
298
+ - !ruby/object:Gem::Dependency
299
+ name: sass-rails
300
+ prerelease: false
301
+ requirement: &id020 !ruby/object:Gem::Requirement
302
+ none: false
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ hash: 3
307
+ segments:
308
+ - 0
309
+ version: "0"
310
+ type: :development
311
+ version_requirements: *id020
312
+ - !ruby/object:Gem::Dependency
313
+ name: therubyracer
314
+ prerelease: false
315
+ requirement: &id021 !ruby/object:Gem::Requirement
316
+ none: false
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ hash: 3
321
+ segments:
322
+ - 0
323
+ version: "0"
324
+ type: :development
325
+ version_requirements: *id021
326
+ - !ruby/object:Gem::Dependency
327
+ name: twitter-bootstrap-rails
328
+ prerelease: false
329
+ requirement: &id022 !ruby/object:Gem::Requirement
330
+ none: false
331
+ requirements:
332
+ - - ">="
333
+ - !ruby/object:Gem::Version
334
+ hash: 3
335
+ segments:
336
+ - 0
337
+ version: "0"
338
+ type: :development
339
+ version_requirements: *id022
340
+ - !ruby/object:Gem::Dependency
341
+ name: localeapp
342
+ prerelease: false
343
+ requirement: &id023 !ruby/object:Gem::Requirement
344
+ none: false
345
+ requirements:
346
+ - - ">="
347
+ - !ruby/object:Gem::Version
348
+ hash: 3
349
+ segments:
350
+ - 0
351
+ version: "0"
352
+ type: :development
353
+ version_requirements: *id023
354
+ - !ruby/object:Gem::Dependency
355
+ name: capybara
356
+ prerelease: false
357
+ requirement: &id024 !ruby/object:Gem::Requirement
358
+ none: false
359
+ requirements:
360
+ - - ">="
361
+ - !ruby/object:Gem::Version
362
+ hash: 3
363
+ segments:
364
+ - 0
365
+ version: "0"
366
+ type: :development
367
+ version_requirements: *id024
368
+ - !ruby/object:Gem::Dependency
369
+ name: rspec-rails
370
+ prerelease: false
371
+ requirement: &id025 !ruby/object:Gem::Requirement
372
+ none: false
373
+ requirements:
374
+ - - ~>
375
+ - !ruby/object:Gem::Version
376
+ hash: 3
377
+ segments:
378
+ - 2
379
+ - 0
380
+ version: "2.0"
381
+ type: :development
382
+ version_requirements: *id025
383
+ - !ruby/object:Gem::Dependency
384
+ name: shoulda-matchers
385
+ prerelease: false
386
+ requirement: &id026 !ruby/object:Gem::Requirement
387
+ none: false
388
+ requirements:
389
+ - - ">="
390
+ - !ruby/object:Gem::Version
391
+ hash: 3
392
+ segments:
393
+ - 0
394
+ version: "0"
395
+ type: :development
396
+ version_requirements: *id026
397
+ - !ruby/object:Gem::Dependency
398
+ name: factory_girl_rails
399
+ prerelease: false
400
+ requirement: &id027 !ruby/object:Gem::Requirement
401
+ none: false
402
+ requirements:
403
+ - - ~>
404
+ - !ruby/object:Gem::Version
405
+ hash: 15
406
+ segments:
407
+ - 1
408
+ - 0
409
+ version: "1.0"
410
+ type: :development
411
+ version_requirements: *id027
412
+ - !ruby/object:Gem::Dependency
413
+ name: rb-inotify
414
+ prerelease: false
415
+ requirement: &id028 !ruby/object:Gem::Requirement
416
+ none: false
417
+ requirements:
418
+ - - ~>
419
+ - !ruby/object:Gem::Version
420
+ hash: 25
421
+ segments:
422
+ - 0
423
+ - 9
424
+ version: "0.9"
425
+ type: :development
426
+ version_requirements: *id028
427
+ - !ruby/object:Gem::Dependency
428
+ name: guard-rspec
429
+ prerelease: false
430
+ requirement: &id029 !ruby/object:Gem::Requirement
431
+ none: false
432
+ requirements:
433
+ - - ">="
434
+ - !ruby/object:Gem::Version
435
+ hash: 3
436
+ segments:
437
+ - 0
438
+ version: "0"
439
+ type: :development
440
+ version_requirements: *id029
441
+ - !ruby/object:Gem::Dependency
442
+ name: guard-bundler
443
+ prerelease: false
444
+ requirement: &id030 !ruby/object:Gem::Requirement
445
+ none: false
446
+ requirements:
447
+ - - ">="
448
+ - !ruby/object:Gem::Version
449
+ hash: 3
450
+ segments:
451
+ - 0
452
+ version: "0"
453
+ type: :development
454
+ version_requirements: *id030
455
+ description: References module for active admin.
456
+ email:
457
+ - roberto@vasquez-angel.de
458
+ executables: []
459
+
460
+ extensions: []
461
+
462
+ extra_rdoc_files: []
463
+
464
+ files:
465
+ - app/controllers/ecm/references/references_controller.rb
466
+ - app/controllers/ecm/references/categories_controller.rb
467
+ - app/views/ecm/references/pictures/_picture_for_gallery.html.erb
468
+ - app/views/ecm/references/categories/_subtree.html.erb
469
+ - app/views/ecm/references/categories/show.html.erb
470
+ - app/views/ecm/references/categories/index.html.erb
471
+ - app/views/ecm/references/references/_pictures.html.erb
472
+ - app/views/ecm/references/references/show.html.erb
473
+ - app/views/ecm/references/references/index.html.erb
474
+ - app/views/ecm/references/references/_reference_preview.html.erb
475
+ - app/models/ecm/references.rb
476
+ - app/models/ecm/references/reference.rb
477
+ - app/models/ecm/references/category.rb
478
+ - app/admin/ecm_references_references.rb
479
+ - app/admin/ecm_references_categories.rb
480
+ - app/assets/stylesheets/ecm_references.css.less
481
+ - db/migrate/001_create_ecm_references_categories.rb
482
+ - db/migrate/002_create_ecm_references_references.rb
483
+ - lib/ecm_references.rb
484
+ - lib/generators/ecm/references/locales/locales_generator.rb
485
+ - lib/generators/ecm/references/install/install_generator.rb
486
+ - lib/generators/ecm/references/install/templates/ecm_references.rb
487
+ - lib/tasks/ecm_references_tasks.rake
488
+ - lib/ecm/references/engine.rb
489
+ - lib/ecm/references/version.rb
490
+ - lib/ecm/references/routing.rb
491
+ - lib/ecm/references/configuration.rb
492
+ - MIT-LICENSE
493
+ - Rakefile
494
+ - README.rdoc
495
+ homepage: https://github.com/robotex82/ecm_references
496
+ licenses: []
497
+
498
+ post_install_message:
499
+ rdoc_options: []
500
+
501
+ require_paths:
502
+ - lib
503
+ required_ruby_version: !ruby/object:Gem::Requirement
504
+ none: false
505
+ requirements:
506
+ - - ">="
507
+ - !ruby/object:Gem::Version
508
+ hash: 3
509
+ segments:
510
+ - 0
511
+ version: "0"
512
+ required_rubygems_version: !ruby/object:Gem::Requirement
513
+ none: false
514
+ requirements:
515
+ - - ">"
516
+ - !ruby/object:Gem::Version
517
+ hash: 25
518
+ segments:
519
+ - 1
520
+ - 3
521
+ - 1
522
+ version: 1.3.1
523
+ requirements: []
524
+
525
+ rubyforge_project:
526
+ rubygems_version: 1.8.24
527
+ signing_key:
528
+ specification_version: 3
529
+ summary: References module for active admin.
530
+ test_files: []
531
+
532
+ has_rdoc: