eric_tools 0.0.4 → 0.0.5

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