noodall-core 0.4.8 → 0.5.0

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.8
1
+ 0.5.0
@@ -1,9 +1,22 @@
1
1
  module Noodall
2
2
  module Indexer
3
+ def self.configure(model)
4
+ model.class_eval do
5
+ puts "index on"
6
+ cattr_accessor :indexes
7
+ end
8
+ model.indexes = []
9
+ end
3
10
  module ClassMethods
4
- def ensure_index(spec, options={})
5
- #collection.create_index(spec, options)
6
- # TODO: something clever here as runtime indexing is bad
11
+ def ensure_index(*args)
12
+ indexes << args
13
+ end
14
+
15
+ def create_indexes!
16
+ indexes.each do |args|
17
+ puts "Creating index #{args.inspect}"
18
+ collection.create_index(*args)
19
+ end
7
20
  end
8
21
  end
9
22
  end
data/lib/noodall/node.rb CHANGED
@@ -14,10 +14,10 @@ module Noodall
14
14
  key :name, String
15
15
  key :description, String
16
16
  key :body, String
17
- key :position, Integer, :default => nil
17
+ key :position, Integer, :default => nil, :index => true
18
18
  key :_type, String
19
- key :published_at, Time
20
- key :published_to, Time
19
+ key :published_at, Time, :index => true
20
+ key :published_to, Time, :index => true
21
21
  key :updatable_groups, Array
22
22
  key :destroyable_groups, Array
23
23
  key :publishable_groups, Array
@@ -151,6 +151,11 @@ module Noodall
151
151
  Noodall::Site.contains?(self.permalink.to_s)
152
152
  end
153
153
 
154
+ # A slug for creating the permalink
155
+ def slug
156
+ (self.name.blank? ? self.title : self.name).to_s.parameterize
157
+ end
158
+
154
159
  private
155
160
 
156
161
  def switch_position(sibling)
@@ -175,8 +180,7 @@ module Noodall
175
180
  # this code takes name over title for the current node's slug
176
181
  # this way enables children to inherit the parent's custom (user defined) permalink also
177
182
  permalink_args = self.parent.nil? ? [] : self.parent.permalink.dup
178
- self_slug = (self.name.blank? ? self.title : self.name).to_s.parameterize
179
- permalink_args << self_slug unless self_slug.blank?
183
+ permalink_args << self.slug unless self.slug.blank?
180
184
  self.permalink = Permalink.new(*permalink_args)
181
185
  end
182
186
  end
data/noodall-core.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{noodall-core}
8
- s.version = "0.4.8"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Steve England"]
12
- s.date = %q{2011-01-28}
12
+ s.date = %q{2011-02-01}
13
13
  s.description = %q{Core data objects for Noodall}
14
14
  s.email = %q{steve@wearebeef.co.uk}
15
15
  s.extra_rdoc_files = [
data/spec/node_spec.rb CHANGED
@@ -410,4 +410,16 @@ describe Noodall::Node do
410
410
  page.name.should == "Shorty"
411
411
  end
412
412
 
413
+ it "should be indexed only when explicitly called" do
414
+ Noodall::Node.collection.drop_indexes
415
+ class LandingPage < Noodall::Node
416
+ key :dude, String, :index => true
417
+ end
418
+
419
+ Noodall::Node.indexes.should include ['dude']
420
+
421
+ Noodall::Node.create_indexes!
422
+ Noodall::Node.collection.index_information.keys.should include('dude_1')
423
+ end
424
+
413
425
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noodall-core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
9
- - 8
10
- version: 0.4.8
8
+ - 5
9
+ - 0
10
+ version: 0.5.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Steve England
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-28 00:00:00 +00:00
18
+ date: 2011-02-01 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency