noodall-core 0.2.1 → 0.3.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/Gemfile CHANGED
@@ -2,6 +2,7 @@ source "http://rubygems.org"
2
2
 
3
3
  gem 'mongo_mapper', '~> 0.8.6'
4
4
  gem 'ramdiv-mongo_mapper_acts_as_tree', '~> 0.1.1'
5
+ gem 'mm-multi-parameter-attributes', '~> 0.1.1'
5
6
  gem 'canable', '~> 0.1.1'
6
7
  gem 'ruby-stemmer'
7
8
  gem 'i18n'
data/Gemfile.lock CHANGED
@@ -19,6 +19,8 @@ GEM
19
19
  jnunemaker-validatable (1.8.4)
20
20
  activesupport (>= 2.3.4)
21
21
  json_pure (1.4.6)
22
+ mm-multi-parameter-attributes (0.1.1)
23
+ mongo_mapper
22
24
  mongo (1.1.1)
23
25
  bson (>= 1.1.1)
24
26
  mongo_mapper (0.8.6)
@@ -55,6 +57,7 @@ DEPENDENCIES
55
57
  faker (~> 0.3.1)
56
58
  i18n
57
59
  jeweler (~> 1.4.0)
60
+ mm-multi-parameter-attributes (~> 0.1.1)
58
61
  mongo_mapper (~> 0.8.6)
59
62
  rake
60
63
  ramdiv-mongo_mapper_acts_as_tree (~> 0.1.1)
data/Rakefile CHANGED
@@ -13,6 +13,7 @@ begin
13
13
  gem.authors = ["Steve England"]
14
14
  gem.add_dependency('mongo_mapper', '~> 0.8.6')
15
15
  gem.add_dependency('ramdiv-mongo_mapper_acts_as_tree', '~> 0.1.1')
16
+ gem.add_dependency('mm-multi-parameter-attributes', '~> 0.1.1')
16
17
  gem.add_dependency('canable', '0.1.1')
17
18
  gem.add_dependency('ruby-stemmer')
18
19
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.3.0
data/lib/noodall/node.rb CHANGED
@@ -4,7 +4,7 @@ module Noodall
4
4
  include MongoMapper::Acts::Tree
5
5
  include Canable::Ables
6
6
 
7
- plugin MultiParameterAttributes
7
+ plugin MongoMapper::Plugins::MultiParameterAttributes
8
8
  plugin Indexer
9
9
  plugin Search
10
10
  plugin Tagging
@@ -332,10 +332,6 @@ module Noodall
332
332
  @root_template
333
333
  end
334
334
 
335
- def single_collection_inherited?
336
- false
337
- end
338
-
339
335
  # Returns a list of classes that can have this model as a child
340
336
  def parent_classes
341
337
  classes = []
data/lib/noodall-core.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require 'mongo_mapper'
2
2
  require 'mongo_mapper_acts_as_tree'
3
3
  require 'canable'
4
+ require 'mm-multi-parameter-attributes'
4
5
  require 'noodall/global_update_time'
5
- require 'noodall/multi_parameter_attributes'
6
6
  require 'noodall/search'
7
7
  require 'noodall/tagging'
