jaysus 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{jaysus}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Paul Campbell"]
12
- s.date = %q{2011-01-25}
12
+ s.date = %q{2011-01-26}
13
13
  s.description = %q{Persist remote JSON APIs locally and vice versa}
14
14
  s.email = %q{paul@rslw.com}
15
15
  s.extra_rdoc_files = [
@@ -48,7 +48,7 @@ Gem::Specification.new do |s|
48
48
  s.homepage = %q{http://github.com/paulca/jaysus}
49
49
  s.licenses = ["MIT"]
50
50
  s.require_paths = ["lib"]
51
- s.rubygems_version = %q{1.3.7}
51
+ s.rubygems_version = %q{1.4.2}
52
52
  s.summary = %q{A Ruby library for managing local / remote JSON store}
53
53
  s.test_files = [
54
54
  "spec/local_spec.rb",
@@ -62,7 +62,6 @@ Gem::Specification.new do |s|
62
62
  ]
63
63
 
64
64
  if s.respond_to? :specification_version then
65
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
66
65
  s.specification_version = 3
67
66
 
68
67
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -128,7 +128,7 @@ module Jaysus
128
128
 
129
129
  def attributes
130
130
  out = {}
131
- self.class.model_base.attributes.each do |attribute|
131
+ (self.class.model_base.attributes + self.class.attributes).each do |attribute|
132
132
  out[attribute.to_s] = send(attribute)
133
133
  end
134
134
  out
@@ -173,7 +173,7 @@ module Jaysus
173
173
  def to_json
174
174
  {}.tap do |outer_hash|
175
175
  outer_hash[self.class.store_file_dir_name.singularize] = {}.tap do |inner_hash|
176
- self.class.model_base.attributes.each do |attribute|
176
+ (self.class.model_base.attributes + self.class.attributes).each do |attribute|
177
177
  if self.send(attribute).present?
178
178
  inner_hash[attribute] = self.send(attribute)
179
179
  end
@@ -30,7 +30,6 @@ module Jaysus
30
30
 
31
31
  module ClassMethods
32
32
  def all
33
- # debugger if self.model_name == 'Kalipso::Site'
34
33
  records = []
35
34
  Dir[store_file_dir.join('*')].each do |id|
36
35
  records << find(id)
@@ -24,16 +24,18 @@ module Jaysus
24
24
  super do
25
25
  response = if pk = self.send(self.class.model_base.primary_key)
26
26
  RestClient.put("#{self.class.model_url}/#{pk}", self.to_json, {
27
- 'Content-Type' => 'application/json'
27
+ 'Content-Type' => 'application/json',
28
+ 'Accept' => 'application/json'
28
29
  })
29
30
  else
30
31
  RestClient.post(self.class.model_url, self.to_json, {
31
- 'Content-Type' => 'application/json'
32
+ 'Content-Type' => 'application/json',
33
+ 'Accept' => 'application/json'
32
34
  })
33
35
  end
34
36
  decoded_response = ActiveSupport::JSON.decode(
35
37
  response
36
- )[self.class.singular_name]
38
+ )[self.class.singular_object_name]
37
39
  self.set_attributes(decoded_response)
38
40
  self
39
41
  end
@@ -31,7 +31,7 @@ describe Jaysus::Local do
31
31
  end
32
32
  context "within a module" do
33
33
  subject { Kalipso::Site::Local.all }
34
- its(:length) { should == 1}
34
+ its(:length) { should == 1 }
35
35
  its(:first) { should be_a_kind_of(Kalipso::Site::Local) }
36
36
  end
37
37
  end
@@ -82,8 +82,12 @@ describe Jaysus::Local do
82
82
  end
83
83
 
84
84
  describe "#update_attributes" do
85
- subject { site.update_attributes(:title => "Newer Site")}
86
- its(:title) { should == "Newer Site" }
85
+ before do
86
+ site.save
87
+ site.update_attributes(:title => "Newer Site", :path => "nice")
88
+ end
89
+ subject { File.read("#{Site::Local.store_file_dir}/#{site.id}")}
90
+ it { should match(/nice/) }
87
91
  end
88
92
 
89
93
  describe "#destroy" do
@@ -3,6 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
3
  describe Jaysus::Remote do
4
4
 
5
5
  let(:site) { Site::Remote.new({ :title => "New Site" }) }
6
+ let(:module_site) { Kalipso::Site::Remote.new({ :title => "New Site" }) }
6
7
 
7
8
  describe ".all" do
8
9
  before do
@@ -47,15 +48,25 @@ describe Jaysus::Remote do
47
48
  'http://testapi/sites',
48
49
  site.to_json,
49
50
  {
50
- 'Content-Type' => 'application/json'
51
+ 'Content-Type' => 'application/json',
52
+ 'Accept' => 'application/json'
51
53
  }
52
54
  ).and_return(File.read('spec/fixtures/new_site.json'))
53
- site.save
54
55
  end
55
56
 
56
- subject { site }
57
- its(:id) { should == 2 }
58
- its(:title) { should == "New Site" }
57
+ context "normal" do
58
+ before { site.save }
59
+ subject { site }
60
+ its(:id) { should == 2 }
61
+ its(:title) { should == "New Site" }
62
+ end
63
+
64
+ context "within a module" do
65
+ before { module_site.save }
66
+ subject { module_site }
67
+ its(:id) { should == 2 }
68
+ its(:title) { should == "New Site" }
69
+ end
59
70
  end
60
71
 
61
72
  describe "#update_attributes" do
@@ -63,7 +74,7 @@ describe Jaysus::Remote do
63
74
  RestClient.should_receive(:get).with(
64
75
  'http://testapi/sites/42',
65
76
  {
66
- 'Accept' => 'application/json'
77
+ 'Accept' => 'application/json',
67
78
  }
68
79
  ).and_return(File.read('spec/fixtures/find_site.json'))
69
80
 
@@ -71,7 +82,8 @@ describe Jaysus::Remote do
71
82
  'http://testapi/sites/42',
72
83
  "{\"site\":{\"title\":\"Monster!\",\"id\":42,\"user_id\":42}}",
73
84
  {
74
- 'Content-Type' => 'application/json'
85
+ 'Content-Type' => 'application/json',
86
+ 'Accept' => 'application/json'
75
87
  }
76
88
  ).and_return(File.read('spec/fixtures/update_site.json'))
77
89
  end
@@ -8,6 +8,7 @@ module Site
8
8
 
9
9
  class Local < Base
10
10
  include Jaysus::Local
11
+ attribute :path
11
12
  end
12
13
 
13
14
  class Remote < Base
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jaysus
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
4
+ hash: 19
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Paul Campbell
@@ -15,13 +15,13 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-25 00:00:00 +00:00
18
+ date: 2011-01-26 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
22
  prerelease: false
24
23
  name: activemodel
24
+ type: :runtime
25
25
  version_requirements: &id001 !ruby/object:Gem::Requirement
26
26
  none: false
27
27
  requirements:
@@ -35,9 +35,9 @@ dependencies:
35
35
  version: 3.0.0
36
36
  requirement: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- type: :runtime
39
38
  prerelease: false
40
39
  name: activesupport
40
+ type: :runtime
41
41
  version_requirements: &id002 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
@@ -51,9 +51,9 @@ dependencies:
51
51
  version: 3.0.0
52
52
  requirement: *id002
53
53
  - !ruby/object:Gem::Dependency
54
- type: :runtime
55
54
  prerelease: false
56
55
  name: rest-client
56
+ type: :runtime
57
57
  version_requirements: &id003 !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
@@ -67,9 +67,9 @@ dependencies:
67
67
  version: 1.6.1
68
68
  requirement: *id003
69
69
  - !ruby/object:Gem::Dependency
70
- type: :development
71
70
  prerelease: false
72
71
  name: bundler
72
+ type: :development
73
73
  version_requirements: &id004 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
@@ -83,9 +83,9 @@ dependencies:
83
83
  version: 1.0.0
84
84
  requirement: *id004
85
85
  - !ruby/object:Gem::Dependency
86
- type: :development
87
86
  prerelease: false
88
87
  name: fakeweb
88
+ type: :development
89
89
  version_requirements: &id005 !ruby/object:Gem::Requirement
90
90
  none: false
91
91
  requirements:
@@ -99,9 +99,9 @@ dependencies:
99
99
  version: 1.3.0
100
100
  requirement: *id005
101
101
  - !ruby/object:Gem::Dependency
102
- type: :development
103
102
  prerelease: false
104
103
  name: jeweler
104
+ type: :development
105
105
  version_requirements: &id006 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
@@ -115,9 +115,9 @@ dependencies:
115
115
  version: 1.5.2
116
116
  requirement: *id006
117
117
  - !ruby/object:Gem::Dependency
118
- type: :development
119
118
  prerelease: false
120
119
  name: rcov
120
+ type: :development
121
121
  version_requirements: &id007 !ruby/object:Gem::Requirement
122
122
  none: false
123
123
  requirements:
@@ -129,9 +129,9 @@ dependencies:
129
129
  version: "0"
130
130
  requirement: *id007
131
131
  - !ruby/object:Gem::Dependency
132
- type: :development
133
132
  prerelease: false
134
133
  name: rspec
134
+ type: :development
135
135
  version_requirements: &id008 !ruby/object:Gem::Requirement
136
136
  none: false
137
137
  requirements:
@@ -145,9 +145,9 @@ dependencies:
145
145
  version: 2.0.0
146
146
  requirement: *id008
147
147
  - !ruby/object:Gem::Dependency
148
- type: :development
149
148
  prerelease: false
150
149
  name: ruby-debug
150
+ type: :development
151
151
  version_requirements: &id009 !ruby/object:Gem::Requirement
152
152
  none: false
153
153
  requirements:
@@ -225,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
225
  requirements: []
226
226
 
227
227
  rubyforge_project:
228
- rubygems_version: 1.3.7
228
+ rubygems_version: 1.4.2
229
229
  signing_key:
230
230
  specification_version: 3
231
231
  summary: A Ruby library for managing local / remote JSON store