muffins 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +81 -0
  2. data/lib/muffins/version.rb +1 -1
  3. data/muffins.gemspec +1 -1
  4. metadata +13 -12
@@ -0,0 +1,81 @@
1
+ Muffins
2
+ ========
3
+
4
+ A Nokogiri-based Object to XML/HTML mapping library.
5
+
6
+ Installation
7
+ ------------
8
+
9
+ gem install muffins
10
+
11
+ Examples
12
+ -----
13
+
14
+ ##XML
15
+
16
+ <books>
17
+ <book>
18
+ <asin>1400079985</asin>
19
+ <item_attributes>
20
+ <title>War and Peace (Vintage Classics)</title>
21
+ <author>Leo Tolstoy</author>
22
+ <EAN>9781400079988</EAN>
23
+ <release_date>2008-12-02</release_date>
24
+ </item_attributes>
25
+ <reviews>
26
+ <editorial_review>ZOMG.</editorial_review>
27
+ </reviews>
28
+ <similar_products>
29
+ <similar_product>
30
+ <title>Anna Karenina</title>
31
+ <EAN>9780143035008</EAN>
32
+ </similar_product>
33
+ </similar_products>
34
+ </book>
35
+ </books>
36
+
37
+ ##Map XML to Model Classes
38
+
39
+ Primary class:
40
+
41
+ class Book
42
+
43
+ include Muffins
44
+
45
+ base_path 'book'
46
+
47
+ map :asin
48
+
49
+ within :item_attributes do |attributes|
50
+ attributes.map :title
51
+ attributes.map :author
52
+ attributes.map :ean, :to => 'EAN'
53
+ attributes.map :release_date, :type => Date
54
+ end
55
+
56
+ map :editorial_review, :within => :reviews
57
+
58
+ map :similar_products, :to => 'SimilarProducts', :type => Product
59
+
60
+ end
61
+
62
+ Associated class:
63
+
64
+ class Product
65
+
66
+ include Muffins
67
+
68
+ base_path 'similar_product'
69
+
70
+ map :title
71
+ map :ean, :to => 'EAN'
72
+
73
+ end
74
+
75
+ ##Usage
76
+
77
+ Book.parse(xml)
78
+
79
+ returns:
80
+
81
+ [#<Book:0x233ebe8 @asin='1400079985', @title="War and Peace (Vintage Classics)", @author="Leo Tolstoy", @ean="9781400079988", @release_date=Tue, 02 Dec 2008, @editorial_review='ZOMG.', :similar_products=[#<Product:0x234ebe9 @title='Anna Karenina', @ean='9780143035008'>]>]
@@ -1,3 +1,3 @@
1
1
  module Muffins
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.rubyforge_project = "muffins"
15
15
 
16
16
  {
17
- 'activesupport' => '~> 2.3.10',
17
+ 'activesupport' => '>= 2.3.10',
18
18
  'nokogiri' => '~> 1.4'
19
19
  }.each do |lib, version|
20
20
  s.add_runtime_dependency lib, version
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muffins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,18 +14,18 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &15895880 !ruby/object:Gem::Requirement
17
+ requirement: &7828520 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
- - - ~>
20
+ - - ! '>='
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.3.10
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *15895880
25
+ version_requirements: *7828520
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: nokogiri
28
- requirement: &15895400 !ruby/object:Gem::Requirement
28
+ requirement: &7828040 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '1.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *15895400
36
+ version_requirements: *7828040
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &15894760 !ruby/object:Gem::Requirement
39
+ requirement: &7827400 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '1.0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *15894760
47
+ version_requirements: *7827400
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: cucumber
50
- requirement: &15894320 !ruby/object:Gem::Requirement
50
+ requirement: &7826960 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0.10'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *15894320
58
+ version_requirements: *7826960
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rspec
61
- requirement: &15893880 !ruby/object:Gem::Requirement
61
+ requirement: &7826520 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '2.6'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *15893880
69
+ version_requirements: *7826520
70
70
  description: An Object to XML/HTML mapping library using Nokogiri
71
71
  email:
72
72
  - ryan.closner@gmail.com
@@ -76,6 +76,7 @@ extra_rdoc_files: []
76
76
  files:
77
77
  - .gitignore
78
78
  - Gemfile
79
+ - README.md
79
80
  - Rakefile
80
81
  - features/basic_parsing.feature
81
82
  - features/nested_parsing.feature