hosum 0.0.1a → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1 +1,4 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ require 'rake/version_task'
4
+ Rake::VersionTask.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1a
1
+ 0.1.0
data/bin/hosum CHANGED
@@ -22,11 +22,11 @@ OptionParser.new do |opts|
22
22
  end
23
23
  end.parse!(ARGV)
24
24
 
25
- p options
26
- p ARGV
25
+ # p options
26
+ # p ARGV
27
27
 
28
28
 
29
- rs = Hosum.dsl_by_file(ARGV.first)
29
+ rs = Hosum.dsl_by_file(ARGV.first, options)
30
30
  if options[:output_type] == :dnsmasq
31
31
  puts rs.to_dnsmasq
32
32
  else
@@ -1,23 +1,26 @@
1
1
  group "google" do
2
- ip "203.208.46.163"
2
+ ip "203.208.45.200" # ~ 203.208.45.210
3
3
 
4
4
  subject "core" do
5
5
  hosts "accounts.google.com"
6
+ hosts "id.google.com"
6
7
  hosts "www.google.com"
7
8
  hosts "ssl.gstatic.com"
8
9
  hosts "lh[1-5].googleusercontent.com"
9
- hosts "ssl.google-analytics.com"
10
+ hosts "clients[1-5].googleusercontent.com"
10
11
  hosts "gg.google.com"
11
12
  end
12
13
 
13
- subject "plus" do
14
+ subject "other" do
14
15
  hosts "plus.google.com"
16
+ hosts "clients[1-2].google.com"
17
+ hosts "chrome.google.com"
18
+ hosts "safebrowsing-cache.google.com"
15
19
  end
16
20
 
17
21
  subject "search" do
18
22
  hosts "encrypted.google.com"
19
23
  hosts "encrypted-tbn[0-3].google.com"
20
- hosts "clients1.google.com"
21
24
  hosts "news.google.com"
22
25
  hosts "webcache.googleusercontent.com"
23
26
  hosts "www.google.com.hk"
@@ -52,17 +55,55 @@ group "google" do
52
55
  subject "calendar" do
53
56
  hosts "calendar.google.com"
54
57
  end
58
+
59
+ subject "code" do
60
+ hosts "www.googlecode.com", :dnsmasq => ".googlecode.com"
61
+ hosts "code.google.com"
62
+ end
55
63
 
56
- subject "video" do
64
+ subject "youtube" do
57
65
  hosts "video.google.com"
66
+ hosts "youtube.com"
67
+ hosts "www.youtube.com"
68
+ hosts "accounts.youtube.com"
69
+ hosts "i[1-4].ytimg.com"
70
+ hosts "s.ytimg.com"
71
+ hosts "csi.gstatic.com"
72
+ end
73
+
74
+
75
+ subject "groups" do
76
+ hosts "groups.google.com"
77
+ hosts "groups-china.l.google.com"
78
+ hosts "groups.l.google.com"
58
79
  end
80
+ end
81
+
82
+ group "google-other" do
83
+ ip "203.208.47.20" # ~ 203.208.47.35
59
84
 
85
+ hosts "ssl.google-analytics.com"
86
+ hosts "appspot.l.google.com"
87
+ hosts "simple-note.appspot.com"
60
88
  end
61
89
 
90
+
91
+
62
92
  group "itunes" do
93
+ if context.include?("bstar")
94
+ ip "203.69.138.18"
95
+ else
96
+ ip %w[
97
+ 202.175.5.121
98
+ 202.175.5.106
99
+ 202.175.5.97
100
+ 202.175.5.120
101
+ 202.175.5.98
102
+ 202.175.5.99
103
+ ]
104
+ end
105
+
63
106
  hosts "a[1-2000].phobos.apple.com", :dnsmasq => ".phobos.apple.com"
64
-
65
- ip "203.69.138.18"
66
107
  end
67
108
 
68
109
 
@@ -22,4 +22,5 @@ Gem::Specification.new do |s|
22
22
  s.add_development_dependency "rspec"
23
23
  s.add_development_dependency "guard-rspec"
24
24
  s.add_development_dependency "rake"
25
+ s.add_development_dependency "version"
25
26
  end
@@ -12,11 +12,11 @@ module Hosum
12
12
  autoload :Ips, "hosum/ips"
13
13
 
14
14
  def self.dsl(options = {}, &block)
15
- Dsl.new(options = {}, &block)
15
+ Dsl.new(options, &block)
16
16
  end
17
17
 
18
- def self.dsl_by_file(path)
19
- self.dsl do
18
+ def self.dsl_by_file(path, options = {})
19
+ self.dsl(options) do
20
20
  instance_eval(File.read(path), path, 1)
21
21
  end
22
22
  end
@@ -3,13 +3,15 @@ require "ostruct"
3
3
  module Hosum
4
4
  class Dsl
5
5
  attr_accessor :containers, :ips_list_scopes
6
+ attr_accessor :context
6
7
  attr_accessor :groups
7
8
 
8
9
  def initialize(options = {}, &block)
9
10
  self.groups = []
10
11
  self.containers = []
11
12
  self.ips_list_scopes = []
12
-
13
+ self.context = options[:context] || []
14
+
13
15
  instance_eval(&block) if block
14
16
  end
15
17
 
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hosum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1a
5
- prerelease: 5
4
+ version: 0.1.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sunteya
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-21 00:00:00.000000000Z
12
+ date: 2011-09-26 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70341398285800 !ruby/object:Gem::Requirement
16
+ requirement: &70129733074940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70341398285800
24
+ version_requirements: *70129733074940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: i18n
27
- requirement: &70341398285320 !ruby/object:Gem::Requirement
27
+ requirement: &70129733065180 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70341398285320
35
+ version_requirements: *70129733065180
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70341398284780 !ruby/object:Gem::Requirement
38
+ requirement: &70129733060260 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70341398284780
46
+ version_requirements: *70129733060260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: guard-rspec
49
- requirement: &70341398284060 !ruby/object:Gem::Requirement
49
+ requirement: &70129733056640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70341398284060
57
+ version_requirements: *70129733056640
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &70341398274020 !ruby/object:Gem::Requirement
60
+ requirement: &70129733049580 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,18 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70341398274020
68
+ version_requirements: *70129733049580
69
+ - !ruby/object:Gem::Dependency
70
+ name: version
71
+ requirement: &70129733045420 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70129733045420
69
80
  description: host file generator
70
81
  email:
71
82
  - Sunteya@gmail.com
@@ -114,13 +125,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
125
  version: '0'
115
126
  segments:
116
127
  - 0
117
- hash: -3945610133677893382
128
+ hash: 854397047314134653
118
129
  required_rubygems_version: !ruby/object:Gem::Requirement
119
130
  none: false
120
131
  requirements:
121
- - - ! '>'
132
+ - - ! '>='
122
133
  - !ruby/object:Gem::Version
123
- version: 1.3.1
134
+ version: '0'
135
+ segments:
136
+ - 0
137
+ hash: 854397047314134653
124
138
  requirements: []
125
139
  rubyforge_project: hosum
126
140
  rubygems_version: 1.8.7