blueprint-generators-rails 0.1.8 → 0.1.9

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: a4d40ad0220410179bc7e2a78cfc606478c6a022
4
- data.tar.gz: 60333b9d3512a99f9454a43ff5e926f697431d3f
3
+ metadata.gz: 95a1f4cef6d1d5f906de05fa614e527627f0c340
4
+ data.tar.gz: c20b7ede3ce1599b42f8cb27f8b8534bd515ae44
5
5
  SHA512:
6
- metadata.gz: 3f46b96de8a46493af635b4d01bec24095a136bd84364f0dcaf344d9dd3f8a95d87f42c5d7327eff705e0a8b55335a281c097ce1d6e169eaf843685e363e4b62
7
- data.tar.gz: 8a6a1492e30b871ae2d8e881c20f0c14fe00aa4d74b26f24c721e506bd173bf5a840a87b809fabd4c10f44607ed6d06fc8027b5fe3c3c44c0a3c745cccf8c922
6
+ metadata.gz: 7eb4b734287df247204e41968a89bad29752fac86b11537504b186a1f9676639c861a797186b9e346769ccc57fc83c3e5e88c6cdb3311b122f033c0bcd98c6dc
7
+ data.tar.gz: 34c15cd295910813656024f3b586f102fe2255847ab25c335748f89928819445c51f7440b4a85574448ccdb511e0ae85c6c71dd11cf705c958a98833db3e01c7
data/bin/setup CHANGED
@@ -4,4 +4,4 @@ IFS=$'\n\t'
4
4
 
5
5
  bundle install
6
6
 
7
- # Do any other automated setup that you need to do here
7
+ # Do any other automated setup that you need to do here
@@ -1,7 +1,7 @@
1
1
  module Blueprint
2
2
  module Generators
3
3
  module Rails
4
- VERSION = "0.1.8"
4
+ VERSION = "0.1.9"
5
5
  end
6
6
  end
7
7
  end
@@ -100,7 +100,6 @@ namespace :blueprint do
100
100
  end
101
101
 
102
102
  # search for a 'has_one' or 'belongs_to' declaration
103
- # TODO this would find '->' symbols: (has_one) :([^,#\s]+),[\s]*->[\s]*{(.*)}
104
103
  a, has_one_clazz = line.match(/(has_one|belongs_to) :([^,#\s]+)/).try(:captures)
105
104
  unless has_one_clazz.nil?
106
105
  has_one_name = has_one_clazz.classify.singularize.strip
@@ -113,13 +112,31 @@ namespace :blueprint do
113
112
  end
114
113
 
115
114
  # search for a 'has_many' declaration
116
- # TODO this would find '->' symbols: (has_many) :([^,#\s]+),[\s]*->[\s]*{(.*)}
117
- b, has_many_clazz = line.match(/(has_many) :([^,#\s]+)/).try(:captures)
118
- unless has_many_clazz.nil?
119
- has_many_name = has_many_clazz.classify.pluralize.strip
115
+ b, has_many_symbol = line.match(/(has_many) :([^,#\s]+)/).try(:captures)
116
+ unless has_many_symbol.nil?
117
+ has_many_name = has_many_symbol.classify.pluralize.strip
118
+
119
+ # if this declaration has a class name then make sure that we use it in our model
120
+ explicit_class_name = line.match(/class_name:[\s]*'(.*)'[,]?/).try(:captures)
121
+ where_clause = line.match(/(where)/).try(:captures)
122
+
123
+ # we behave in one of two ways here (just like Rails)
124
+ # if there is an explicit class name defined then use that as the model name, otherwise use the has many symbol
125
+ # also, in the case of an explicit class name being declared, look for a 'where' clause (if we find one then
126
+ # use the has many symbole as the name of the subset that is being defined)
120
127
 
121
128
  # add the node relationship to the concept
122
- model[concept_name].push({ :type => 'has many', :name => has_many_name })
129
+ if explicit_class_name.nil? || explicit_class_name.empty?
130
+ model[concept_name].push({ :type => 'has many', :name => has_many_name })
131
+ else
132
+ # puts explicit_class_name.inspect
133
+ if where_clause.nil? || where_clause.empty?
134
+ model[concept_name].push({ :type => 'has many', :name => explicit_class_name.first.pluralize })
135
+ else
136
+ model[concept_name].push({ :type => 'has many', :name => explicit_class_name.first.pluralize,
137
+ :condition => has_many_symbol.capitalize.pluralize })
138
+ end
139
+ end
123
140
 
124
141
  print_debug step_count, "Concept " + concept_name + " has one " + has_many_name
125
142
  step_count += 1
@@ -167,7 +184,11 @@ namespace :blueprint do
167
184
  when 'has one'
168
185
  pogo << " has one \"" + r[:name] + "\"\n"
169
186
  when 'has many'
170
- pogo << " has many \"" + r[:name] + "\"\n"
187
+ if r.has_key?(:condition) && !r[:condition].nil?
188
+ pogo << " has many \"" + r[:name] + "\" that are \"" + r[:condition] + "\"\n"
189
+ else
190
+ pogo << " has many \"" + r[:name] + "\"\n"
191
+ end
171
192
  else
172
193
  # TODO implement
173
194
  end
@@ -176,7 +197,7 @@ namespace :blueprint do
176
197
 
177
198
  # output the result
178
199
  puts ''
179
- puts 'Navigate to the link below and paste the provided script into the editor'
200
+ puts 'Navigate to the link below and paste the provided script into the editor found at:'
180
201
  puts ''
181
202
  puts ' http://anaxim.io/scratchpad/'
182
203
  puts ''
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blueprint-generators-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - benjii
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-04-30 00:00:00.000000000 Z
11
+ date: 2015-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler