Skip to content

Commit

Permalink
Merge branch 'master' into interface_tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
guntis committed Nov 6, 2015
2 parents 0c9fb8a + 72c8211 commit 0c8fdee
Show file tree
Hide file tree
Showing 108 changed files with 366 additions and 257 deletions.
1 change: 1 addition & 0 deletions releaf-content/lib/releaf-content.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
require 'releaf/content/engine'
require 'releaf/content/acts_as_node'
require 'releaf/content/node'
require 'releaf/content/route'
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def self.node_class
# @param controller_action [String] optional string with action and controller for route (Ex. home#index)
# @param args [Hash] options to merge with internally built params. Passed params overrides route params.
# @return [Hash] route options. Will return at least node "node_id" and "locale" keys.
def params controller_action, args = {}
def params(controller_action, args = {})
route_params = {
node_id: node_id.to_s,
locale: locale
Expand All @@ -37,36 +37,27 @@ def params controller_action, args = {}

# Return routes for given class that implement ActsAsNode
#
# @param class_name [Class] class name to load related nodes
# @param content_type [Class] content type to load related nodes
# @return [Array] array of Content::Route objects
def self.for class_name
return [] unless nodes_available?
routes = []

node_class.where(content_type: class_name).each do|node|
if node.available?
routes << build_route_object(node)
def self.for(content_type)
begin
node_class.where(content_type: content_type).each.inject([]) do |routes, node|
routes << build_route_object(node) if node.available?
routes
end
rescue ActiveRecord::NoDatabaseError, ActiveRecord::StatementInvalid
[]
end

routes
end

private

# Build Content::Route from Node object
def self.build_route_object node
route = new
route.node_id = node.id.to_s
route.path = node.url
route.locale = node.root.locale

route
end

# Check for nodes table availability
def self.nodes_available?
ActiveRecord::Base.connection.table_exists? node_class.table_name
end
end
end
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Content::Nodes::ContentFormBuilder, type: :class do
class FormBuilderTestHelper < ActionView::Base
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Content::Nodes::FormBuilder, type: :class do
class FormBuilderTestHelper < ActionView::Base
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Content::NodesController do
describe "#builder_scopes" do
Expand Down
2 changes: 1 addition & 1 deletion releaf-content/spec/features/nodes_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'
describe "Nodes", js: true, with_tree: true, with_root: true do
before do
Rails.cache.clear
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

class ContactFormController < ActionController::Base
acts_as_node
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Node do
class PlainNode < ActiveRecord::Base
Expand All @@ -15,7 +15,7 @@ class PlainNode < ActiveRecord::Base
expect( Node.included_modules ).to include Releaf::Content::Node
end

describe 'validations' do
describe "validations" do
it { is_expected.to validate_presence_of(:name) }
it { is_expected.to validate_presence_of(:slug) }
it { is_expected.to validate_presence_of(:content_type) }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Content::Route do
let(:node_route) { FactoryGirl.build(:node_route, node_id: 12, locale: "en", path: "/en") }
Expand All @@ -10,24 +10,33 @@
end

describe ".for" do
before do
create(:home_page_node)
end

it "returns an array" do
expect(described_class.for(HomePage).class).to eq(Array)
end

context "when no releaf_nodes table defined" do
context "when databse doesn't exists" do
it "returns an empty array" do
allow(described_class).to receive(:nodes_available?).and_return(false)
allow(described_class.node_class).to receive(:where).and_raise(ActiveRecord::NoDatabaseError.new("xxx"))
expect(described_class.for(HomePage)).to eq([])
end
end

context "when releaf_nodes table defined and content nodes exist" do
before do
create(:home_page_node)
context "when releaf_nodes table doesn't exists" do
it "returns an empty array" do
allow(described_class.node_class).to receive(:where).and_raise(ActiveRecord::StatementInvalid.new("xxx"))
expect(described_class.for(HomePage)).to eq([])
end
end

context "when releaf_nodes table exists" do
it "returns an array of Node::Route objects" do
expect(described_class.for(HomePage).first.class).to eq(described_class)
result = described_class.for(HomePage)
expect(result.count).to eq(1)
expect(result.first.class).to eq(described_class)
end

context "when node is not available" do
Expand All @@ -40,7 +49,6 @@
end

describe '#params' do

it "returns a hash with node_id" do
expect(node_route.params("home#index")[:node_id]).to eq('12')
end
Expand Down Expand Up @@ -70,7 +78,6 @@
end

context "when :as given in args" do

context "when node has a locale" do
it "prepends locale to :as" do
expect(node_route.params("home#index", as: "home")[:as]).to eq("en_home")
Expand Down
2 changes: 1 addition & 1 deletion releaf-content/spec/middleware/routes_reloader_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Content::RoutesReloader do
let(:app) { ->(env) { [200, env, "app"] } }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Content::Node::ParentValidator do
let!(:root_node) { FactoryGirl.create(:node, content_type: 'HomePage') }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Content::Node::RootValidator do

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Content::Node::SinglenessValidator do

Expand Down
2 changes: 1 addition & 1 deletion releaf-core/app/builders/releaf/builders.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def self.constant_defined_at_scope?(mapping, at)
constant_defined = false

begin
constant_defined = at.const_get(mapping).present?
constant_defined = at.const_get(mapping).present? && mapping.constantize == at.const_get(mapping)
rescue NameError => error
raise unless constant_name_error?(error.message, mapping)
end
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/app/builders/releaf/builders/table_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def initialize(collection, resource_class, template, options)
end

def column_names
Releaf::Core::ResourceFields.new(resource_class).values(include_associations: false)
Releaf::Core::ResourceTableFields.new(resource_class).values(include_associations: false)
end

def columns
Expand Down
10 changes: 10 additions & 0 deletions releaf-core/app/lib/releaf/core/resource_table_fields.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class Releaf::Core::ResourceTableFields < Releaf::Core::ResourceFields

def excluded_attributes
super + table_excluded_attributes
end

def table_excluded_attributes
resource_class.column_names.select{|c| c.match(/.*_html$/) }
end
end
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Builders::AssociationReflector, type: :class do
let(:reflection){ Book.reflect_on_association("chapters") }
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/base_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::Base, type: :module do
class FormBuilderTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/collection_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::Collection, type: :module do
class CollectionIncluder
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::ConfirmDestroyDialogBuilder, type: :class do
class ConfirmDestroyDialogTestHelper < ActionView::Base
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::ConfirmDialogBuilder, type: :class do
class ConfirmDestroyDialogTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/edit_builder_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::EditBuilder, type: :class do
class EditBuilderTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/form_builder_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::FormBuilder, type: :class do
class FormBuilderTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/index_builder_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::IndexBuilder, type: :class do
class IndexBuilderTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/orderer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::Orderer, type: :module do
class OrdererIncluder
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::Page::LayoutBuilder, type: :class do
class PageHeaderBuilderTestHelper < ActionView::Base
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::Page::HeaderBuilder, type: :class do
class PageHeaderBuilderTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/resource_dialog_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::ResourceDialog, type: :class do
class DialogTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/resource_view_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::ResourceView, type: :class do
class ResourceViewIncluder
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/show_builder_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::ShowBuilder, type: :class do
it "includes `Releaf::Builders::ResourceView`" do
Expand Down
6 changes: 3 additions & 3 deletions releaf-core/spec/builders/builders/table_builder_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::TableBuilder, type: :class do
class TableBuilderTestHelper < ActionView::Base
Expand Down Expand Up @@ -66,8 +66,8 @@ def custom_title(resource); end

describe "#column_names" do
it "returns column names for resource_class" do
allow(Releaf::Core::ResourceFields).to receive(:new).with(subject.resource_class).and_call_original
allow_any_instance_of(Releaf::Core::ResourceFields).to receive(:values)
allow(Releaf::Core::ResourceTableFields).to receive(:new).with(subject.resource_class).and_call_original
allow_any_instance_of(Releaf::Core::ResourceTableFields).to receive(:values)
.with(include_associations: false).and_return(["a", "b"])
expect(subject.column_names).to eq(["a", "b"])
end
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/template_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::Template, type: :module do
class TemplateClassIncluder
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/toolbox_builder_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::ToolboxBuilder, type: :class do
class ToolboxBuilderTestHelper < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/toolbox_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::Toolbox, type: :class do
class ToolboxTestTemplate < ActionView::Base
Expand Down
2 changes: 1 addition & 1 deletion releaf-core/spec/builders/builders/view_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Builders::View, type: :class do
class ViewTestHelper < ActionView::Base
Expand Down
7 changes: 6 additions & 1 deletion releaf-core/spec/builders/builders_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Builders, type: :class do
module Admin::Advanced
Expand Down Expand Up @@ -84,6 +84,11 @@ class Admin::Advanced::Builders < Releaf::Builders; end
it "returns true" do
expect(described_class.constant_defined_at_scope?("Releaf::Builders::FormBuilder", Releaf)).to be true
end

it "compare constant with constant at given namespace and check whether it exists" do
allow(Admin).to receive(:const_get).with("Admin:xx").and_return(true)
expect(described_class.constant_defined_at_scope?("Admin:xx", Admin)).to be false
end
end

context "when NameError raised" do
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Core::Settings::FormBuilder, type: :class do
class FormBuilderTestHelper < ActionView::Base; end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require "spec_helper"
require "rails_helper"

describe Releaf::Core::Settings::TableBuilder, type: :class do
class TableBuilderTestHelper < ActionView::Base; end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Admin::BooksController do
describe "#current_params" do
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Content::NodesController, type: :controller do
before do
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::BaseController do
let(:new_resource){ Author.new }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'spec_helper'
require 'rails_helper'

describe Releaf::Core::SettingsController do
login_as_user :user
Expand Down

0 comments on commit 0c8fdee

Please sign in to comment.