has_seo_fields 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module HasSeoFields
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -10,22 +10,24 @@ module HasSeoFields
10
10
 
11
11
  module ClassMethods
12
12
  def has_seo_fields *args
13
- const_set "SEO_NAMES", args
14
13
 
15
- args.each do |field|
14
+ args.map! do |field|
16
15
  getter_name = "seo_#{field}"
17
16
 
18
17
  define_method getter_name do
18
+ field.value if (field = seo_fields.find_by_name getter_name)
19
19
  end
20
20
 
21
21
  define_method "#{getter_name}=" do |value|
22
- if (field = seo_fields.find_by_name(getter_name))
22
+ if (field = seo_fields.find_by_name getter_name)
23
23
  field.update_attribute :value, value
24
24
  else
25
25
  seo_fields.create :name => getter_name, :value => value
26
26
  end
27
27
  end
28
+ getter_name
28
29
  end
30
+ const_set "SEO_NAMES", args
29
31
  end
30
32
  end
31
33
 
@@ -9,7 +9,20 @@ describe HasSeoFields do
9
9
  end
10
10
 
11
11
  it "sets SEO_NAMES" do
12
- subject.class::SEO_NAMES.should eql([:h1_tag, :title])
12
+ subject.class::SEO_NAMES.should eql(['seo_h1_tag', 'seo_title'])
13
+ end
14
+
15
+ context "getters" do
16
+
17
+ it "finds existing record by the name" do
18
+ subject.seo_fields.create :name => 'seo_h1_tag', :value => 'Cool!'
19
+ subject.seo_h1_tag.should eql('Cool!')
20
+ end
21
+
22
+ it "returns nil if nothing founded" do
23
+ subject.seo_title.should be_nil
24
+ end
25
+
13
26
  end
14
27
 
15
28
  context "setters" do
@@ -18,11 +31,12 @@ describe HasSeoFields do
18
31
  subject.should respond_to('seo_h1_tag=', 'seo_title=')
19
32
  end
20
33
 
21
- describe "seo field with that name does not exists" do
34
+ describe "seo field with name that does not exists" do
22
35
 
23
- it "create needed seo field with given value" do
36
+ it "creates needed seo field with given value" do
24
37
  subject.seo_h1_tag='Cool city'
25
- subject.seo_fields.where(:name => 'seo_h1_tag').should have(1).item
38
+ subject.seo_fields.should have(1).item
39
+ subject.seo_fields.find_by_name('seo_h1_tag').value.should eql('Cool city')
26
40
  end
27
41
  end
28
42
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_seo_fields
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nick Erlikh