ecm_references 0.0.1.pre

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.
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: