easy_weixin 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: