easy_weixin 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b9e4b3a18d61be5c38bcf3ced6ff8092249f98dd
4
- data.tar.gz: 441f90853ac0764fd414b2505fed2c7b2fc23d74
3
+ metadata.gz: 6203cb0b0b660f342193060c6c7be491edce48d5
4
+ data.tar.gz: bc1d7c841c607c9d685bf6b8ee56a392398d21cf
5
5
  SHA512:
6
- metadata.gz: 1e83011b06d4266d4ab3168112becc26d16ee6c5b7b216633e1fbb6eded209729afd7889d739e53a0f1f49fb138346a6ac169124e670d0ba5dad59c33e32fc4b
7
- data.tar.gz: 7a356db662e661e1ef2b380cddc2064530f3777d71049818e499b6f03eaefcee0418ef6e8760de39c0054fd06b7bc36de8c339e1a46927a897eaeba3e0cafff0
6
+ metadata.gz: 3611ca191121b87913414fa095934d5cadd3f8a5f227c7d07d0fe9270c7c3a5e912fe3eb99caefe296ad3f6ca91a9b2d45557958c738801cbe9ad8f9293454a9
7
+ data.tar.gz: 9edf400237e1613626ef06f6c45ba704a6ae042bd3f4fe0cfa6a4a60c18cf64a88b9d53a9b65f700f3a67537122e126d0648368cc9baf517648955c3cbcaa7e7
data/easy_weixin.gemspec CHANGED
@@ -20,4 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.5"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "roxml"
24
+ spec.add_development_dependency "multi_xml"
23
25
  end
@@ -0,0 +1,87 @@
1
+ require 'multi_xml'
2
+ require 'ostruct'
3
+ require 'roxml'
4
+
5
+ module EasyWeixin
6
+ class Message
7
+ attr_accessor :ToUserName, :FromUserName, :CreateTime
8
+
9
+ def initialize
10
+ @ToUserName = ToUserName
11
+ @FromUserName = FromUserName
12
+ @CreateTime = CreateTime
13
+ end
14
+
15
+ def get_xml
16
+ Nokogiri::XML(request.body.read)
17
+ end
18
+
19
+ def get_value(doc, key)
20
+ if doc.xpath("//#{key}")[0]
21
+ doc.xpath("//#{key}")[0].content
22
+ else
23
+ false
24
+ end
25
+ end
26
+
27
+ def self.factory(xml)
28
+ hash = MultiXml.parse(xml)['xml']
29
+ source = OpenStruct.new(hash)
30
+ end
31
+
32
+ end
33
+
34
+ TextMessage = Class.new(Message)
35
+
36
+ class ReplyMessage
37
+ include ROXML
38
+ xml_name :xml
39
+
40
+ xml_accessor :ToUserName, :cdata => true
41
+ xml_accessor :FromUserName, :cdata => true
42
+ xml_reader :CreateTime, :as => Integer
43
+ xml_reader :MsgType, :cdata => true
44
+ xml_accessor :MsgId, :cdata => true
45
+
46
+
47
+ def initialize
48
+ @CreateTime = Time.now.to_i
49
+ end
50
+
51
+ def to_xml
52
+ super.to_xml(:encoding => 'UTF-8', :indent => 0, :save_with => 0)
53
+ end
54
+
55
+ end
56
+
57
+ class TextReplyMessage < ReplyMessage
58
+ xml_accessor :Content, :cdata => true
59
+
60
+ def initialize
61
+ super
62
+ @MsgType = 'text'
63
+ end
64
+ end
65
+
66
+ class Item
67
+ include ROXML
68
+
69
+ xml_accessor :Title, :cdata => true
70
+ xml_accessor :Description, :cdata => true
71
+ xml_accessor :PicUrl, :cdata => true
72
+ xml_accessor :Url, :cdata => true
73
+ end
74
+
75
+ class NewsReplyMessage < ReplyMessage
76
+ xml_accessor :ArticleCount, :as => Integer
77
+ xml_accessor :Articles, :as => [Item], :in => 'Articles', :from => 'item'
78
+
79
+ def initialize
80
+ super
81
+ @MsgType = 'news'
82
+ end
83
+
84
+ end
85
+
86
+
87
+ end
@@ -1,3 +1,3 @@
1
1
  module EasyWeixin
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/easy_weixin.rb CHANGED
@@ -1,6 +1,24 @@
1
1
  require "easy_weixin/version"
2
+ require "easy_weixin/controller"
2
3
  require "easy_weixin/model"
3
4
 
4
5
  module EasyWeixin
5
- # Your code goes here...
6
+ extend self
7
+
8
+ def text_msg(from, to, content)
9
+ msg = TextReplyMessage.new
10
+ msg.ToUserName = to
11
+ msg.FromUserName = from
12
+ msg.Content = content
13
+ msg.to_xml
14
+ end
15
+
16
+ def news_msg(from, to, articles, articleCount)
17
+ msg = NewsReplyMessage.new
18
+ msg.ToUserName = to
19
+ msg.FromUserName = from
20
+ msg.Articles = articles
21
+ msg.ArticleCount = articleCount
22
+ msg.to_xml
23
+ end
6
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_weixin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - menghuanwd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-05 00:00:00.000000000 Z
11
+ date: 2014-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: roxml
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: multi_xml
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  description: easy to use weixin.
42
70
  email:
43
71
  - 651019063@qq.com
@@ -52,6 +80,7 @@ files:
52
80
  - Rakefile
53
81
  - easy_weixin.gemspec
54
82
  - lib/easy_weixin.rb
83
+ - lib/easy_weixin/model.rb
55
84
  - lib/easy_weixin/version.rb
56
85
  homepage: https://github.com/menghuanwd/easy_weixin
57
86
  licenses: