kosher 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -7,3 +7,6 @@ desc 'Run all specs in spec directory'
7
7
  RSpec::Core::RakeTask.new(:spec) do |spec|
8
8
  spec.pattern = 'spec/**/*_spec.rb'
9
9
  end
10
+
11
+ task :default => :spec
12
+
data/kosher.gemspec CHANGED
@@ -19,12 +19,11 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ['lib']
21
21
 
22
+ s.add_dependency('json', '~> 1.5.1')
22
23
  s.add_dependency('sucker', '~> 1.3.1')
23
24
  s.add_development_dependency('fabrication', '~> 0.9.5')
24
25
  s.add_development_dependency('rspec', '~> 2.5.0')
25
- if RUBY_VERSION.include? '1.9'
26
- s.add_development_dependency('ruby-debug19', '~> 0.11.6')
27
- end
26
+ s.add_development_dependency('ruby-debug19', '~> 0.11.6')
28
27
  s.add_development_dependency('vcr', '~> 1.7.0')
29
28
  s.add_development_dependency('webmock', '~> 1.6.2')
30
29
  end
@@ -0,0 +1,15 @@
1
+ require 'json'
2
+
3
+ module Kosher
4
+ class Struct < ::Struct
5
+ def to_map
6
+ map = Hash.new
7
+ self.members.each { |m| map[m] = self[m] }
8
+ map
9
+ end
10
+
11
+ def to_json(*a)
12
+ to_map.to_json(*a)
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module Kosher
2
- VERSION = '0.1.7'
2
+ VERSION = '0.1.8'
3
3
  end
data/lib/kosher.rb CHANGED
@@ -7,6 +7,7 @@ require 'kosher/item'
7
7
  require 'kosher/offer'
8
8
  require 'kosher/request'
9
9
  require 'kosher/seller'
10
+ require 'kosher/struct'
10
11
 
11
12
  module Kosher
12
13
  def self.new(args={})
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ module Kosher
4
+ describe Struct do
5
+ before(:all) do
6
+ class Foo < Struct.new(:bar); end
7
+ end
8
+
9
+ describe "to_json" do
10
+ it "converts to JSON" do
11
+ foo = Foo.new
12
+ foo.bar = 1
13
+
14
+ foo.to_json.should eql "{\"bar\":1}"
15
+ end
16
+
17
+ it "handles nested structs" do
18
+ foo_1 = Foo.new
19
+ foo_2 = Foo.new
20
+
21
+ foo_2.bar = 1
22
+ foo_1.bar = foo_2
23
+
24
+ foo_1.to_json.should eql "{\"bar\":{\"bar\":1}}"
25
+ end
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: kosher
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.7
5
+ version: 0.1.8
6
6
  platform: ruby
7
7
  authors:
8
8
  - Paper Cavalier
@@ -14,71 +14,82 @@ date: 2011-03-07 00:00:00 +00:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: sucker
17
+ name: json
18
18
  prerelease: false
19
19
  requirement: &id001 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ~>
23
23
  - !ruby/object:Gem::Version
24
- version: 1.3.1
24
+ version: 1.5.1
25
25
  type: :runtime
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: fabrication
28
+ name: sucker
29
29
  prerelease: false
30
30
  requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: 1.3.1
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: fabrication
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
31
42
  none: false
32
43
  requirements:
33
44
  - - ~>
34
45
  - !ruby/object:Gem::Version
35
46
  version: 0.9.5
36
47
  type: :development
37
- version_requirements: *id002
48
+ version_requirements: *id003
38
49
  - !ruby/object:Gem::Dependency
39
50
  name: rspec
40
51
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirement: &id004 !ruby/object:Gem::Requirement
42
53
  none: false
43
54
  requirements:
44
55
  - - ~>
45
56
  - !ruby/object:Gem::Version
46
57
  version: 2.5.0
47
58
  type: :development
48
- version_requirements: *id003
59
+ version_requirements: *id004
49
60
  - !ruby/object:Gem::Dependency
50
61
  name: ruby-debug19
51
62
  prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
63
+ requirement: &id005 !ruby/object:Gem::Requirement
53
64
  none: false
54
65
  requirements:
55
66
  - - ~>
56
67
  - !ruby/object:Gem::Version
57
68
  version: 0.11.6
58
69
  type: :development
59
- version_requirements: *id004
70
+ version_requirements: *id005
60
71
  - !ruby/object:Gem::Dependency
61
72
  name: vcr
62
73
  prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
74
+ requirement: &id006 !ruby/object:Gem::Requirement
64
75
  none: false
65
76
  requirements:
66
77
  - - ~>
67
78
  - !ruby/object:Gem::Version
68
79
  version: 1.7.0
69
80
  type: :development
70
- version_requirements: *id005
81
+ version_requirements: *id006
71
82
  - !ruby/object:Gem::Dependency
72
83
  name: webmock
73
84
  prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
85
+ requirement: &id007 !ruby/object:Gem::Requirement
75
86
  none: false
76
87
  requirements:
77
88
  - - ~>
78
89
  - !ruby/object:Gem::Version
79
90
  version: 1.6.2
80
91
  type: :development
81
- version_requirements: *id006
92
+ version_requirements: *id007
82
93
  description: Kosher wraps Amazon in a loving embrace.
83
94
  email: code@papercavalier.com
84
95
  executables: []
@@ -103,6 +114,7 @@ files:
103
114
  - lib/kosher/offer.rb
104
115
  - lib/kosher/request.rb
105
116
  - lib/kosher/seller.rb
117
+ - lib/kosher/struct.rb
106
118
  - lib/kosher/version.rb
107
119
  - spec/fabricators/condition_fabricator.rb
108
120
  - spec/fabricators/offer_fabricator.rb
@@ -116,6 +128,7 @@ files:
116
128
  - spec/kosher/offer_spec.rb
117
129
  - spec/kosher/request_spec.rb
118
130
  - spec/kosher/seller_spec.rb
131
+ - spec/kosher/struct_spec.rb
119
132
  - spec/spec_helper.rb
120
133
  - spec/support/credentials.rb
121
134
  - spec/support/faker.rb
@@ -162,6 +175,7 @@ test_files:
162
175
  - spec/kosher/offer_spec.rb
163
176
  - spec/kosher/request_spec.rb
164
177
  - spec/kosher/seller_spec.rb
178
+ - spec/kosher/struct_spec.rb
165
179
  - spec/spec_helper.rb
166
180
  - spec/support/credentials.rb
167
181
  - spec/support/faker.rb