eric_tools 0.0.4 → 0.0.5

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: db3336f28702f22ed3431fff3642b4fcf02818af
4
- data.tar.gz: d952f91e7a6ace9401a7aa750e7e671d4c86f5cf
3
+ metadata.gz: 5fb1fb6cc60b5a28bd2f16ef58f8475ec0a66b49
4
+ data.tar.gz: 691d3f191af96e0e7f753711d30a450596669bef
5
5
  SHA512:
6
- metadata.gz: 27332345884273f9c52bcc1c56254a49fb11107193db6bb42919c8d004c280bf2e610ca21a8c7a69ef3d2692aa29513778d97a9de7b70255e3c44bbde20a5a78
7
- data.tar.gz: ec9525e5904b71b52cae2e1cb06c00db6c061be90e9980fdcfd2ec3ed6ffffdc5658edeedcb47359249503795b9903b5f74c429355f81467ed7d28913955fe20
6
+ metadata.gz: 9d09bf9a8dbc10698f9691f56195f76f5dd7d0871c9343745a497f8609873dea7856c187565f3b4191f53c3cfbb2b3bc729f4325dd79146de33d4ff1ae25d602
7
+ data.tar.gz: 8a9b74bb0fe87b23056784c8e3ea6370c287943a9645aa1fa391309db903b270bbd1b22edc30a4a9a0e513fe5e587ff8c4c108cf1154fcefb11c90fae154a2e5
data/Gemfile CHANGED
@@ -2,3 +2,6 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in eric_tools.gemspec
4
4
  gemspec :name => 'eric_tools'
5
+
6
+ gem 'nokogiri'
7
+ gem 'rest-client'
data/Rakefile CHANGED
@@ -1,2 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ end
6
+
7
+ desc "Run tests"
8
+ task :default => :test
data/eric_tools.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = EricTools::VERSION
9
9
  spec.authors = ["刘晓琦"]
10
10
  spec.email = ["ericliu@ikidstv.com"]
11
- spec.summary = %q{一些简单的类方法}
12
- spec.description = %q{详细描述后续再加}
11
+ spec.summary = %q{在Rails框架基础上,对一些类增加一些工具方法。同时封装了一些平时比较常用的函数,如uuid, 随字数,根据ip获得城市名称等}
12
+ spec.description = %q{1.在Rails框架基础上,对一些类增加一些工具方法。 2.增加了一些工具类,如uuid,生成随机字符串,根据Ip获取城市名称等 3.一些有用的正则表达式}
13
13
  spec.homepage = ""
14
14
  spec.license = "MIT"
15
15
 
@@ -18,9 +18,12 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency 'rubygems', '~> 0'
22
- spec.add_development_dependency "bundler", "~> 1.6"
23
- spec.add_development_dependency "rake", "~> 0"
24
- spec.add_development_dependency "nokogiri", '~> 0'
21
+
22
+
23
+
24
+ spec.add_dependency "nokogiri", '~> 1.6'
25
+ spec.add_dependency 'rest-client', '~> 1.8'
26
+
27
+
25
28
 
26
29
  end
data/lib/eric_tools.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require 'nokogiri'
2
+ require 'rest_client'
2
3
  require "eric_tools/version"
4
+ require 'json'
3
5
 
4
6
  require File.dirname(__FILE__) + '/eric_tools/array.rb'
5
7
  require File.dirname(__FILE__) + '/eric_tools/business_exception.rb'
@@ -12,12 +14,24 @@ require File.dirname(__FILE__) + '/eric_tools/symbol.rb'
12
14
  require File.dirname(__FILE__) + '/eric_tools/time.rb'
13
15
  require File.dirname(__FILE__) + '/eric_tools/version.rb'
14
16
 
15
-
16
-
17
-
18
17
  module EricTools
18
+
19
+ ##
20
+ # ===功能描述
21
+ # 根据ip获取城市名称。
22
+ # ===参数说明
23
+ # ak:需要从百度申请每个应用的ak,用于根据ip查找城市名称,每个ak每天限制调用100万次。
24
+ # ip: 需要获取城市名称的ip
25
+ # ===返回值
26
+ # 返回一个hash , 其中,通地
27
+ # :city 获取城市名称
28
+ # :province 获以省份名称
29
+ # :address 地址详细信息:如 CN|上海|上海|None|CHINANET|0|0
30
+ # ===示例
31
+ # EricTools.uuid
19
32
  def self.uuid