8
8
  require 'noodall/permalink'
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.2.1"
8
+ s.version = "0.3.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{2010-11-02}
12
+ s.date = %q{2010-11-03}
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 = [
@@ -29,7 +29,6 @@ Gem::Specification.new do |s|
29
29
  "lib/noodall/component.rb",
30
30
  "lib/noodall/global_update_time.rb",
31
31
  "lib/noodall/indexer.rb",
32
- "lib/noodall/multi_parameter_attributes.rb",
33
32
  "lib/noodall/node.rb",
34
33
  "lib/noodall/permalink.rb",
35
34
  "lib/noodall/search.rb",
@@ -61,17 +60,20 @@ Gem::Specification.new do |s|
61
60
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
62
61
  s.add_runtime_dependency(%q<mongo_mapper>, ["~> 0.8.6"])
63
62
  s.add_runtime_dependency(%q<ramdiv-mongo_mapper_acts_as_tree>, ["~> 0.1.1"])
63
+ s.add_runtime_dependency(%q<mm-multi-parameter-attributes>, ["~> 0.1.1"])
64
64
  s.add_runtime_dependency(%q<canable>, ["= 0.1.1"])
65
65
  s.add_runtime_dependency(%q<ruby-stemmer>, [">= 0"])
66
66
  else
67
67
  s.add_dependency(%q<mongo_mapper>, ["~> 0.8.6"])
68
68
  s.add_dependency(%q<ramdiv-mongo_mapper_acts_as_tree>, ["~> 0.1.1"])
69
+ s.add_dependency(%q<mm-multi-parameter-attributes>, ["~> 0.1.1"])
69
70
  s.add_dependency(%q<canable>, ["= 0.1.1"])
70
71
  s.add_dependency(%q<ruby-stemmer>, [">= 0"])
71
72
  end
72
73
  else
73
74
  s.add_dependency(%q<mongo_mapper>, ["~> 0.8.6"])
74
75
  s.add_dependency(%q<ramdiv-mongo_mapper_acts_as_tree>, ["~> 0.1.1"])
76
+ s.add_dependency(%q<mm-multi-parameter-attributes>, ["~> 0.1.1"])
75
77
  s.add_dependency(%q<canable>, ["= 0.1.1"])
76
78
  s.add_dependency(%q<ruby-stemmer>, [">= 0"])
77
79
  end
data/spec/node_spec.rb CHANGED
@@ -33,6 +33,15 @@ describe Noodall::Node do
33
33
  node = Noodall::Node.find(page.id)
34
34
 
35
35
  node.class.should == Page
36
+
37
+ class LandingPage < Noodall::Node
38
+ root_template!
39
+ end
40
+
41
+ LandingPage.create!(@valid_attributes)
42
+
43
+ Page.last.class.should == Page
44
+ LandingPage.last.class.should == LandingPage
36
45
  end
37
46
 
38
47
  it "should be found by permalink" do
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: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
8
+ - 3
9
+ - 0
10
+ version: 0.3.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: 2010-11-02 00:00:00 +00:00
18
+ date: 2010-11-03 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -53,11 +53,11 @@ dependencies:
53
53
  - !ruby/object:Gem::Dependency
54
54
  type: :runtime
55
55
  prerelease: false
56
- name: canable
56
+ name: mm-multi-parameter-attributes
57
57
  version_requirements: &id003 !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
60
- - - "="
60
+ - - ~>
61
61
  - !ruby/object:Gem::Version
62
62
  hash: 25
63
63
  segments:
@@ -69,8 +69,24 @@ dependencies:
69
69
  - !ruby/object:Gem::Dependency
70
70
  type: :runtime
71
71
  prerelease: false
72
- name: ruby-stemmer
72
+ name: canable
73
73
  version_requirements: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - "="
77
+ - !ruby/object:Gem::Version
78
+ hash: 25
79
+ segments:
80
+ - 0
81
+ - 1
82
+ - 1
83
+ version: 0.1.1
84
+ requirement: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ type: :runtime
87
+ prerelease: false
88
+ name: ruby-stemmer
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
74
90
  none: false
75
91
  requirements:
76
92
  - - ">="
@@ -79,7 +95,7 @@ dependencies:
79
95
  segments:
80
96
  - 0
81
97
  version: "0"
82
- requirement: *id004
98
+ requirement: *id005
83
99
  description: Core data objects for Noodall
84
100
  email: steve@wearebeef.co.uk
85
101
  executables: []
@@ -102,7 +118,6 @@ files:
102
118
  - lib/noodall/component.rb
103
119
  - lib/noodall/global_update_time.rb
104
120
  - lib/noodall/indexer.rb
105
- - lib/noodall/multi_parameter_attributes.rb
106
121
  - lib/noodall/node.rb
107
122
  - lib/noodall/permalink.rb
108
123
  - lib/noodall/search.rb
@@ -1,83 +0,0 @@
1
- module Noodall
2
- module MultiParameterAttributes
3
- module InstanceMethods
4
- def attributes=(attrs)
5
- multi_parameter_attributes = []
6
- attrs.each do |name, value|
7
- return if attrs.blank?
8
- if name.to_s.include?("(")
9
- multi_parameter_attributes << [ name, value ]
10
- else
11
- writer_method = "#{name}="
12
- if respond_to?(writer_method)
13
- self.send(writer_method, value)
14
- else
15
- self[name.to_s] = value
16
- end
17
- end
18
- end
19
-
20
- assign_multiparameter_attributes(multi_parameter_attributes)
21
- end
22
-
23
- def assign_multiparameter_attributes(pairs)
24
- execute_callstack_for_multiparameter_attributes(
25
- extract_callstack_for_multiparameter_attributes(pairs)
26
- )
27
- end
28
-
29
- def execute_callstack_for_multiparameter_attributes(callstack)
30
- callstack.each do |name, values_with_empty_parameters|
31
- # in order to allow a date to be set without a year, we must keep the empty values.
32
- # Otherwise, we wouldn't be able to distinguish it from a date with an empty day.
33
- values = values_with_empty_parameters.reject(&:blank?)
34
-
35
- if values.any?
36
- key = self.class.keys[name]
37
- raise ArgumentError, "Unknown key #{name}" if key.nil?
38
- klass = key.type
39
-
40
- value = if Time == klass
41
- Time.zone.local(*values.map(&:to_i))
42
- elsif Date == klass
43
- begin
44
- values = values_with_empty_parameters.collect do |v| v.nil? ? 1 : v end
45
- Date.new(*values)
46
- rescue ArgumentError => ex # if Date.new raises an exception on an invalid date
47
- Time.zone.local(*values).to_date # we instantiate Time object and convert it back to a date thus using Time's logic in handling invalid dates
48
- end
49
- else
50
- klass.new(*values)
51
- end
52
- else
53
- value = nil
54
- end
55
- writer_method = "#{name}="
56
- if respond_to?(writer_method)
57
- self.send(writer_method, value)
58
- else
59
- self[name.to_s] = value
60
- end
61
- end
62
- end
63
-
64
- def extract_callstack_for_multiparameter_attributes(pairs)
65
- attributes = { }
66
-
67
- for pair in pairs
68
- multiparameter_name, value = pair
69
- attribute_name = multiparameter_name.split("(").first
70
- attributes[attribute_name] = [] unless attributes.include?(attribute_name)
71
-
72
- attributes[attribute_name] << [ find_parameter_position(multiparameter_name), value ]
73
- end
74
-
75
- attributes.each { |name, values| attributes[name] = values.sort_by{ |v| v.first }.collect { |v| v.last } }
76
- end
77
-
78
- def find_parameter_position(multiparameter_name)
79
- multiparameter_name.scan(/\(([0-9]*).*\)/).first.first
80
- end
81
- end
82
- end
83
- end