kosher 0.1.7 → 0.1.8

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/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