20
33
  UUIDTools::UUID.timestamp_create.to_s
34
+
21
35
  end
22
36
 
23
37
  #type=1表示只包含数字,type=2表示只包含字母,type=3表示都包含
@@ -32,6 +46,26 @@ module EricTools
32
46
  end
33
47
  end
34
48
 
49
+ ##
50
+ # ===功能描述
51
+ # 根据ip获取城市名称。
52
+ # ===参数说明
53
+ # ak:需要从百度申请每个应用的ak,用于根据ip查找城市名称,每个ak每天限制调用100万次。
54
+ # ip: 需要获取城市名称的ip
55
+ # ===返回值
56
+ # 返回一个hash , 其中,通地
57
+ # :city 获取城市名称
58
+ # :province 获以省份名称
59
+ # :address 地址详细信息:如 CN|上海|上海|None|CHINANET|0|0
60
+ # ===示例
61
+ # EricTools.get_city_name_from_ip {:ak=> 'HS8ViRxQT0xMu8d3uARISMif', :ip => '101.231.116.38', :default_province => '上海', :default_city => '上海'}
62
+
63
+ def self.get_city_name_from_ip options
64
+ response = RestClient.get("http://api.map.baidu.com/location/ip?ak=#{options[:ak]}&ip=#{options[:ip]}")
65
+ response = JSON.parse(response.body)
66
+ {:address => response["address"], :province => response["content"]["address_detail"]["province"], :city => response["content"]["address_detail"]["city"]} rescue {}
67
+ end
68
+
35
69
  module RegularConstants
36
70
  EmailRegular = /\A[\w+\-.]+@[a-z\d\-]+(?:\.[a-z\d\-]+)*\.[a-z]+\z/i
37
71
  UserNameRegular = /\A[a-zA-Z_\d\s-]*\z/
@@ -1,3 +1,3 @@
1
1
  module EricTools
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,7 @@
1
+ require 'eric_tools'
2
+ describe "get_city_name_from_ip" do
3
+ it 'should be shanghai' do
4
+ response = EricTools.get_city_name_from_ip :ak => 'HS8ViRxQT0xMu8d3uARISMif', :ip => '101.231.116.38'
5
+ response["city"].equal? '上海'
6
+ end
7
+ end
metadata CHANGED
@@ -1,37 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eric_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - 刘晓琦
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-04 00:00:00.000000000 Z
11
+ date: 2015-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rubygems
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
14
+ name: nokogiri
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ~>
32
18
  - !ruby/object:Gem::Version
33
19
  version: '1.6'
34
- type: :development
20
+ type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
@@ -39,34 +25,20 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '1.6'
41
27
  - !ruby/object:Gem::Dependency
42
- name: rake
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: nokogiri
28
+ name: rest-client
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - ~>
60
32
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
33
+ version: '1.8'
34
+ type: :runtime
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - ~>
67
39
  - !ruby/object:Gem::Version
68
- version: '0'
69
- description: 详细描述后续再加
40
+ version: '1.8'
41
+ description: 1.在Rails框架基础上,对一些类增加一些工具方法。 2.增加了一些工具类,如uuid,生成随机字符串,根据Ip获取城市名称等 3.一些有用的正则表达式
70
42
  email:
71
43
  - ericliu@ikidstv.com
72
44
  executables: []
@@ -91,6 +63,7 @@ files:
91
63
  - lib/eric_tools/symbol.rb
92
64
  - lib/eric_tools/time.rb
93
65
  - lib/eric_tools/version.rb
66
+ - test/test_eric_tools.rb
94
67
  homepage: ''
95
68
  licenses:
96
69
  - MIT
@@ -114,5 +87,6 @@ rubyforge_project:
114
87
  rubygems_version: 2.2.2
115
88
  signing_key:
116
89
  specification_version: 4
117
- summary: 一些简单的类方法
118
- test_files: []
90
+ summary: 在Rails框架基础上,对一些类增加一些工具方法。同时封装了一些平时比较常用的函数,如uuid, 随字数,根据ip获得城市名称等
91
+ test_files:
92
+ - test/test_eric_tools.rb